// This file is automatically generated, so please do not edit it.
// @generated by `flutter_rust_bridge`@ 2.10.0.

// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import

import '../frb_generated.dart';
import 'connection.dart';
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';

Future<RustConnection> connect({required ConnectArgs args}) =>
    RustLib.instance.api.crateApiConnectConnect(args: args);

class ConnectArgs {
  final String url;
  final String? authToken;
  final String? syncUrl;
  final BigInt? syncIntervalSeconds;
  final String? encryptionKey;
  final bool? readYourWrites;
  final OpenFlags? openFlags;
  final bool? offline;

  const ConnectArgs({
    required this.url,
    this.authToken,
    this.syncUrl,
    this.syncIntervalSeconds,
    this.encryptionKey,
    this.readYourWrites,
    this.openFlags,
    this.offline,
  });

  @override
  int get hashCode =>
      url.hashCode ^
      authToken.hashCode ^
      syncUrl.hashCode ^
      syncIntervalSeconds.hashCode ^
      encryptionKey.hashCode ^
      readYourWrites.hashCode ^
      openFlags.hashCode ^
      offline.hashCode;

  @override
  bool operator ==(Object other) =>
      identical(this, other) ||
      other is ConnectArgs &&
          runtimeType == other.runtimeType &&
          url == other.url &&
          authToken == other.authToken &&
          syncUrl == other.syncUrl &&
          syncIntervalSeconds == other.syncIntervalSeconds &&
          encryptionKey == other.encryptionKey &&
          readYourWrites == other.readYourWrites &&
          openFlags == other.openFlags &&
          offline == other.offline;
}

enum OpenFlags { readOnly, readWrite, create }
