diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6b8d0767..886f5909 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,12 +4,20 @@ on: push: branches: [ main, develop ] pull_request: - branches: [ main, develop ] workflow_dispatch: env: FLUTTER_VERSION: '3.35.2' - RUST_VERSION: '1.85.0' + # Disable precompiled binaries in CI to ensure we test actual compilation + CARGOKIT_DISABLE_PRECOMPILED_BINARIES: '1' + # Optimize Rust builds for CI + CARGO_INCREMENTAL: '0' + CARGO_NET_RETRY: '10' + RUST_BACKTRACE: '1' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: # Test and build for Android @@ -19,6 +27,12 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + - uses: jlumbroso/free-disk-space@main + name: Free Disk Space + with: + tool-cache: true + android: false + - name: Setup Java uses: actions/setup-java@v4 with: @@ -28,26 +42,12 @@ jobs: - name: Setup Android SDK uses: android-actions/setup-android@v3 - - name: Setup Android NDK - uses: nttld/setup-ndk@v1 + - name: Setup Rust for Android + uses: acterglobal/zoe-relay/.github/actions/setup-rust-cross-platform@main with: - ndk-version: r25c - add-to-path: false - - - name: Setup Rust - uses: dtolnay/rust-toolchain@stable - with: - toolchain: ${{ env.RUST_VERSION }} - targets: | - aarch64-linux-android - armv7-linux-androideabi - x86_64-linux-android - i686-linux-android - - - name: Setup Rust cache - uses: Swatinem/rust-cache@v2 - with: - workspaces: rust + targets: aarch64-linux-android + workspace_path: 'packages/zoe_native/rust' + install_android_ndk: true - name: Setup Flutter uses: subosito/flutter-action@v2 @@ -59,11 +59,6 @@ jobs: - name: Install Flutter dependencies run: flutter pub get - - name: Install Rust dependencies - run: | - cd rust - cargo fetch - - name: Setup Android environment run: | echo "ANDROID_NDK_HOME=$ANDROID_NDK_LATEST_HOME" >> $GITHUB_ENV @@ -71,8 +66,12 @@ jobs: - name: Build for Android run: | - flutter build apk --debug - flutter build appbundle --debug + # Set Rust optimization for faster builds + export CARGO_PROFILE_DEV_DEBUG=1 + export CARGO_PROFILE_DEV_OPT_LEVEL=1 + + # Build only for essential architectures to save time and space + flutter build -v apk --debug --target-platform android-arm64 # Test and build for iOS ios: @@ -81,19 +80,11 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Setup Rust - uses: dtolnay/rust-toolchain@stable - with: - toolchain: ${{ env.RUST_VERSION }} - targets: | - aarch64-apple-ios - x86_64-apple-ios - aarch64-apple-ios-sim - - - name: Setup Rust cache - uses: Swatinem/rust-cache@v2 + - name: Setup Rust for iOS + uses: acterglobal/zoe-relay/.github/actions/setup-rust-cross-platform@main with: - workspaces: rust + targets: 'aarch64-apple-ios,x86_64-apple-ios,aarch64-apple-ios-sim' + workspace_path: 'packages/zoe_native/rust' - name: Setup Flutter uses: subosito/flutter-action@v2 @@ -105,14 +96,14 @@ jobs: - name: Install Flutter dependencies run: flutter pub get - - name: Install Rust dependencies - run: | - cd rust - cargo fetch - - name: Build for iOS run: | - flutter build ios --debug --no-codesign + flutter build -v ios --debug --no-codesign + env: + # Ensure iOS SDK paths are available for Rust compilation + DEVELOPER_DIR: /Applications/Xcode_16.4.app/Contents/Developer + # Set minimum iOS deployment target to avoid warnings + IPHONEOS_DEPLOYMENT_TARGET: "12.0" # Test and build for Linux linux: @@ -121,28 +112,28 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + - name: Setup Rust for Linux + uses: acterglobal/zoe-relay/.github/actions/setup-rust-cross-platform@main + with: + workspace_path: 'packages/zoe_native/rust' + + - uses: jlumbroso/free-disk-space@main + name: Free Disk Space + - name: Install Linux dependencies run: | - sudo apt-get update - sudo apt-get install -y \ - clang \ + sudo apt update + sudo apt install -y \ cmake \ + clang \ ninja-build \ pkg-config \ libgtk-3-dev \ liblzma-dev \ - libstdc++-12-dev - - - name: Setup Rust - uses: dtolnay/rust-toolchain@stable - with: - toolchain: ${{ env.RUST_VERSION }} - targets: x86_64-unknown-linux-gnu - - - name: Setup Rust cache - uses: Swatinem/rust-cache@v2 - with: - workspaces: rust + libstdc++-12-dev \ + libgstreamer1.0-dev \ + libgstreamer-plugins-base1.0-dev \ + libsecret-1-dev - name: Setup Flutter uses: subosito/flutter-action@v2 @@ -151,20 +142,16 @@ jobs: channel: 'stable' cache: true + - name: Enable Linux desktop run: flutter config --enable-linux-desktop - name: Install Flutter dependencies run: flutter pub get - - name: Install Rust dependencies - run: | - cd rust - cargo fetch - - name: Build for Linux run: | - flutter build linux --debug + flutter build -v linux --debug # Test and build for macOS macos: @@ -173,18 +160,11 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Setup Rust - uses: dtolnay/rust-toolchain@stable + - name: Setup Rust for macOS + uses: acterglobal/zoe-relay/.github/actions/setup-rust-cross-platform@main with: - toolchain: ${{ env.RUST_VERSION }} - targets: | - x86_64-apple-darwin - aarch64-apple-darwin - - - name: Setup Rust cache - uses: Swatinem/rust-cache@v2 - with: - workspaces: rust + targets: 'x86_64-apple-darwin,aarch64-apple-darwin' + workspace_path: 'packages/zoe_native/rust' - name: Setup Flutter uses: subosito/flutter-action@v2 @@ -199,14 +179,23 @@ jobs: - name: Install Flutter dependencies run: flutter pub get - - name: Install Rust dependencies + - name: Create CI xcconfig to disable code signing run: | - cd rust - cargo fetch + cat > macos/Runner/Configs/CI.xcconfig << EOF + #include "Debug.xcconfig" + CODE_SIGN_IDENTITY = + CODE_SIGNING_REQUIRED = NO + CODE_SIGNING_ALLOWED = NO + DEVELOPMENT_TEAM = + EOF - name: Build for macOS run: | - flutter build macos --debug + # Temporarily modify the project to use our CI config + sed -i.bak 's/Debug\.xcconfig/CI.xcconfig/g' macos/Runner.xcodeproj/project.pbxproj + flutter build -v macos --debug + # Restore the original project file + mv macos/Runner.xcodeproj/project.pbxproj.bak macos/Runner.xcodeproj/project.pbxproj # Test and build for Windows windows: @@ -215,16 +204,11 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Setup Rust - uses: dtolnay/rust-toolchain@stable - with: - toolchain: ${{ env.RUST_VERSION }} - targets: x86_64-pc-windows-msvc - - - name: Setup Rust cache - uses: Swatinem/rust-cache@v2 + - name: Setup Rust for Windows + uses: acterglobal/zoe-relay/.github/actions/setup-rust-cross-platform@main with: - workspaces: rust + targets: 'x86_64-pc-windows-msvc' + workspace_path: 'packages/zoe_native/rust' - name: Setup Flutter uses: subosito/flutter-action@v2 @@ -239,31 +223,22 @@ jobs: - name: Install Flutter dependencies run: flutter pub get - - name: Install Rust dependencies - run: | - cd rust - cargo fetch - - name: Build for Windows run: | - flutter build windows --debug + flutter build -v windows --debug # Run tests test: runs-on: ubuntu-latest + continue-on-error: true steps: - name: Checkout code uses: actions/checkout@v4 - - name: Setup Rust - uses: dtolnay/rust-toolchain@stable - with: - toolchain: ${{ env.RUST_VERSION }} - - - name: Setup Rust cache - uses: Swatinem/rust-cache@v2 + - name: Setup Rust for testing + uses: acterglobal/zoe-relay/.github/actions/setup-rust-cross-platform@main with: - workspaces: rust + workspace_path: 'packages/zoe_native/rust' - name: Setup Flutter uses: subosito/flutter-action@v2 @@ -274,35 +249,26 @@ jobs: - name: Install Flutter dependencies run: flutter pub get - - - name: Install Rust dependencies - run: | - cd rust - cargo fetch - - - name: Run Rust tests - run: | - cd rust - cargo test - + - name: Run Flutter tests run: flutter test - name: Run Flutter analyze - run: flutter analyze + run: flutter analyze lib # Check code formatting format: runs-on: ubuntu-latest + continue-on-error: true steps: - name: Checkout code uses: actions/checkout@v4 - - name: Setup Rust - uses: dtolnay/rust-toolchain@stable + - name: Setup Rust for formatting + uses: acterglobal/zoe-relay/.github/actions/setup-rust-cross-platform@main with: - toolchain: ${{ env.RUST_VERSION }} - components: rustfmt + workspace_path: 'packages/zoe_native/rust' + components: 'rustfmt' - name: Setup Flutter uses: subosito/flutter-action@v2 @@ -312,9 +278,65 @@ jobs: cache: true - name: Check Rust formatting - run: | - cd rust - cargo fmt --check + working-directory: packages/zoe_native + run: cargo fmt --check - name: Check Dart formatting - run: dart format --set-exit-if-changed . \ No newline at end of file + run: dart format --set-exit-if-changed . + + # Test zoe_native plugin - comprehensive testing for the native FFI plugin + # This job tests the zoe_native plugin independently to ensure it builds, + # passes all tests, and follows code quality standards + zoe_native_plugin: + name: Test zoe_native plugin + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Rust for zoe_native + uses: acterglobal/zoe-relay/.github/actions/setup-rust-cross-platform@main + with: + workspace_path: 'packages/zoe_native/rust' + + - name: Setup Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: ${{ env.FLUTTER_VERSION }} + channel: 'stable' + cache: true + + - name: Enable Linux desktop + run: flutter config --enable-linux-desktop + + - name: Install zoe_native plugin dependencies + working-directory: packages/zoe_native + run: flutter pub get + + - name: Install Rust dependencies for zoe_native + working-directory: packages/zoe_native + run: cargo fetch + + - name: Run zoe_native Rust tests + working-directory: packages/zoe_native + run: cargo test + + - name: Run zoe_native Flutter tests + working-directory: packages/zoe_native + run: flutter test + + - name: Run zoe_native Flutter analyze + working-directory: packages/zoe_native + run: flutter analyze lib + + - name: Build zoe_native Rust library + working-directory: packages/zoe_native + run: cargo build + + - name: Check zoe_native Rust formatting + working-directory: packages/zoe_native + run: cargo fmt --check + + - name: Check zoe_native Dart formatting + working-directory: packages/zoe_native + run: dart format --set-exit-if-changed lib \ No newline at end of file diff --git a/.github/workflows/codegen.yml b/.github/workflows/codegen.yml index 0755b0fd..b160c034 100644 --- a/.github/workflows/codegen.yml +++ b/.github/workflows/codegen.yml @@ -3,19 +3,20 @@ name: Code Generation on: push: paths: - - 'rust/src/**' - - 'flutter_rust_bridge.yaml' - - 'rust/Cargo.toml' + - 'packages/zoe_native/rust/src/**' + - 'packages/zoe_native/flutter_rust_bridge.yaml' + - 'packages/zoe_native/rust/Cargo.toml' pull_request: paths: - - 'rust/src/**' - - 'flutter_rust_bridge.yaml' - - 'rust/Cargo.toml' + - 'packages/zoe_native/rust/src/**' + - 'packages/zoe_native/flutter_rust_bridge.yaml' + - 'packages/zoe_native/rust/Cargo.toml' workflow_dispatch: env: FLUTTER_VERSION: '3.35.2' - RUST_VERSION: '1.85.0' + RUST_VERSION: '1.89.0' + FLUTTER_RUST_BRIDGE_CODEGEN_VERSION: '2.11.1' jobs: # Validate flutter_rust_bridge code generation @@ -25,15 +26,13 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Setup Rust - uses: dtolnay/rust-toolchain@stable + - name: Setup Rust for codegen + uses: acterglobal/zoe-relay/.github/actions/setup-rust-cross-platform@main with: - toolchain: ${{ env.RUST_VERSION }} - - - name: Setup Rust cache - uses: Swatinem/rust-cache@v2 - with: - workspaces: rust + targets: 'x86_64-unknown-linux-gnu' + rust_version: ${{ env.RUST_VERSION }} + workspace_path: 'packages/zoe_native/rust' + components: 'rustfmt' - name: Setup Flutter uses: subosito/flutter-action@v2 @@ -43,12 +42,13 @@ jobs: cache: true - name: Install flutter_rust_bridge_codegen - run: cargo install flutter_rust_bridge_codegen --version 2.11.1 + run: cargo install flutter_rust_bridge_codegen --version ${{ env.FLUTTER_RUST_BRIDGE_CODEGEN_VERSION }} - name: Install dependencies run: flutter pub get - name: Generate bindings + working-directory: packages/zoe_native run: flutter_rust_bridge_codegen generate - name: Check if generated files are up to date @@ -59,12 +59,12 @@ jobs: fi - name: Verify Rust compilation - run: | - cd rust - cargo check + working-directory: packages/zoe_native/ + run: cargo check --all - name: Verify Flutter compilation - run: flutter analyze lib/core/rust/ + working-directory: packages/zoe_native/ + run: flutter analyze lib # Test cross-platform compatibility test-codegen-platforms: @@ -76,15 +76,12 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Setup Rust - uses: dtolnay/rust-toolchain@stable - with: - toolchain: ${{ env.RUST_VERSION }} - - - name: Setup Rust cache - uses: Swatinem/rust-cache@v2 + - name: Setup Rust for cross-platform testing + uses: acterglobal/zoe-relay/.github/actions/setup-rust-cross-platform@main with: - workspaces: rust + targets: 'x86_64-unknown-linux-gnu' + rust_version: ${{ env.RUST_VERSION }} + workspace_path: 'packages/zoe_native/rust' - name: Setup Flutter uses: subosito/flutter-action@v2 @@ -93,19 +90,14 @@ jobs: channel: 'stable' cache: true - - name: Install flutter_rust_bridge_codegen - run: cargo install flutter_rust_bridge_codegen --version 2.11.1 - - name: Install dependencies run: flutter pub get - - name: Test code generation - run: flutter_rust_bridge_codegen generate - - - name: Test Rust build + - name: Rust tests + working-directory: packages/zoe_native run: | - cd rust - cargo build + cargo test - - name: Test Flutter analysis - run: flutter analyze lib/core/rust/ \ No newline at end of file + - name: Flutter tests + working-directory: packages/zoe_native + run: flutter test \ No newline at end of file diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml index 1be25e2a..67195a75 100644 --- a/.github/workflows/dependencies.yml +++ b/.github/workflows/dependencies.yml @@ -8,7 +8,7 @@ on: env: FLUTTER_VERSION: '3.35.2' - RUST_VERSION: '1.85.0' + RUST_VERSION: '1.89.0' jobs: # Check for Rust security vulnerabilities diff --git a/.github/workflows/prebuilt-binaries.yml b/.github/workflows/prebuilt-binaries.yml new file mode 100644 index 00000000..e631898d --- /dev/null +++ b/.github/workflows/prebuilt-binaries.yml @@ -0,0 +1,108 @@ +name: Build Precompiled Binaries + +on: + push: + branches: [ main ] + paths: + - 'packages/zoe_native/rust/src/**' + - 'packages/zoe_native/flutter_rust_bridge.yaml' + - 'packages/zoe_native/rust/Cargo.toml' + - 'packages/zoe_native/Cargo.toml' + - 'packages/zoe_native/Cargo.lock' + workflow_dispatch: + +env: + FLUTTER_VERSION: '3.35.2' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + precompile-binaries: + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + name: Linux x64 + targets: 'x86_64-unknown-linux-gnu' + - os: ubuntu-latest + name: Android + targets: 'aarch64-linux-android,armv7-linux-androideabi,x86_64-linux-android,i686-linux-android' + setup_android: true + build_args: '--android-sdk-location "$ANDROID_SDK_ROOT" --android-ndk-version "27.0.12077973" --android-min-sdk-version "21"' + - os: macos-latest + name: iOS + targets: 'aarch64-apple-ios,x86_64-apple-ios,aarch64-apple-ios-sim' + - os: macos-latest + name: MacOS + targets: 'x86_64-apple-darwin,aarch64-apple-darwin' + - os: windows-latest + name: Windows + targets: 'x86_64-pc-windows-msvc' + + + runs-on: ${{ matrix.os }} + name: Prebuilts for ${{ matrix.name }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Free Disk Space (Ubuntu only) + if: matrix.setup_android + uses: jlumbroso/free-disk-space@main + with: + tool-cache: true + android: false + + - name: Setup Java (Android builds only) + if: matrix.setup_android + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Rust + uses: acterglobal/zoe-relay/.github/actions/setup-rust-cross-platform@main + with: + targets: ${{ matrix.targets }} + workspace_path: 'packages/zoe_native/rust' + install_android_ndk: ${{ matrix.setup_android }} + + - name: Setup Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: ${{ env.FLUTTER_VERSION }} + channel: 'stable' + cache: true + + - name: Install cross-compilation dependencies (Ubuntu only) + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install -y \ + gcc-aarch64-linux-gnu \ + gcc-mingw-w64-x86-64 \ + gcc-mingw-w64-i686 + + - name: Install Flutter dependencies + working-directory: packages/zoe_native/ + run: flutter pub get + + - name: Install cargokit build tool dependencies + working-directory: packages/zoe_native/cargokit/build_tool + run: dart pub get + + - name: Run precompile binaries + working-directory: packages/zoe_native + env: + PRIVATE_KEY: ${{ secrets.PREBUILTS_PRIVATE_KEY }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + shell: bash + run: | + dart cargokit/build_tool/bin/build_tool.dart precompile-binaries \ + --repository "acterglobal/zoe" \ + --manifest-dir "rust" \ + --target ${{ matrix.targets }} \ + ${{ matrix.build_args }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a4a46d8f..a3a22879 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,7 +13,7 @@ on: env: FLUTTER_VERSION: '3.35.2' - RUST_VERSION: '1.85.0' + RUST_VERSION: '1.89.0' jobs: # Build Android release diff --git a/devtools_options.yaml b/devtools_options.yaml new file mode 100644 index 00000000..fa0b357c --- /dev/null +++ b/devtools_options.yaml @@ -0,0 +1,3 @@ +description: This file stores settings for Dart & Flutter DevTools. +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states +extensions: diff --git a/flutter_rust_bridge.yaml b/flutter_rust_bridge.yaml deleted file mode 100644 index f18d63f8..00000000 --- a/flutter_rust_bridge.yaml +++ /dev/null @@ -1,3 +0,0 @@ -rust_input: crate::api,zoe-client::client,zoe-client::frb_api -rust_root: rust/ -dart_output: lib/core/rust \ No newline at end of file diff --git a/lib/core/routing/app_router.dart b/lib/core/routing/app_router.dart index 7dbde2eb..704bfc19 100644 --- a/lib/core/routing/app_router.dart +++ b/lib/core/routing/app_router.dart @@ -17,6 +17,8 @@ import 'package:zoe/features/profile/screens/edit_profile_screen.dart'; import 'package:zoe/features/quick-search/screens/quick_search_screen.dart'; import 'package:zoe/features/settings/screens/settings_screen.dart'; import 'package:zoe/features/settings/screens/language_selection_screen.dart'; +import 'package:zoe/features/settings/screens/developer_tools_screen.dart'; +import 'package:zoe/features/settings/screens/systems_test_screen.dart'; import 'package:zoe/features/sheet/screens/sheet_detail_screen.dart'; import 'package:zoe/features/sheet/screens/sheet_list_screen.dart'; import 'package:zoe/features/task/screens/task_detail_screen.dart'; @@ -204,6 +206,19 @@ final routerProvider = Provider((ref) { builder: (context, state) => const LanguageSelectionScreen(), ), + // Developer tools route + GoRoute( + path: AppRoutes.developerTools.route, + name: AppRoutes.developerTools.name, + builder: (context, state) => const DeveloperToolsScreen(), + ), + + // Systems test route + GoRoute( + path: AppRoutes.systemsTest.route, + name: AppRoutes.systemsTest.name, + builder: (context, state) => const SystemsTestScreen(), + ), // Profile route GoRoute( path: AppRoutes.settingsProfile.route, diff --git a/lib/core/routing/app_routes.dart b/lib/core/routing/app_routes.dart index b5f04601..3029284a 100644 --- a/lib/core/routing/app_routes.dart +++ b/lib/core/routing/app_routes.dart @@ -19,6 +19,8 @@ enum AppRoutes { quickSearch('/quick-search'), settings('/settings'), settingLanguage('/settings/language'), + developerTools('/developer-tools'), + systemsTest('/developer-tools/systems-test'), settingsProfile('/settings/profile'), whatsappGroupConnect('/whatsapp-group-connect/:sheetId'); diff --git a/lib/core/rust/frb_generated.dart b/lib/core/rust/frb_generated.dart deleted file mode 100644 index 95e0dcb2..00000000 --- a/lib/core/rust/frb_generated.dart +++ /dev/null @@ -1,2375 +0,0 @@ -// This file is automatically generated, so please do not edit it. -// @generated by `flutter_rust_bridge`@ 2.11.1. - -// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field - -import 'api/simple.dart'; -import 'dart:async'; -import 'dart:convert'; -import 'frb_generated.dart'; -import 'frb_generated.io.dart' - if (dart.library.js_interop) 'frb_generated.web.dart'; -import 'lib.dart'; -import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; -import 'third_party/zoe_client/client.dart'; -import 'third_party/zoe_client/frb_api.dart'; - -/// Main entrypoint of the Rust API -class RustLib extends BaseEntrypoint { - @internal - static final instance = RustLib._(); - - RustLib._(); - - /// Initialize flutter_rust_bridge - static Future init({ - RustLibApi? api, - BaseHandler? handler, - ExternalLibrary? externalLibrary, - bool forceSameCodegenVersion = true, - }) async { - await instance.initImpl( - api: api, - handler: handler, - externalLibrary: externalLibrary, - forceSameCodegenVersion: forceSameCodegenVersion, - ); - } - - /// Initialize flutter_rust_bridge in mock mode. - /// No libraries for FFI are loaded. - static void initMock({required RustLibApi api}) { - instance.initMockImpl(api: api); - } - - /// Dispose flutter_rust_bridge - /// - /// The call to this function is optional, since flutter_rust_bridge (and everything else) - /// is automatically disposed when the app stops. - static void dispose() => instance.disposeImpl(); - - @override - ApiImplConstructor get apiImplConstructor => - RustLibApiImpl.new; - - @override - WireConstructor get wireConstructor => - RustLibWire.fromExternalLibrary; - - @override - Future executeRustInitializers() async { - await api.crateApiSimpleInitApp(); - } - - @override - ExternalLibraryLoaderConfig get defaultExternalLibraryLoaderConfig => - kDefaultExternalLibraryLoaderConfig; - - @override - String get codegenVersion => '2.11.1'; - - @override - int get rustContentHash => 1257752319; - - static const kDefaultExternalLibraryLoaderConfig = - ExternalLibraryLoaderConfig( - stem: 'rust_lib_zoe', - ioDirectory: 'rust/target/release/', - webPrefix: 'pkg/', - ); -} - -abstract class RustLibApi extends BaseApi { - Future zoeClientClientClientBuilderBuild({ - required ClientBuilder that, - }); - - Future zoeClientClientClientBuilderClientSecret({ - required ClientBuilder that, - required ClientSecret secret, - }); - - Future zoeClientClientClientBuilderDefault(); - - Future zoeClientClientClientBuilderMediaStoragePath({ - required ClientBuilder that, - required String mediaStoragePath, - }); - - Future zoeClientClientClientBuilderServerInfo({ - required ClientBuilder that, - required VerifyingKey serverPublicKey, - required SocketAddr serverAddr, - }); - - Future zoeClientClientClientSecretAsHex({required ClientSecret that}); - - Future zoeClientClientClientSecretFromHex({ - required String value, - }); - - Future zoeClientClientClientSecretNew({ - required SigningKey signingKey, - required VerifyingKey serverPublicKey, - required SocketAddr serverAddr, - }); - - Future zoeClientClientClientBuilder(); - - Future zoeClientClientClientHasFile({ - required Client that, - required FileRef storedInfo, - }); - - Future zoeClientClientClientRetrieveFile({ - required Client that, - required FileRef fileRef, - required PathBuf outputPath, - }); - - Future zoeClientClientClientRetrieveFileBytes({ - required Client that, - required FileRef fileRef, - }); - - Future zoeClientClientClientStoreData({ - required Client that, - required List data, - required String referenceName, - String? contentType, - }); - - Future zoeClientClientClientStoreFile({ - required Client that, - required PathBuf filePath, - }); - - Future zoeClientFrbApiCreateSigningKeyRandom(); - - Future zoeClientFrbApiCreateSocketAddr({ - required String ip, - required int port, - }); - - String crateApiSimpleGreet({required String name}); - - Future crateApiSimpleInitApp(); - - Future zoeClientFrbApiSigningKeyFromHex({required String hex}); - - Future zoeClientFrbApiSigningKeyToVerifyingKey({ - required String signingKeyHex, - }); - - Future zoeClientFrbApiSocketAddrIp({required SocketAddr addr}); - - Future zoeClientFrbApiSocketAddrPort({required SocketAddr addr}); - - Future zoeClientFrbApiSocketAddrToString({required SocketAddr addr}); - - Future zoeClientFrbApiVerifyingKeyFromHex({required String hex}); - - RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_Client; - - RustArcDecrementStrongCountFnType get rust_arc_decrement_strong_count_Client; - - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_ClientPtr; - - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_ClientBuilder; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_ClientBuilder; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_ClientBuilderPtr; - - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_ClientSecret; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_ClientSecret; - - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_ClientSecretPtr; - - RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_FileRef; - - RustArcDecrementStrongCountFnType get rust_arc_decrement_strong_count_FileRef; - - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_FileRefPtr; - - RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_PathBuf; - - RustArcDecrementStrongCountFnType get rust_arc_decrement_strong_count_PathBuf; - - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_PathBufPtr; - - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_SigningKey; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_SigningKey; - - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_SigningKeyPtr; - - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_SocketAddr; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_SocketAddr; - - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_SocketAddrPtr; - - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_VerifyingKey; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_VerifyingKey; - - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_VerifyingKeyPtr; -} - -class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { - RustLibApiImpl({ - required super.handler, - required super.wire, - required super.generalizedFrbRustBinding, - required super.portManager, - }); - - @override - Future zoeClientClientClientBuilderBuild({ - required ClientBuilder that, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - that, - serializer, - ); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 1, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: kZoeClientClientClientBuilderBuildConstMeta, - argValues: [that], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientClientClientBuilderBuildConstMeta => - const TaskConstMeta(debugName: "ClientBuilder_build", argNames: ["that"]); - - @override - Future zoeClientClientClientBuilderClientSecret({ - required ClientBuilder that, - required ClientSecret secret, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - that, - serializer, - ); - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - secret, - serializer, - ); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 2, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_unit, - decodeErrorData: null, - ), - constMeta: kZoeClientClientClientBuilderClientSecretConstMeta, - argValues: [that, secret], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientClientClientBuilderClientSecretConstMeta => - const TaskConstMeta( - debugName: "ClientBuilder_client_secret", - argNames: ["that", "secret"], - ); - - @override - Future zoeClientClientClientBuilderDefault() { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 3, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder, - decodeErrorData: null, - ), - constMeta: kZoeClientClientClientBuilderDefaultConstMeta, - argValues: [], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientClientClientBuilderDefaultConstMeta => - const TaskConstMeta(debugName: "ClientBuilder_default", argNames: []); - - @override - Future zoeClientClientClientBuilderMediaStoragePath({ - required ClientBuilder that, - required String mediaStoragePath, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - that, - serializer, - ); - sse_encode_String(mediaStoragePath, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 4, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_unit, - decodeErrorData: null, - ), - constMeta: kZoeClientClientClientBuilderMediaStoragePathConstMeta, - argValues: [that, mediaStoragePath], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientClientClientBuilderMediaStoragePathConstMeta => - const TaskConstMeta( - debugName: "ClientBuilder_media_storage_path", - argNames: ["that", "mediaStoragePath"], - ); - - @override - Future zoeClientClientClientBuilderServerInfo({ - required ClientBuilder that, - required VerifyingKey serverPublicKey, - required SocketAddr serverAddr, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - that, - serializer, - ); - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - serverPublicKey, - serializer, - ); - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - serverAddr, - serializer, - ); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 5, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_unit, - decodeErrorData: null, - ), - constMeta: kZoeClientClientClientBuilderServerInfoConstMeta, - argValues: [that, serverPublicKey, serverAddr], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientClientClientBuilderServerInfoConstMeta => - const TaskConstMeta( - debugName: "ClientBuilder_server_info", - argNames: ["that", "serverPublicKey", "serverAddr"], - ); - - @override - Future zoeClientClientClientSecretAsHex({ - required ClientSecret that, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - that, - serializer, - ); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 6, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_String, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: kZoeClientClientClientSecretAsHexConstMeta, - argValues: [that], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientClientClientSecretAsHexConstMeta => - const TaskConstMeta(debugName: "ClientSecret_as_hex", argNames: ["that"]); - - @override - Future zoeClientClientClientSecretFromHex({ - required String value, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_String(value, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 7, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: kZoeClientClientClientSecretFromHexConstMeta, - argValues: [value], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientClientClientSecretFromHexConstMeta => - const TaskConstMeta( - debugName: "ClientSecret_from_hex", - argNames: ["value"], - ); - - @override - Future zoeClientClientClientSecretNew({ - required SigningKey signingKey, - required VerifyingKey serverPublicKey, - required SocketAddr serverAddr, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - signingKey, - serializer, - ); - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - serverPublicKey, - serializer, - ); - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - serverAddr, - serializer, - ); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 8, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret, - decodeErrorData: null, - ), - constMeta: kZoeClientClientClientSecretNewConstMeta, - argValues: [signingKey, serverPublicKey, serverAddr], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientClientClientSecretNewConstMeta => - const TaskConstMeta( - debugName: "ClientSecret_new", - argNames: ["signingKey", "serverPublicKey", "serverAddr"], - ); - - @override - Future zoeClientClientClientBuilder() { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 9, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder, - decodeErrorData: null, - ), - constMeta: kZoeClientClientClientBuilderConstMeta, - argValues: [], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientClientClientBuilderConstMeta => - const TaskConstMeta(debugName: "Client_builder", argNames: []); - - @override - Future zoeClientClientClientHasFile({ - required Client that, - required FileRef storedInfo, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - that, - serializer, - ); - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - storedInfo, - serializer, - ); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 10, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_bool, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: kZoeClientClientClientHasFileConstMeta, - argValues: [that, storedInfo], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientClientClientHasFileConstMeta => - const TaskConstMeta( - debugName: "Client_has_file", - argNames: ["that", "storedInfo"], - ); - - @override - Future zoeClientClientClientRetrieveFile({ - required Client that, - required FileRef fileRef, - required PathBuf outputPath, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - that, - serializer, - ); - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - fileRef, - serializer, - ); - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - outputPath, - serializer, - ); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 11, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_unit, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: kZoeClientClientClientRetrieveFileConstMeta, - argValues: [that, fileRef, outputPath], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientClientClientRetrieveFileConstMeta => - const TaskConstMeta( - debugName: "Client_retrieve_file", - argNames: ["that", "fileRef", "outputPath"], - ); - - @override - Future zoeClientClientClientRetrieveFileBytes({ - required Client that, - required FileRef fileRef, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - that, - serializer, - ); - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - fileRef, - serializer, - ); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 12, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_list_prim_u_8_strict, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: kZoeClientClientClientRetrieveFileBytesConstMeta, - argValues: [that, fileRef], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientClientClientRetrieveFileBytesConstMeta => - const TaskConstMeta( - debugName: "Client_retrieve_file_bytes", - argNames: ["that", "fileRef"], - ); - - @override - Future zoeClientClientClientStoreData({ - required Client that, - required List data, - required String referenceName, - String? contentType, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - that, - serializer, - ); - sse_encode_list_prim_u_8_loose(data, serializer); - sse_encode_String(referenceName, serializer); - sse_encode_opt_String(contentType, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 13, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: kZoeClientClientClientStoreDataConstMeta, - argValues: [that, data, referenceName, contentType], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientClientClientStoreDataConstMeta => - const TaskConstMeta( - debugName: "Client_store_data", - argNames: ["that", "data", "referenceName", "contentType"], - ); - - @override - Future zoeClientClientClientStoreFile({ - required Client that, - required PathBuf filePath, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - that, - serializer, - ); - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - filePath, - serializer, - ); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 14, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef, - decodeErrorData: sse_decode_AnyhowException, - ), - constMeta: kZoeClientClientClientStoreFileConstMeta, - argValues: [that, filePath], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientClientClientStoreFileConstMeta => - const TaskConstMeta( - debugName: "Client_store_file", - argNames: ["that", "filePath"], - ); - - @override - Future zoeClientFrbApiCreateSigningKeyRandom() { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 15, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_String, - decodeErrorData: null, - ), - constMeta: kZoeClientFrbApiCreateSigningKeyRandomConstMeta, - argValues: [], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientFrbApiCreateSigningKeyRandomConstMeta => - const TaskConstMeta(debugName: "create_signing_key_random", argNames: []); - - @override - Future zoeClientFrbApiCreateSocketAddr({ - required String ip, - required int port, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_String(ip, serializer); - sse_encode_u_16(port, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 16, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr, - decodeErrorData: sse_decode_String, - ), - constMeta: kZoeClientFrbApiCreateSocketAddrConstMeta, - argValues: [ip, port], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientFrbApiCreateSocketAddrConstMeta => - const TaskConstMeta( - debugName: "create_socket_addr", - argNames: ["ip", "port"], - ); - - @override - String crateApiSimpleGreet({required String name}) { - return handler.executeSync( - SyncTask( - callFfi: () { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_String(name, serializer); - return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 17)!; - }, - codec: SseCodec( - decodeSuccessData: sse_decode_String, - decodeErrorData: null, - ), - constMeta: kCrateApiSimpleGreetConstMeta, - argValues: [name], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kCrateApiSimpleGreetConstMeta => - const TaskConstMeta(debugName: "greet", argNames: ["name"]); - - @override - Future crateApiSimpleInitApp() { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 18, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_unit, - decodeErrorData: null, - ), - constMeta: kCrateApiSimpleInitAppConstMeta, - argValues: [], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kCrateApiSimpleInitAppConstMeta => - const TaskConstMeta(debugName: "init_app", argNames: []); - - @override - Future zoeClientFrbApiSigningKeyFromHex({required String hex}) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_String(hex, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 19, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_String, - decodeErrorData: sse_decode_String, - ), - constMeta: kZoeClientFrbApiSigningKeyFromHexConstMeta, - argValues: [hex], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientFrbApiSigningKeyFromHexConstMeta => - const TaskConstMeta(debugName: "signing_key_from_hex", argNames: ["hex"]); - - @override - Future zoeClientFrbApiSigningKeyToVerifyingKey({ - required String signingKeyHex, - }) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_String(signingKeyHex, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 20, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_String, - decodeErrorData: sse_decode_String, - ), - constMeta: kZoeClientFrbApiSigningKeyToVerifyingKeyConstMeta, - argValues: [signingKeyHex], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientFrbApiSigningKeyToVerifyingKeyConstMeta => - const TaskConstMeta( - debugName: "signing_key_to_verifying_key", - argNames: ["signingKeyHex"], - ); - - @override - Future zoeClientFrbApiSocketAddrIp({required SocketAddr addr}) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - addr, - serializer, - ); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 21, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_String, - decodeErrorData: null, - ), - constMeta: kZoeClientFrbApiSocketAddrIpConstMeta, - argValues: [addr], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientFrbApiSocketAddrIpConstMeta => - const TaskConstMeta(debugName: "socket_addr_ip", argNames: ["addr"]); - - @override - Future zoeClientFrbApiSocketAddrPort({required SocketAddr addr}) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - addr, - serializer, - ); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 22, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_u_16, - decodeErrorData: null, - ), - constMeta: kZoeClientFrbApiSocketAddrPortConstMeta, - argValues: [addr], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientFrbApiSocketAddrPortConstMeta => - const TaskConstMeta(debugName: "socket_addr_port", argNames: ["addr"]); - - @override - Future zoeClientFrbApiSocketAddrToString({required SocketAddr addr}) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - addr, - serializer, - ); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 23, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_String, - decodeErrorData: null, - ), - constMeta: kZoeClientFrbApiSocketAddrToStringConstMeta, - argValues: [addr], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientFrbApiSocketAddrToStringConstMeta => - const TaskConstMeta( - debugName: "socket_addr_to_string", - argNames: ["addr"], - ); - - @override - Future zoeClientFrbApiVerifyingKeyFromHex({required String hex}) { - return handler.executeNormal( - NormalTask( - callFfi: (port_) { - final serializer = SseSerializer(generalizedFrbRustBinding); - sse_encode_String(hex, serializer); - pdeCallFfi( - generalizedFrbRustBinding, - serializer, - funcId: 24, - port: port_, - ); - }, - codec: SseCodec( - decodeSuccessData: sse_decode_String, - decodeErrorData: sse_decode_String, - ), - constMeta: kZoeClientFrbApiVerifyingKeyFromHexConstMeta, - argValues: [hex], - apiImpl: this, - ), - ); - } - - TaskConstMeta get kZoeClientFrbApiVerifyingKeyFromHexConstMeta => - const TaskConstMeta( - debugName: "verifying_key_from_hex", - argNames: ["hex"], - ); - - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_Client => wire - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_Client => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient; - - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_ClientBuilder => wire - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_ClientBuilder => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder; - - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_ClientSecret => wire - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_ClientSecret => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret; - - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_FileRef => wire - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_FileRef => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef; - - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_PathBuf => wire - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_PathBuf => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf; - - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_SigningKey => wire - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_SigningKey => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey; - - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_SocketAddr => wire - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_SocketAddr => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr; - - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_VerifyingKey => wire - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_VerifyingKey => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey; - - @protected - AnyhowException dco_decode_AnyhowException(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return AnyhowException(raw as String); - } - - @protected - Client - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return ClientImpl.frbInternalDcoDecode(raw as List); - } - - @protected - ClientBuilder - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return ClientBuilderImpl.frbInternalDcoDecode(raw as List); - } - - @protected - ClientSecret - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return ClientSecretImpl.frbInternalDcoDecode(raw as List); - } - - @protected - FileRef - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return FileRefImpl.frbInternalDcoDecode(raw as List); - } - - @protected - PathBuf - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return PathBufImpl.frbInternalDcoDecode(raw as List); - } - - @protected - SigningKey - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return SigningKeyImpl.frbInternalDcoDecode(raw as List); - } - - @protected - SocketAddr - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return SocketAddrImpl.frbInternalDcoDecode(raw as List); - } - - @protected - VerifyingKey - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return VerifyingKeyImpl.frbInternalDcoDecode(raw as List); - } - - @protected - ClientBuilder - dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return ClientBuilderImpl.frbInternalDcoDecode(raw as List); - } - - @protected - Client - dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return ClientImpl.frbInternalDcoDecode(raw as List); - } - - @protected - ClientSecret - dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return ClientSecretImpl.frbInternalDcoDecode(raw as List); - } - - @protected - FileRef - dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return FileRefImpl.frbInternalDcoDecode(raw as List); - } - - @protected - SocketAddr - dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return SocketAddrImpl.frbInternalDcoDecode(raw as List); - } - - @protected - Client - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return ClientImpl.frbInternalDcoDecode(raw as List); - } - - @protected - ClientBuilder - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return ClientBuilderImpl.frbInternalDcoDecode(raw as List); - } - - @protected - ClientSecret - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return ClientSecretImpl.frbInternalDcoDecode(raw as List); - } - - @protected - FileRef - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return FileRefImpl.frbInternalDcoDecode(raw as List); - } - - @protected - PathBuf - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return PathBufImpl.frbInternalDcoDecode(raw as List); - } - - @protected - SigningKey - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return SigningKeyImpl.frbInternalDcoDecode(raw as List); - } - - @protected - SocketAddr - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return SocketAddrImpl.frbInternalDcoDecode(raw as List); - } - - @protected - VerifyingKey - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return VerifyingKeyImpl.frbInternalDcoDecode(raw as List); - } - - @protected - String dco_decode_String(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return raw as String; - } - - @protected - bool dco_decode_bool(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return raw as bool; - } - - @protected - List dco_decode_list_prim_u_8_loose(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return raw as List; - } - - @protected - Uint8List dco_decode_list_prim_u_8_strict(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return raw as Uint8List; - } - - @protected - String? dco_decode_opt_String(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return raw == null ? null : dco_decode_String(raw); - } - - @protected - int dco_decode_u_16(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return raw as int; - } - - @protected - int dco_decode_u_8(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return raw as int; - } - - @protected - void dco_decode_unit(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return; - } - - @protected - BigInt dco_decode_usize(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return dcoDecodeU64(raw); - } - - @protected - AnyhowException sse_decode_AnyhowException(SseDeserializer deserializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - var inner = sse_decode_String(deserializer); - return AnyhowException(inner); - } - - @protected - Client - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return ClientImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - ClientBuilder - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return ClientBuilderImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - ClientSecret - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return ClientSecretImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - FileRef - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return FileRefImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - PathBuf - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return PathBufImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - SigningKey - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return SigningKeyImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - SocketAddr - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return SocketAddrImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - VerifyingKey - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return VerifyingKeyImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - ClientBuilder - sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return ClientBuilderImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - Client - sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return ClientImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - ClientSecret - sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return ClientSecretImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - FileRef - sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return FileRefImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - SocketAddr - sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return SocketAddrImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - Client - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return ClientImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - ClientBuilder - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return ClientBuilderImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - ClientSecret - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return ClientSecretImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - FileRef - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return FileRefImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - PathBuf - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return PathBufImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - SigningKey - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return SigningKeyImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - SocketAddr - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return SocketAddrImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - VerifyingKey - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return VerifyingKeyImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - String sse_decode_String(SseDeserializer deserializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - var inner = sse_decode_list_prim_u_8_strict(deserializer); - return utf8.decoder.convert(inner); - } - - @protected - bool sse_decode_bool(SseDeserializer deserializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - return deserializer.buffer.getUint8() != 0; - } - - @protected - List sse_decode_list_prim_u_8_loose(SseDeserializer deserializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - var len_ = sse_decode_i_32(deserializer); - return deserializer.buffer.getUint8List(len_); - } - - @protected - Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - var len_ = sse_decode_i_32(deserializer); - return deserializer.buffer.getUint8List(len_); - } - - @protected - String? sse_decode_opt_String(SseDeserializer deserializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - - if (sse_decode_bool(deserializer)) { - return (sse_decode_String(deserializer)); - } else { - return null; - } - } - - @protected - int sse_decode_u_16(SseDeserializer deserializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - return deserializer.buffer.getUint16(); - } - - @protected - int sse_decode_u_8(SseDeserializer deserializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - return deserializer.buffer.getUint8(); - } - - @protected - void sse_decode_unit(SseDeserializer deserializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - } - - @protected - BigInt sse_decode_usize(SseDeserializer deserializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - return deserializer.buffer.getBigUint64(); - } - - @protected - int sse_decode_i_32(SseDeserializer deserializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - return deserializer.buffer.getInt32(); - } - - @protected - void sse_encode_AnyhowException( - AnyhowException self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_String(self.message, serializer); - } - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - Client self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as ClientImpl).frbInternalSseEncode(move: true), - serializer, - ); - } - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ClientBuilder self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as ClientBuilderImpl).frbInternalSseEncode(move: true), - serializer, - ); - } - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ClientSecret self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as ClientSecretImpl).frbInternalSseEncode(move: true), - serializer, - ); - } - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - FileRef self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as FileRefImpl).frbInternalSseEncode(move: true), - serializer, - ); - } - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - PathBuf self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as PathBufImpl).frbInternalSseEncode(move: true), - serializer, - ); - } - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - SigningKey self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as SigningKeyImpl).frbInternalSseEncode(move: true), - serializer, - ); - } - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SocketAddr self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as SocketAddrImpl).frbInternalSseEncode(move: true), - serializer, - ); - } - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - VerifyingKey self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as VerifyingKeyImpl).frbInternalSseEncode(move: true), - serializer, - ); - } - - @protected - void - sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ClientBuilder self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as ClientBuilderImpl).frbInternalSseEncode(move: false), - serializer, - ); - } - - @protected - void - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - Client self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as ClientImpl).frbInternalSseEncode(move: false), - serializer, - ); - } - - @protected - void - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ClientSecret self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as ClientSecretImpl).frbInternalSseEncode(move: false), - serializer, - ); - } - - @protected - void - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - FileRef self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as FileRefImpl).frbInternalSseEncode(move: false), - serializer, - ); - } - - @protected - void - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SocketAddr self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as SocketAddrImpl).frbInternalSseEncode(move: false), - serializer, - ); - } - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - Client self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as ClientImpl).frbInternalSseEncode(move: null), - serializer, - ); - } - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ClientBuilder self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as ClientBuilderImpl).frbInternalSseEncode(move: null), - serializer, - ); - } - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ClientSecret self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as ClientSecretImpl).frbInternalSseEncode(move: null), - serializer, - ); - } - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - FileRef self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as FileRefImpl).frbInternalSseEncode(move: null), - serializer, - ); - } - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - PathBuf self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as PathBufImpl).frbInternalSseEncode(move: null), - serializer, - ); - } - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - SigningKey self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as SigningKeyImpl).frbInternalSseEncode(move: null), - serializer, - ); - } - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SocketAddr self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as SocketAddrImpl).frbInternalSseEncode(move: null), - serializer, - ); - } - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - VerifyingKey self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as VerifyingKeyImpl).frbInternalSseEncode(move: null), - serializer, - ); - } - - @protected - void sse_encode_String(String self, SseSerializer serializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_list_prim_u_8_strict(utf8.encoder.convert(self), serializer); - } - - @protected - void sse_encode_bool(bool self, SseSerializer serializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - serializer.buffer.putUint8(self ? 1 : 0); - } - - @protected - void sse_encode_list_prim_u_8_loose( - List self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_i_32(self.length, serializer); - serializer.buffer.putUint8List( - self is Uint8List ? self : Uint8List.fromList(self), - ); - } - - @protected - void sse_encode_list_prim_u_8_strict( - Uint8List self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_i_32(self.length, serializer); - serializer.buffer.putUint8List(self); - } - - @protected - void sse_encode_opt_String(String? self, SseSerializer serializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - - sse_encode_bool(self != null, serializer); - if (self != null) { - sse_encode_String(self, serializer); - } - } - - @protected - void sse_encode_u_16(int self, SseSerializer serializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - serializer.buffer.putUint16(self); - } - - @protected - void sse_encode_u_8(int self, SseSerializer serializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - serializer.buffer.putUint8(self); - } - - @protected - void sse_encode_unit(void self, SseSerializer serializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - } - - @protected - void sse_encode_usize(BigInt self, SseSerializer serializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - serializer.buffer.putBigUint64(self); - } - - @protected - void sse_encode_i_32(int self, SseSerializer serializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - serializer.buffer.putInt32(self); - } -} - -@sealed -class ClientBuilderImpl extends RustOpaque implements ClientBuilder { - // Not to be used by end users - ClientBuilderImpl.frbInternalDcoDecode(List wire) - : super.frbInternalDcoDecode(wire, _kStaticData); - - // Not to be used by end users - ClientBuilderImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) - : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); - - static final _kStaticData = RustArcStaticData( - rustArcIncrementStrongCount: - RustLib.instance.api.rust_arc_increment_strong_count_ClientBuilder, - rustArcDecrementStrongCount: - RustLib.instance.api.rust_arc_decrement_strong_count_ClientBuilder, - rustArcDecrementStrongCountPtr: - RustLib.instance.api.rust_arc_decrement_strong_count_ClientBuilderPtr, - ); - - Future build() => - RustLib.instance.api.zoeClientClientClientBuilderBuild(that: this); - - Future clientSecret({required ClientSecret secret}) => RustLib - .instance - .api - .zoeClientClientClientBuilderClientSecret(that: this, secret: secret); - - Future mediaStoragePath({required String mediaStoragePath}) => - RustLib.instance.api.zoeClientClientClientBuilderMediaStoragePath( - that: this, - mediaStoragePath: mediaStoragePath, - ); - - Future serverInfo({ - required VerifyingKey serverPublicKey, - required SocketAddr serverAddr, - }) => RustLib.instance.api.zoeClientClientClientBuilderServerInfo( - that: this, - serverPublicKey: serverPublicKey, - serverAddr: serverAddr, - ); -} - -@sealed -class ClientImpl extends RustOpaque implements Client { - // Not to be used by end users - ClientImpl.frbInternalDcoDecode(List wire) - : super.frbInternalDcoDecode(wire, _kStaticData); - - // Not to be used by end users - ClientImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) - : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); - - static final _kStaticData = RustArcStaticData( - rustArcIncrementStrongCount: - RustLib.instance.api.rust_arc_increment_strong_count_Client, - rustArcDecrementStrongCount: - RustLib.instance.api.rust_arc_decrement_strong_count_Client, - rustArcDecrementStrongCountPtr: - RustLib.instance.api.rust_arc_decrement_strong_count_ClientPtr, - ); - - /// Check if a file exists in storage - /// - /// # Arguments - /// - /// * `stored_info` - Metadata from when the file was stored - /// - /// # Returns - /// - /// `true` if the file exists in storage, `false` otherwise - Future hasFile({required FileRef storedInfo}) => RustLib.instance.api - .zoeClientClientClientHasFile(that: this, storedInfo: storedInfo); - - /// Retrieve a file from storage and save it to disk - /// - /// This method: - /// 1. Retrieves the encrypted data from blob storage using the FileRef - /// 2. Decrypts the content - /// 3. Writes the decrypted content to the specified path - /// - /// # Arguments - /// - /// * `file_ref` - Metadata for the file to retrieve - /// * `output_path` - Path where the decrypted file should be saved - /// - /// # Errors - /// - /// Returns an error if: - /// - The file cannot be found in storage - /// - Decryption fails - /// - Writing to disk fails - Future retrieveFile({ - required FileRef fileRef, - required PathBuf outputPath, - }) => RustLib.instance.api.zoeClientClientClientRetrieveFile( - that: this, - fileRef: fileRef, - outputPath: outputPath, - ); - - /// Retrieve a file from storage as bytes - /// - /// This method: - /// 1. Retrieves the encrypted data from blob storage using the FileRef - /// 2. Decrypts the content - /// 3. Returns the decrypted content as bytes - /// - /// # Arguments - /// - /// * `file_ref` - Metadata for the file to retrieve - /// - /// # Returns - /// - /// The decrypted file content as `Vec` - /// - /// # Errors - /// - /// Returns an error if: - /// - The file cannot be found in storage - /// - Decryption fails - Future retrieveFileBytes({required FileRef fileRef}) => RustLib - .instance - .api - .zoeClientClientClientRetrieveFileBytes(that: this, fileRef: fileRef); - - /// Store raw data (not from a file) with encryption and blob storage - /// - /// This method allows storing arbitrary data without reading from disk. - /// - /// # Arguments - /// - /// * `data` - The raw data to store - /// * `reference_name` - A reference name for the data (used in metadata) - /// * `content_type` - Optional content type for metadata - /// - /// # Returns - /// - /// `FileRef` containing the blob hash, encryption info, and metadata - Future storeData({ - required List data, - required String referenceName, - String? contentType, - }) => RustLib.instance.api.zoeClientClientClientStoreData( - that: this, - data: data, - referenceName: referenceName, - contentType: contentType, - ); - - /// Store a file by reading from disk, encrypting, and storing in blob storage - /// - /// This method: - /// 1. Reads the file from the provided path - /// 2. Encrypts the content using convergent encryption - /// 3. Stores the encrypted data in the blob store - /// 4. Returns metadata needed to retrieve the file later - /// - /// # Arguments - /// - /// * `file_path` - Path to the file to store - /// - /// # Returns - /// - /// A `FileRef` containing the metadata needed to retrieve the file - /// - /// # Errors - /// - /// Returns an error if: - /// - The file cannot be read - /// - Encryption fails - /// - Blob storage operation fails - Future storeFile({required PathBuf filePath}) => RustLib.instance.api - .zoeClientClientClientStoreFile(that: this, filePath: filePath); -} - -@sealed -class ClientSecretImpl extends RustOpaque implements ClientSecret { - // Not to be used by end users - ClientSecretImpl.frbInternalDcoDecode(List wire) - : super.frbInternalDcoDecode(wire, _kStaticData); - - // Not to be used by end users - ClientSecretImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) - : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); - - static final _kStaticData = RustArcStaticData( - rustArcIncrementStrongCount: - RustLib.instance.api.rust_arc_increment_strong_count_ClientSecret, - rustArcDecrementStrongCount: - RustLib.instance.api.rust_arc_decrement_strong_count_ClientSecret, - rustArcDecrementStrongCountPtr: - RustLib.instance.api.rust_arc_decrement_strong_count_ClientSecretPtr, - ); - - Future asHex() => - RustLib.instance.api.zoeClientClientClientSecretAsHex(that: this); -} - -@sealed -class FileRefImpl extends RustOpaque implements FileRef { - // Not to be used by end users - FileRefImpl.frbInternalDcoDecode(List wire) - : super.frbInternalDcoDecode(wire, _kStaticData); - - // Not to be used by end users - FileRefImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) - : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); - - static final _kStaticData = RustArcStaticData( - rustArcIncrementStrongCount: - RustLib.instance.api.rust_arc_increment_strong_count_FileRef, - rustArcDecrementStrongCount: - RustLib.instance.api.rust_arc_decrement_strong_count_FileRef, - rustArcDecrementStrongCountPtr: - RustLib.instance.api.rust_arc_decrement_strong_count_FileRefPtr, - ); -} - -@sealed -class PathBufImpl extends RustOpaque implements PathBuf { - // Not to be used by end users - PathBufImpl.frbInternalDcoDecode(List wire) - : super.frbInternalDcoDecode(wire, _kStaticData); - - // Not to be used by end users - PathBufImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) - : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); - - static final _kStaticData = RustArcStaticData( - rustArcIncrementStrongCount: - RustLib.instance.api.rust_arc_increment_strong_count_PathBuf, - rustArcDecrementStrongCount: - RustLib.instance.api.rust_arc_decrement_strong_count_PathBuf, - rustArcDecrementStrongCountPtr: - RustLib.instance.api.rust_arc_decrement_strong_count_PathBufPtr, - ); -} - -@sealed -class SigningKeyImpl extends RustOpaque implements SigningKey { - // Not to be used by end users - SigningKeyImpl.frbInternalDcoDecode(List wire) - : super.frbInternalDcoDecode(wire, _kStaticData); - - // Not to be used by end users - SigningKeyImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) - : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); - - static final _kStaticData = RustArcStaticData( - rustArcIncrementStrongCount: - RustLib.instance.api.rust_arc_increment_strong_count_SigningKey, - rustArcDecrementStrongCount: - RustLib.instance.api.rust_arc_decrement_strong_count_SigningKey, - rustArcDecrementStrongCountPtr: - RustLib.instance.api.rust_arc_decrement_strong_count_SigningKeyPtr, - ); -} - -@sealed -class SocketAddrImpl extends RustOpaque implements SocketAddr { - // Not to be used by end users - SocketAddrImpl.frbInternalDcoDecode(List wire) - : super.frbInternalDcoDecode(wire, _kStaticData); - - // Not to be used by end users - SocketAddrImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) - : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); - - static final _kStaticData = RustArcStaticData( - rustArcIncrementStrongCount: - RustLib.instance.api.rust_arc_increment_strong_count_SocketAddr, - rustArcDecrementStrongCount: - RustLib.instance.api.rust_arc_decrement_strong_count_SocketAddr, - rustArcDecrementStrongCountPtr: - RustLib.instance.api.rust_arc_decrement_strong_count_SocketAddrPtr, - ); -} - -@sealed -class VerifyingKeyImpl extends RustOpaque implements VerifyingKey { - // Not to be used by end users - VerifyingKeyImpl.frbInternalDcoDecode(List wire) - : super.frbInternalDcoDecode(wire, _kStaticData); - - // Not to be used by end users - VerifyingKeyImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) - : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); - - static final _kStaticData = RustArcStaticData( - rustArcIncrementStrongCount: - RustLib.instance.api.rust_arc_increment_strong_count_VerifyingKey, - rustArcDecrementStrongCount: - RustLib.instance.api.rust_arc_decrement_strong_count_VerifyingKey, - rustArcDecrementStrongCountPtr: - RustLib.instance.api.rust_arc_decrement_strong_count_VerifyingKeyPtr, - ); -} diff --git a/lib/core/rust/frb_generated.io.dart b/lib/core/rust/frb_generated.io.dart deleted file mode 100644 index 5d180a95..00000000 --- a/lib/core/rust/frb_generated.io.dart +++ /dev/null @@ -1,843 +0,0 @@ -// This file is automatically generated, so please do not edit it. -// @generated by `flutter_rust_bridge`@ 2.11.1. - -// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field - -import 'api/simple.dart'; -import 'dart:async'; -import 'dart:convert'; -import 'dart:ffi' as ffi; -import 'frb_generated.dart'; -import 'lib.dart'; -import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated_io.dart'; -import 'third_party/zoe_client/client.dart'; -import 'third_party/zoe_client/frb_api.dart'; - -abstract class RustLibApiImplPlatform extends BaseApiImpl { - RustLibApiImplPlatform({ - required super.handler, - required super.wire, - required super.generalizedFrbRustBinding, - required super.portManager, - }); - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_ClientPtr => wire - ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientPtr; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_ClientBuilderPtr => wire - ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilderPtr; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_ClientSecretPtr => wire - ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecretPtr; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_FileRefPtr => wire - ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRefPtr; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_PathBufPtr => wire - ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBufPtr; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_SigningKeyPtr => wire - ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKeyPtr; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_SocketAddrPtr => wire - ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddrPtr; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_VerifyingKeyPtr => wire - ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyPtr; - - @protected - AnyhowException dco_decode_AnyhowException(dynamic raw); - - @protected - Client - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - dynamic raw, - ); - - @protected - ClientBuilder - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - dynamic raw, - ); - - @protected - ClientSecret - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - dynamic raw, - ); - - @protected - FileRef - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - dynamic raw, - ); - - @protected - PathBuf - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - dynamic raw, - ); - - @protected - SigningKey - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - dynamic raw, - ); - - @protected - SocketAddr - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - dynamic raw, - ); - - @protected - VerifyingKey - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - dynamic raw, - ); - - @protected - ClientBuilder - dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - dynamic raw, - ); - - @protected - Client - dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - dynamic raw, - ); - - @protected - ClientSecret - dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - dynamic raw, - ); - - @protected - FileRef - dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - dynamic raw, - ); - - @protected - SocketAddr - dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - dynamic raw, - ); - - @protected - Client - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - dynamic raw, - ); - - @protected - ClientBuilder - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - dynamic raw, - ); - - @protected - ClientSecret - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - dynamic raw, - ); - - @protected - FileRef - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - dynamic raw, - ); - - @protected - PathBuf - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - dynamic raw, - ); - - @protected - SigningKey - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - dynamic raw, - ); - - @protected - SocketAddr - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - dynamic raw, - ); - - @protected - VerifyingKey - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - dynamic raw, - ); - - @protected - String dco_decode_String(dynamic raw); - - @protected - bool dco_decode_bool(dynamic raw); - - @protected - List dco_decode_list_prim_u_8_loose(dynamic raw); - - @protected - Uint8List dco_decode_list_prim_u_8_strict(dynamic raw); - - @protected - String? dco_decode_opt_String(dynamic raw); - - @protected - int dco_decode_u_16(dynamic raw); - - @protected - int dco_decode_u_8(dynamic raw); - - @protected - void dco_decode_unit(dynamic raw); - - @protected - BigInt dco_decode_usize(dynamic raw); - - @protected - AnyhowException sse_decode_AnyhowException(SseDeserializer deserializer); - - @protected - Client - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - SseDeserializer deserializer, - ); - - @protected - ClientBuilder - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - SseDeserializer deserializer, - ); - - @protected - ClientSecret - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - SseDeserializer deserializer, - ); - - @protected - FileRef - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - SseDeserializer deserializer, - ); - - @protected - PathBuf - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - SseDeserializer deserializer, - ); - - @protected - SigningKey - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - SseDeserializer deserializer, - ); - - @protected - SocketAddr - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SseDeserializer deserializer, - ); - - @protected - VerifyingKey - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - SseDeserializer deserializer, - ); - - @protected - ClientBuilder - sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - SseDeserializer deserializer, - ); - - @protected - Client - sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - SseDeserializer deserializer, - ); - - @protected - ClientSecret - sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - SseDeserializer deserializer, - ); - - @protected - FileRef - sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - SseDeserializer deserializer, - ); - - @protected - SocketAddr - sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SseDeserializer deserializer, - ); - - @protected - Client - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - SseDeserializer deserializer, - ); - - @protected - ClientBuilder - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - SseDeserializer deserializer, - ); - - @protected - ClientSecret - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - SseDeserializer deserializer, - ); - - @protected - FileRef - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - SseDeserializer deserializer, - ); - - @protected - PathBuf - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - SseDeserializer deserializer, - ); - - @protected - SigningKey - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - SseDeserializer deserializer, - ); - - @protected - SocketAddr - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SseDeserializer deserializer, - ); - - @protected - VerifyingKey - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - SseDeserializer deserializer, - ); - - @protected - String sse_decode_String(SseDeserializer deserializer); - - @protected - bool sse_decode_bool(SseDeserializer deserializer); - - @protected - List sse_decode_list_prim_u_8_loose(SseDeserializer deserializer); - - @protected - Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer); - - @protected - String? sse_decode_opt_String(SseDeserializer deserializer); - - @protected - int sse_decode_u_16(SseDeserializer deserializer); - - @protected - int sse_decode_u_8(SseDeserializer deserializer); - - @protected - void sse_decode_unit(SseDeserializer deserializer); - - @protected - BigInt sse_decode_usize(SseDeserializer deserializer); - - @protected - int sse_decode_i_32(SseDeserializer deserializer); - - @protected - void sse_encode_AnyhowException( - AnyhowException self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - Client self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ClientBuilder self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ClientSecret self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - FileRef self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - PathBuf self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - SigningKey self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SocketAddr self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - VerifyingKey self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ClientBuilder self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - Client self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ClientSecret self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - FileRef self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SocketAddr self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - Client self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ClientBuilder self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ClientSecret self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - FileRef self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - PathBuf self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - SigningKey self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SocketAddr self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - VerifyingKey self, - SseSerializer serializer, - ); - - @protected - void sse_encode_String(String self, SseSerializer serializer); - - @protected - void sse_encode_bool(bool self, SseSerializer serializer); - - @protected - void sse_encode_list_prim_u_8_loose(List self, SseSerializer serializer); - - @protected - void sse_encode_list_prim_u_8_strict( - Uint8List self, - SseSerializer serializer, - ); - - @protected - void sse_encode_opt_String(String? self, SseSerializer serializer); - - @protected - void sse_encode_u_16(int self, SseSerializer serializer); - - @protected - void sse_encode_u_8(int self, SseSerializer serializer); - - @protected - void sse_encode_unit(void self, SseSerializer serializer); - - @protected - void sse_encode_usize(BigInt self, SseSerializer serializer); - - @protected - void sse_encode_i_32(int self, SseSerializer serializer); -} - -// Section: wire_class - -class RustLibWire implements BaseWire { - factory RustLibWire.fromExternalLibrary(ExternalLibrary lib) => - RustLibWire(lib.ffiDynamicLibrary); - - /// Holds the symbol lookup function. - final ffi.Pointer Function(String symbolName) - _lookup; - - /// The symbols are looked up in [dynamicLibrary]. - RustLibWire(ffi.DynamicLibrary dynamicLibrary) - : _lookup = dynamicLibrary.lookup; - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - ffi.Pointer ptr, - ) { - return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - ptr, - ); - } - - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient', - ); - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient = - _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientPtr - .asFunction)>(); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - ffi.Pointer ptr, - ) { - return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - ptr, - ); - } - - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient', - ); - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient = - _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientPtr - .asFunction)>(); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ffi.Pointer ptr, - ) { - return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ptr, - ); - } - - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilderPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder', - ); - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder = - _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilderPtr - .asFunction)>(); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ffi.Pointer ptr, - ) { - return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ptr, - ); - } - - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilderPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder', - ); - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder = - _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilderPtr - .asFunction)>(); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ffi.Pointer ptr, - ) { - return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ptr, - ); - } - - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecretPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret', - ); - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret = - _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecretPtr - .asFunction)>(); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ffi.Pointer ptr, - ) { - return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ptr, - ); - } - - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecretPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret', - ); - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret = - _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecretPtr - .asFunction)>(); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - ffi.Pointer ptr, - ) { - return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - ptr, - ); - } - - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRefPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef', - ); - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef = - _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRefPtr - .asFunction)>(); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - ffi.Pointer ptr, - ) { - return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - ptr, - ); - } - - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRefPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef', - ); - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef = - _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRefPtr - .asFunction)>(); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - ffi.Pointer ptr, - ) { - return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - ptr, - ); - } - - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBufPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf', - ); - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf = - _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBufPtr - .asFunction)>(); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - ffi.Pointer ptr, - ) { - return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - ptr, - ); - } - - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBufPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf', - ); - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf = - _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBufPtr - .asFunction)>(); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - ffi.Pointer ptr, - ) { - return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - ptr, - ); - } - - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKeyPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey', - ); - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey = - _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKeyPtr - .asFunction)>(); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - ffi.Pointer ptr, - ) { - return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - ptr, - ); - } - - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKeyPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey', - ); - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey = - _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKeyPtr - .asFunction)>(); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - ffi.Pointer ptr, - ) { - return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - ptr, - ); - } - - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddrPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr', - ); - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr = - _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddrPtr - .asFunction)>(); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - ffi.Pointer ptr, - ) { - return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - ptr, - ); - } - - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddrPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr', - ); - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr = - _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddrPtr - .asFunction)>(); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - ffi.Pointer ptr, - ) { - return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - ptr, - ); - } - - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey', - ); - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey = - _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyPtr - .asFunction)>(); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - ffi.Pointer ptr, - ) { - return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - ptr, - ); - } - - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyPtr = - _lookup)>>( - 'frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey', - ); - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey = - _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyPtr - .asFunction)>(); -} diff --git a/lib/core/rust/frb_generated.web.dart b/lib/core/rust/frb_generated.web.dart deleted file mode 100644 index 883d2d18..00000000 --- a/lib/core/rust/frb_generated.web.dart +++ /dev/null @@ -1,779 +0,0 @@ -// This file is automatically generated, so please do not edit it. -// @generated by `flutter_rust_bridge`@ 2.11.1. - -// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field - -// Static analysis wrongly picks the IO variant, thus ignore this -// ignore_for_file: argument_type_not_assignable - -import 'api/simple.dart'; -import 'dart:async'; -import 'dart:convert'; -import 'frb_generated.dart'; -import 'lib.dart'; -import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated_web.dart'; -import 'third_party/zoe_client/client.dart'; -import 'third_party/zoe_client/frb_api.dart'; - -abstract class RustLibApiImplPlatform extends BaseApiImpl { - RustLibApiImplPlatform({ - required super.handler, - required super.wire, - required super.generalizedFrbRustBinding, - required super.portManager, - }); - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_ClientPtr => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_ClientBuilderPtr => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_ClientSecretPtr => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_FileRefPtr => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_PathBufPtr => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_SigningKeyPtr => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_SocketAddrPtr => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr; - - CrossPlatformFinalizerArg - get rust_arc_decrement_strong_count_VerifyingKeyPtr => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey; - - @protected - AnyhowException dco_decode_AnyhowException(dynamic raw); - - @protected - Client - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - dynamic raw, - ); - - @protected - ClientBuilder - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - dynamic raw, - ); - - @protected - ClientSecret - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - dynamic raw, - ); - - @protected - FileRef - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - dynamic raw, - ); - - @protected - PathBuf - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - dynamic raw, - ); - - @protected - SigningKey - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - dynamic raw, - ); - - @protected - SocketAddr - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - dynamic raw, - ); - - @protected - VerifyingKey - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - dynamic raw, - ); - - @protected - ClientBuilder - dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - dynamic raw, - ); - - @protected - Client - dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - dynamic raw, - ); - - @protected - ClientSecret - dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - dynamic raw, - ); - - @protected - FileRef - dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - dynamic raw, - ); - - @protected - SocketAddr - dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - dynamic raw, - ); - - @protected - Client - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - dynamic raw, - ); - - @protected - ClientBuilder - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - dynamic raw, - ); - - @protected - ClientSecret - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - dynamic raw, - ); - - @protected - FileRef - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - dynamic raw, - ); - - @protected - PathBuf - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - dynamic raw, - ); - - @protected - SigningKey - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - dynamic raw, - ); - - @protected - SocketAddr - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - dynamic raw, - ); - - @protected - VerifyingKey - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - dynamic raw, - ); - - @protected - String dco_decode_String(dynamic raw); - - @protected - bool dco_decode_bool(dynamic raw); - - @protected - List dco_decode_list_prim_u_8_loose(dynamic raw); - - @protected - Uint8List dco_decode_list_prim_u_8_strict(dynamic raw); - - @protected - String? dco_decode_opt_String(dynamic raw); - - @protected - int dco_decode_u_16(dynamic raw); - - @protected - int dco_decode_u_8(dynamic raw); - - @protected - void dco_decode_unit(dynamic raw); - - @protected - BigInt dco_decode_usize(dynamic raw); - - @protected - AnyhowException sse_decode_AnyhowException(SseDeserializer deserializer); - - @protected - Client - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - SseDeserializer deserializer, - ); - - @protected - ClientBuilder - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - SseDeserializer deserializer, - ); - - @protected - ClientSecret - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - SseDeserializer deserializer, - ); - - @protected - FileRef - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - SseDeserializer deserializer, - ); - - @protected - PathBuf - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - SseDeserializer deserializer, - ); - - @protected - SigningKey - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - SseDeserializer deserializer, - ); - - @protected - SocketAddr - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SseDeserializer deserializer, - ); - - @protected - VerifyingKey - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - SseDeserializer deserializer, - ); - - @protected - ClientBuilder - sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - SseDeserializer deserializer, - ); - - @protected - Client - sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - SseDeserializer deserializer, - ); - - @protected - ClientSecret - sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - SseDeserializer deserializer, - ); - - @protected - FileRef - sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - SseDeserializer deserializer, - ); - - @protected - SocketAddr - sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SseDeserializer deserializer, - ); - - @protected - Client - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - SseDeserializer deserializer, - ); - - @protected - ClientBuilder - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - SseDeserializer deserializer, - ); - - @protected - ClientSecret - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - SseDeserializer deserializer, - ); - - @protected - FileRef - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - SseDeserializer deserializer, - ); - - @protected - PathBuf - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - SseDeserializer deserializer, - ); - - @protected - SigningKey - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - SseDeserializer deserializer, - ); - - @protected - SocketAddr - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SseDeserializer deserializer, - ); - - @protected - VerifyingKey - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - SseDeserializer deserializer, - ); - - @protected - String sse_decode_String(SseDeserializer deserializer); - - @protected - bool sse_decode_bool(SseDeserializer deserializer); - - @protected - List sse_decode_list_prim_u_8_loose(SseDeserializer deserializer); - - @protected - Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer); - - @protected - String? sse_decode_opt_String(SseDeserializer deserializer); - - @protected - int sse_decode_u_16(SseDeserializer deserializer); - - @protected - int sse_decode_u_8(SseDeserializer deserializer); - - @protected - void sse_decode_unit(SseDeserializer deserializer); - - @protected - BigInt sse_decode_usize(SseDeserializer deserializer); - - @protected - int sse_decode_i_32(SseDeserializer deserializer); - - @protected - void sse_encode_AnyhowException( - AnyhowException self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - Client self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ClientBuilder self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ClientSecret self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - FileRef self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - PathBuf self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - SigningKey self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SocketAddr self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - VerifyingKey self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ClientBuilder self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - Client self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ClientSecret self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - FileRef self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SocketAddr self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - Client self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ClientBuilder self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ClientSecret self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - FileRef self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - PathBuf self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - SigningKey self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - SocketAddr self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - VerifyingKey self, - SseSerializer serializer, - ); - - @protected - void sse_encode_String(String self, SseSerializer serializer); - - @protected - void sse_encode_bool(bool self, SseSerializer serializer); - - @protected - void sse_encode_list_prim_u_8_loose(List self, SseSerializer serializer); - - @protected - void sse_encode_list_prim_u_8_strict( - Uint8List self, - SseSerializer serializer, - ); - - @protected - void sse_encode_opt_String(String? self, SseSerializer serializer); - - @protected - void sse_encode_u_16(int self, SseSerializer serializer); - - @protected - void sse_encode_u_8(int self, SseSerializer serializer); - - @protected - void sse_encode_unit(void self, SseSerializer serializer); - - @protected - void sse_encode_usize(BigInt self, SseSerializer serializer); - - @protected - void sse_encode_i_32(int self, SseSerializer serializer); -} - -// Section: wire_class - -class RustLibWire implements BaseWire { - RustLibWire.fromExternalLibrary(ExternalLibrary lib); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - int ptr, - ) => wasmModule - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - ptr, - ); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - int ptr, - ) => wasmModule - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - ptr, - ); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - int ptr, - ) => wasmModule - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ptr, - ); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - int ptr, - ) => wasmModule - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ptr, - ); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - int ptr, - ) => wasmModule - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ptr, - ); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - int ptr, - ) => wasmModule - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ptr, - ); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - int ptr, - ) => wasmModule - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - ptr, - ); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - int ptr, - ) => wasmModule - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - ptr, - ); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - int ptr, - ) => wasmModule - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - ptr, - ); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - int ptr, - ) => wasmModule - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - ptr, - ); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - int ptr, - ) => wasmModule - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - ptr, - ); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - int ptr, - ) => wasmModule - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - ptr, - ); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - int ptr, - ) => wasmModule - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - ptr, - ); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - int ptr, - ) => wasmModule - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - ptr, - ); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - int ptr, - ) => wasmModule - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - ptr, - ); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - int ptr, - ) => wasmModule - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - ptr, - ); -} - -@JS('wasm_bindgen') -external RustLibWasmModule get wasmModule; - -@JS() -@anonymous -extension type RustLibWasmModule._(JSObject _) implements JSObject { - external void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - int ptr, - ); - - external void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - int ptr, - ); - - external void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - int ptr, - ); - - external void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - int ptr, - ); - - external void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - int ptr, - ); - - external void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - int ptr, - ); - - external void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - int ptr, - ); - - external void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - int ptr, - ); - - external void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - int ptr, - ); - - external void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - int ptr, - ); - - external void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - int ptr, - ); - - external void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - int ptr, - ); - - external void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - int ptr, - ); - - external void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - int ptr, - ); - - external void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - int ptr, - ); - - external void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - int ptr, - ); -} diff --git a/lib/features/home/screens/home_screen.dart b/lib/features/home/screens/home_screen.dart index da9f7b8d..70eec516 100644 --- a/lib/features/home/screens/home_screen.dart +++ b/lib/features/home/screens/home_screen.dart @@ -13,6 +13,7 @@ import 'package:zoe/common/widgets/toolkit/zoe_icon_button_widget.dart'; import 'package:zoe/core/preference_service/preferences_service.dart'; import 'package:zoe/core/routing/app_routes.dart'; import 'package:zoe/features/content/providers/content_menu_providers.dart'; +import 'package:zoe/features/home/widgets/app_bar/connection_status_indicator.dart'; import 'package:zoe/features/home/widgets/section_header/section_header_widget.dart'; import 'package:zoe/features/home/widgets/stats_section/stats_section_widget.dart'; import 'package:zoe/features/home/widgets/today_focus/todays_focus_widget.dart'; @@ -76,6 +77,7 @@ class _HomeScreenState extends ConsumerState { ), ), actions: [ + const ConnectionStatusWidget(), if (Platform.isAndroid || Platform.isIOS) _buildQrScanButton(), _buildSearchButton(), ], @@ -153,7 +155,11 @@ class _HomeScreenState extends ConsumerState { icon: Icons.description, ), const SizedBox(height: 16), - SheetListWidget(sheetsProvider: sheetListProvider, shrinkWrap: true, maxItems: 3), + SheetListWidget( + sheetsProvider: sheetListProvider, + shrinkWrap: true, + maxItems: 3, + ), const SizedBox(height: 100), // Space for FAB ], ); diff --git a/lib/features/home/widgets/app_bar/connection_status_indicator.dart b/lib/features/home/widgets/app_bar/connection_status_indicator.dart new file mode 100644 index 00000000..d7afc49a --- /dev/null +++ b/lib/features/home/widgets/app_bar/connection_status_indicator.dart @@ -0,0 +1,58 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:zoe_native/providers.dart'; +import 'package:zoe_native/zoe_native.dart'; + +class ConnectionStatusWidget extends ConsumerWidget { + const ConnectionStatusWidget({super.key}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final connectionStatus = ref.watch(connectionStatusProvider); + if (connectionStatus.isLoading) { + return SizedBox( + width: 10, + height: 10, + child: const CircularProgressIndicator(), + ); + } + if (connectionStatus.hasError) { + final message = connectionStatus.error.toString(); + return Tooltip( + message: message, + child: const Icon(Icons.error_outline_outlined, color: Colors.red), + ); + } + return _IconWidget(connectionStatus: connectionStatus.requireValue); + } +} + +class _IconWidget extends StatelessWidget { + const _IconWidget({required this.connectionStatus}); + + final OverallConnectionStatus connectionStatus; + + @override + Widget build(BuildContext context) { + final message = + "connected to ${connectionStatus.totalCount} / ${connectionStatus.totalCount}"; + + if (connectionStatus.isConnected) { + return Tooltip( + message: message, + child: const Icon(Icons.check_circle, color: Colors.green), + ); + } + if (!connectionStatus.isConnected && + connectionStatus.totalCount.compareTo(BigInt.zero) == 0) { + return Tooltip( + message: message, + child: const Icon(Icons.error_outline_outlined, color: Colors.red), + ); + } + return Tooltip( + message: message, + child: Icon(Icons.warning_amber_outlined, color: Colors.yellow), + ); + } +} diff --git a/lib/features/settings/screens/developer_tools_screen.dart b/lib/features/settings/screens/developer_tools_screen.dart new file mode 100644 index 00000000..7cd9adf2 --- /dev/null +++ b/lib/features/settings/screens/developer_tools_screen.dart @@ -0,0 +1,171 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:go_router/go_router.dart'; +import 'package:zoe/common/widgets/max_width_widget.dart'; +import 'package:zoe/common/widgets/toolkit/zoe_app_bar_widget.dart'; +import 'package:zoe/core/routing/app_routes.dart'; +import 'package:zoe/features/settings/widgets/setting_card_widget.dart'; +import 'package:zoe/features/settings/widgets/setting_item_widget.dart'; +import 'package:zoe_native/zoe_native.dart'; + +class DeveloperToolsScreen extends ConsumerWidget { + const DeveloperToolsScreen({super.key}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + return Scaffold( + appBar: _buildAppBar(context), + body: SafeArea( + child: Center( + child: MaxWidthWidget( + isScrollable: true, + padding: const EdgeInsets.symmetric(horizontal: 16), + child: _buildDeveloperToolsBody(context, ref), + ), + ), + ), + ); + } + + AppBar _buildAppBar(BuildContext context) { + return AppBar( + automaticallyImplyLeading: false, + title: const ZoeAppBar(title: 'Developer Tools'), + ); + } + + Widget _buildDeveloperToolsBody(BuildContext context, WidgetRef ref) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 16), + + // System Testing Section + _buildSystemTestingSection(context), + const SizedBox(height: 20), + + // Client Management Section + _buildClientManagementSection(context, ref), + const SizedBox(height: 20), + + // Future sections can be added here + // _buildLoggingSection(context), + // _buildNetworkSection(context), + ], + ); + } + + Widget _buildSystemTestingSection(BuildContext context) { + return SettingCardWidget( + title: 'System Testing', + children: [ + SettingItemWidget( + title: 'Systems Check', + subtitle: 'Comprehensive system diagnostics and testing', + icon: Icons.health_and_safety, + iconColor: const Color(0xFF10B981), // Emerald + onTap: () => context.push(AppRoutes.systemsTest.route), + ), + ], + ); + } + + Widget _buildClientManagementSection(BuildContext context, WidgetRef ref) { + return SettingCardWidget( + title: 'Client Management', + titleColor: const Color(0xFFEF4444), // Red warning color + children: [ + SettingItemWidget( + title: 'Reset Client', + subtitle: 'Clear stored secrets and force client regeneration', + icon: Icons.refresh, + iconColor: const Color(0xFFEF4444), // Red + onTap: () => _showResetClientDialog(context, ref), + ), + ], + ); + } + + void _showResetClientDialog(BuildContext context, WidgetRef ref) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Reset Client'), + content: const Text( + 'This will clear all stored client secrets and force the app to generate a new client identity. ' + 'You may need to re-authenticate with services.\n\n' + 'Are you sure you want to continue?', + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('Cancel'), + ), + TextButton( + onPressed: () async { + Navigator.of(context).pop(); + await _performClientReset(context); + }, + style: TextButton.styleFrom( + foregroundColor: const Color(0xFFEF4444), + ), + child: const Text('Reset'), + ), + ], + ); + }, + ); + } + + Future _performClientReset(BuildContext context) async { + try { + // Show loading indicator + showDialog( + context: context, + barrierDismissible: false, + builder: (BuildContext context) { + return const AlertDialog( + content: Row( + mainAxisSize: MainAxisSize.min, + children: [ + CircularProgressIndicator(), + SizedBox(width: 16), + Text('Resetting client...'), + ], + ), + ); + }, + ); + + await resetClient(); + + // Close loading dialog + if (context.mounted) { + Navigator.of(context).pop(); + + // Show success message + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Client reset successfully'), + backgroundColor: Color(0xFF10B981), + ), + ); + } + } catch (e) { + // Close loading dialog if still open + if (context.mounted) { + Navigator.of(context).pop(); + + // Show error message + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Failed to reset client: $e'), + backgroundColor: const Color(0xFFEF4444), + ), + ); + } + } + } +} + diff --git a/lib/features/settings/screens/settings_screen.dart b/lib/features/settings/screens/settings_screen.dart index e513f13f..bb0139ee 100644 --- a/lib/features/settings/screens/settings_screen.dart +++ b/lib/features/settings/screens/settings_screen.dart @@ -14,6 +14,7 @@ import 'package:zoe/features/settings/widgets/setting_card_widget.dart'; import 'package:zoe/features/settings/widgets/setting_item_widget.dart'; import 'package:zoe/features/users/providers/user_providers.dart'; import 'package:zoe/l10n/generated/l10n.dart'; +import 'package:flutter/foundation.dart'; class SettingsScreen extends ConsumerWidget { const SettingsScreen({super.key}); @@ -180,6 +181,16 @@ class SettingsScreen extends ConsumerWidget { iconColor: const Color(0xFF84CC16), // Lime onTap: () {}, ), + if (kDebugMode) ...[ + const Divider(height: 1), + SettingItemWidget( + title: 'Developer Tools', + subtitle: 'System diagnostics and testing tools', + icon: Icons.developer_mode, + iconColor: const Color(0xFFFF6B35), // Orange + onTap: () => context.push(AppRoutes.developerTools.route), + ), + ], ], ); } diff --git a/lib/features/settings/screens/systems_test_screen.dart b/lib/features/settings/screens/systems_test_screen.dart new file mode 100644 index 00000000..d441e88e --- /dev/null +++ b/lib/features/settings/screens/systems_test_screen.dart @@ -0,0 +1,868 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:zoe/common/widgets/max_width_widget.dart'; +import 'package:zoe/common/widgets/toolkit/zoe_app_bar_widget.dart'; +import 'package:zoe/common/widgets/glassy_container_widget.dart'; +import 'package:zoe_native/providers.dart'; +import 'package:zoe_native/zoe_native.dart'; + +class SystemsTestScreen extends ConsumerWidget { + const SystemsTestScreen({super.key}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final systemsTestState = ref.watch(enhancedSystemsTestProvider); + + return systemsTestState.when( + data: (result) => _buildTabsWithRelayServers(context, ref, result), + loading: () => _buildLoadingScreen(context), + error: (error, stackTrace) => _buildErrorScreen(context, error), + ); + } + + Widget _buildTabsWithRelayServers( + BuildContext context, + WidgetRef ref, + EnhancedSystemsTestResult result, + ) { + final relayServers = result.clientInfo.relayServers; + final allServers = [ + // Default server first + RelayServerInfo( + address: defaultServerAddr, + keyHex: defaultServerKey, + keyId: 'default', + isConnected: false, + isDefault: true, + ), + // Then configured relay servers (excluding default) + ...relayServers.where((server) => !server.isDefault), + ]; + + return DefaultTabController( + length: allServers.length, + child: Scaffold( + appBar: _buildAppBar(context), + body: SafeArea( + child: Column( + children: [ + // Client Information Section (always visible) + Container( + margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: _buildClientInfoSection( + context, + AsyncValue.data(result), + ), + ), + + // Tab Bar for relay servers + Container( + margin: const EdgeInsets.symmetric(horizontal: 16), + child: GlassyContainer( + child: TabBar( + isScrollable: allServers.length > 3, + tabs: allServers.map((server) { + return Tab( + icon: Icon( + server.isDefault + ? Icons.settings_ethernet + : Icons.router, + ), + text: server.isDefault + ? 'Default Server' + : server.address, + ); + }).toList(), + labelColor: Theme.of(context).colorScheme.primary, + unselectedLabelColor: Theme.of( + context, + ).colorScheme.onSurface.withValues(alpha: 0.6), + indicatorColor: Theme.of(context).colorScheme.primary, + ), + ), + ), + + // Tab Views for each relay server + Expanded( + child: TabBarView( + children: allServers.map((server) { + return _buildServerTestTab(context, ref, server, result); + }).toList(), + ), + ), + ], + ), + ), + ), + ); + } + + Widget _buildLoadingScreen(BuildContext context) { + return Scaffold( + appBar: _buildAppBar(context), + body: const Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator(), + SizedBox(height: 16), + Text('Loading client information...'), + ], + ), + ), + ); + } + + Widget _buildErrorScreen(BuildContext context, Object error) { + return Scaffold( + appBar: _buildAppBar(context), + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Icon(Icons.error_outline, size: 64, color: Colors.red), + const SizedBox(height: 16), + Text( + 'Failed to load client information', + style: Theme.of(context).textTheme.headlineSmall, + ), + const SizedBox(height: 8), + Text( + error.toString(), + style: Theme.of(context).textTheme.bodyMedium, + textAlign: TextAlign.center, + ), + ], + ), + ), + ); + } + + AppBar _buildAppBar(BuildContext context) { + return AppBar( + automaticallyImplyLeading: false, + title: const ZoeAppBar(title: 'Systems Test'), + ); + } + + Widget _buildServerTestTab( + BuildContext context, + WidgetRef ref, + RelayServerInfo server, + EnhancedSystemsTestResult currentResult, + ) { + final systemsTestState = ref.watch(enhancedSystemsTestProvider); + + return Center( + child: MaxWidthWidget( + isScrollable: true, + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 16), + + // Server Information Section + _buildServerInfoSection(context, server), + const SizedBox(height: 20), + + // Test Control Section for this server + _buildServerTestControlSection( + context, + ref, + server, + systemsTestState, + ), + const SizedBox(height: 20), + + // Results Section - show live results as they come in + if (systemsTestState.hasValue || systemsTestState.hasError) + _buildResultsSection(context, systemsTestState), + ], + ), + ), + ); + } + + Widget _buildServerInfoSection(BuildContext context, RelayServerInfo server) { + return GlassyContainer( + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon( + server.isDefault ? Icons.settings_ethernet : Icons.router, + size: 20, + ), + const SizedBox(width: 8), + Text( + server.isDefault + ? 'Default Server Information' + : 'Relay Server Information', + style: Theme.of(context).textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w600, + ), + ), + ], + ), + const SizedBox(height: 12), + + _buildInfoRow(context, 'Address', server.address), + const SizedBox(height: 8), + _buildInfoRow(context, 'Server Key', server.keyHex), + const SizedBox(height: 8), + _buildInfoRow( + context, + 'Status', + server.isConnected ? 'Connected' : 'Disconnected', + statusColor: server.isConnected ? Colors.green : Colors.red, + ), + if (server.isDefault) ...[ + const SizedBox(height: 8), + _buildInfoRow( + context, + 'Purpose', + 'Development server for testing connectivity', + ), + ], + ], + ), + ), + ); + } + + Widget _buildServerTestControlSection( + BuildContext context, + WidgetRef ref, + RelayServerInfo server, + AsyncValue state, + ) { + final isRunning = + state.isLoading || (state.hasValue && state.value!.progress != null); + + return GlassyContainer( + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + const Icon(Icons.play_circle_outline, size: 20), + const SizedBox(width: 8), + Text( + 'Systems Test for ${server.isDefault ? 'Default Server' : server.address}', + style: Theme.of(context).textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w600, + ), + ), + ], + ), + const SizedBox(height: 16), + + SizedBox( + width: double.infinity, + child: ElevatedButton.icon( + onPressed: isRunning + ? null + : () => ref + .read(enhancedSystemsTestProvider.notifier) + .runSystemsTestForServer( + server.isDefault ? null : server, + ), + icon: isRunning + ? const SizedBox( + width: 16, + height: 16, + child: CircularProgressIndicator(strokeWidth: 2), + ) + : const Icon(Icons.health_and_safety), + label: Text( + isRunning ? 'Running Tests...' : 'Start Systems Test', + ), + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 12), + backgroundColor: server.isDefault + ? const Color(0xFF3B82F6) + : const Color(0xFF10B981), + foregroundColor: Colors.white, + ), + ), + ), + + // Show live progress or loading state + if (isRunning) ...[ + const SizedBox(height: 12), + _buildProgressIndicator(context, state), + const SizedBox(height: 8), + _buildProgressText(context, state, server), + ], + ], + ), + ), + ); + } + + Widget _buildProgressIndicator( + BuildContext context, + AsyncValue state, + ) { + if (state.hasValue && state.value!.progress != null) { + final progress = state.value!.progress!; + return Column( + children: [ + LinearProgressIndicator( + value: progress.progressPercent, + backgroundColor: Colors.grey.withValues(alpha: 0.3), + valueColor: AlwaysStoppedAnimation( + Theme.of(context).colorScheme.primary, + ), + ), + const SizedBox(height: 4), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + '${progress.completedTests}/${progress.totalTests} tests', + style: Theme.of(context).textTheme.bodySmall, + ), + Text( + '${progress.elapsed.inSeconds}s', + style: Theme.of(context).textTheme.bodySmall, + ), + ], + ), + ], + ); + } else { + return const LinearProgressIndicator(); + } + } + + Widget _buildProgressText( + BuildContext context, + AsyncValue state, + RelayServerInfo server, + ) { + String progressText; + + if (state.hasValue && state.value!.progress != null) { + final progress = state.value!.progress!; + progressText = 'Testing ${progress.currentTest}: ${progress.status}'; + } else { + progressText = + 'Running comprehensive system diagnostics against ${server.isDefault ? 'default server' : server.address}...'; + } + + return Text( + progressText, + style: Theme.of(context).textTheme.bodySmall?.copyWith( + color: Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.7), + ), + textAlign: TextAlign.center, + ); + } + + Widget _buildClientInfoSection( + BuildContext context, + AsyncValue state, + ) { + return GlassyContainer( + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + const Icon(Icons.info_outline, size: 20), + const SizedBox(width: 8), + Text( + 'Client Information', + style: Theme.of(context).textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w600, + ), + ), + ], + ), + const SizedBox(height: 12), + + state.when( + data: (result) => + _buildClientInfoContent(context, result.clientInfo), + loading: () => _buildClientInfoPlaceholder(context), + error: (error, stackTrace) => + _buildClientInfoPlaceholder(context), + ), + ], + ), + ), + ); + } + + Widget _buildClientInfoContent(BuildContext context, ClientInfo clientInfo) { + return Column( + children: [ + _buildInfoRow(context, 'Client ID', clientInfo.clientId), + const SizedBox(height: 8), + _buildInfoRow(context, 'Server Address', clientInfo.serverAddress), + const SizedBox(height: 8), + _buildInfoRow(context, 'Server Key', clientInfo.serverKey), + const SizedBox(height: 8), + _buildInfoRow( + context, + 'Connection Status', + clientInfo.isConnected ? 'Connected' : 'Disconnected', + statusColor: clientInfo.isConnected ? Colors.green : Colors.red, + ), + ], + ); + } + + Widget _buildClientInfoPlaceholder(BuildContext context) { + return Column( + children: [ + _buildInfoRow(context, 'Client ID', 'Loading...'), + const SizedBox(height: 8), + _buildInfoRow(context, 'Server Address', 'a.dev.hellozoe.app:13918'), + const SizedBox(height: 8), + _buildInfoRow(context, 'Server Key', '00201f12...'), + const SizedBox(height: 8), + _buildInfoRow(context, 'Connection Status', 'Unknown'), + ], + ); + } + + Widget _buildInfoRow( + BuildContext context, + String label, + String value, { + Color? statusColor, + }) { + return Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + width: 120, + child: Text( + label, + style: Theme.of(context).textTheme.bodySmall?.copyWith( + color: Theme.of( + context, + ).colorScheme.onSurface.withValues(alpha: 0.7), + ), + ), + ), + Expanded( + child: Text( + value, + style: Theme.of(context).textTheme.bodySmall?.copyWith( + fontFamily: 'monospace', + color: statusColor, + ), + ), + ), + ], + ); + } + + Widget _buildResultsSection( + BuildContext context, + AsyncValue state, + ) { + return state.when( + data: (result) => _buildTestResults(context, result), + loading: () => const SizedBox.shrink(), + error: (error, stackTrace) => _buildErrorResults(context, error), + ); + } + + Widget _buildTestResults( + BuildContext context, + EnhancedSystemsTestResult result, + ) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Overall Status (only show if testing is complete) + if (result.progress == null) + Column( + children: [ + _buildOverallStatus(context, result), + const SizedBox(height: 20), + ], + ), + + // Category Results - show all categories with live status + ...result.categories.map((streamingCategory) { + return Column( + children: [ + _buildStreamingCategoryResult(context, streamingCategory), + const SizedBox(height: 16), + ], + ); + }), + ], + ); + } + + Widget _buildOverallStatus( + BuildContext context, + EnhancedSystemsTestResult result, + ) { + return GlassyContainer( + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon( + result.success ? Icons.check_circle : Icons.error, + color: result.success ? Colors.green : Colors.red, + size: 24, + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + result.success + ? 'All Systems Operational' + : 'Issues Detected', + style: Theme.of(context).textTheme.titleMedium + ?.copyWith( + fontWeight: FontWeight.w600, + color: result.success ? Colors.green : Colors.red, + ), + ), + Text( + 'Completed at ${result.timestamp.toLocal().toString().split('.')[0]}', + style: Theme.of(context).textTheme.bodySmall, + ), + Text( + 'Duration: ${result.totalDuration.inMilliseconds}ms', + style: Theme.of(context).textTheme.bodySmall, + ), + ], + ), + ), + ], + ), + ], + ), + ), + ); + } + + Widget _buildStreamingCategoryResult( + BuildContext context, + StreamingTestCategory category, + ) { + // Determine icon and color based on status + IconData icon; + Color iconColor; + String statusText; + + if (category.isCurrentlyTesting) { + icon = Icons.hourglass_empty; + iconColor = Colors.orange; + statusText = 'Testing in progress...'; + } else if (!category.isCompleted) { + icon = Icons.schedule; + iconColor = Colors.grey; + statusText = 'Pending'; + } else { + icon = category.hasFailures ? Icons.error : Icons.check_circle; + iconColor = category.hasFailures ? Colors.red : Colors.green; + statusText = category.hasFailures ? 'Failed' : 'Passed'; + } + + return GlassyContainer( + child: Theme( + data: Theme.of(context).copyWith(dividerColor: Colors.transparent), + child: ExpansionTile( + leading: category.isCurrentlyTesting + ? SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + strokeWidth: 2, + valueColor: AlwaysStoppedAnimation(iconColor), + ), + ) + : Icon(icon, color: iconColor, size: 20), + title: Text( + category.displayName, + style: Theme.of( + context, + ).textTheme.titleSmall?.copyWith(fontWeight: FontWeight.w600), + ), + subtitle: Text( + category.isCurrentlyTesting || !category.isCompleted + ? statusText + : category.description, + style: Theme.of(context).textTheme.bodySmall?.copyWith( + color: category.isCurrentlyTesting ? Colors.orange : null, + ), + ), + children: [ + if (category.isCompleted && category.tests.isNotEmpty) ...[ + const Divider(), + Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Test Results', + style: Theme.of(context).textTheme.titleSmall?.copyWith( + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: 8), + ...category.tests.map( + (test) => _buildTestInfoItem(context, test), + ), + ], + ), + ), + ] else if (category.isCompleted) ...[ + const Padding( + padding: EdgeInsets.all(16), + child: Text( + 'No detailed test information available.', + style: TextStyle( + fontStyle: FontStyle.italic, + color: Colors.grey, + ), + ), + ), + ] else if (category.isCurrentlyTesting) ...[ + const Padding( + padding: EdgeInsets.all(16), + child: Row( + children: [ + SizedBox( + width: 16, + height: 16, + child: CircularProgressIndicator(strokeWidth: 2), + ), + SizedBox(width: 8), + Text( + 'Test is currently running...', + style: TextStyle( + fontStyle: FontStyle.italic, + color: Colors.orange, + ), + ), + ], + ), + ), + ] else ...[ + const Padding( + padding: EdgeInsets.all(16), + child: Text( + 'Test has not been run yet.', + style: TextStyle( + fontStyle: FontStyle.italic, + color: Colors.grey, + ), + ), + ), + ], + ], + ), + ), + ); + } + + Widget _buildTestInfoItem(BuildContext context, dynamic test) { + return FutureBuilder>( + future: _getTestInfoData(test), + builder: (context, snapshot) { + if (!snapshot.hasData) { + return Container( + margin: const EdgeInsets.only(bottom: 4), + child: Row( + children: [ + SizedBox( + width: 16, + height: 16, + child: CircularProgressIndicator(strokeWidth: 2), + ), + const SizedBox(width: 8), + Text( + 'Loading test info...', + style: Theme.of(context).textTheme.bodySmall, + ), + ], + ), + ); + } + + final testData = snapshot.data!; + final name = testData['name'] as String; + final isPassed = testData['isPassed'] as bool; + final isFailed = testData['isFailed'] as bool; + final error = testData['error'] as String?; + final details = testData['details'] as List; + final durationMs = testData['durationMs'] as int; + + return Container( + margin: const EdgeInsets.only(bottom: 8), + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: isPassed + ? Colors.green.withValues(alpha: 0.1) + : isFailed + ? Colors.red.withValues(alpha: 0.1) + : Colors.grey.withValues(alpha: 0.1), + borderRadius: BorderRadius.circular(8), + border: Border.all( + color: isPassed + ? Colors.green.withValues(alpha: 0.3) + : isFailed + ? Colors.red.withValues(alpha: 0.3) + : Colors.grey.withValues(alpha: 0.3), + ), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon( + isPassed + ? Icons.check_circle + : isFailed + ? Icons.error + : Icons.help_outline, + color: isPassed + ? Colors.green + : isFailed + ? Colors.red + : Colors.grey, + size: 16, + ), + const SizedBox(width: 8), + Expanded( + child: Text( + name, + style: Theme.of(context).textTheme.bodyMedium?.copyWith( + fontWeight: FontWeight.w600, + ), + ), + ), + Text( + '${durationMs}ms', + style: Theme.of( + context, + ).textTheme.bodySmall?.copyWith(color: Colors.grey), + ), + ], + ), + if (error != null) ...[ + const SizedBox(height: 8), + Text( + 'Error: $error', + style: Theme.of(context).textTheme.bodySmall?.copyWith( + color: Colors.red, + fontWeight: FontWeight.w500, + ), + ), + ], + if (details.isNotEmpty) ...[ + const SizedBox(height: 8), + Container( + width: double.infinity, + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.black.withValues(alpha: 0.8), + borderRadius: BorderRadius.circular(4), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: details + .map( + (detail) => Text( + detail, + style: const TextStyle( + fontFamily: 'monospace', + fontSize: 11, + color: Colors.white, + ), + ), + ) + .toList(), + ), + ), + ], + ], + ), + ); + }, + ); + } + + Future> _getTestInfoData(dynamic test) async { + try { + final name = await testInfoGetName(test: test); + final isPassed = await testInfoIsPassed(test: test); + final isFailed = await testInfoIsFailed(test: test); + final error = await testInfoGetError(test: test); + final details = await testInfoGetDetails(test: test); + final durationMs = await testInfoDurationMs(test: test); + + return { + 'name': name, + 'isPassed': isPassed, + 'isFailed': isFailed, + 'error': error, + 'details': details, + 'durationMs': durationMs.toInt(), + }; + } catch (e) { + return { + 'name': 'Unknown Test', + 'isPassed': false, + 'isFailed': true, + 'error': 'Failed to load test info: $e', + 'details': [], + 'durationMs': 0, + }; + } + } + + Widget _buildErrorResults(BuildContext context, Object error) { + return GlassyContainer( + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + children: [ + const Icon(Icons.error_outline, size: 48, color: Colors.red), + const SizedBox(height: 16), + Text( + 'Test Failed', + style: Theme.of(context).textTheme.headlineSmall?.copyWith( + color: Colors.red, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: 8), + Text( + error.toString(), + style: Theme.of(context).textTheme.bodyMedium, + textAlign: TextAlign.center, + ), + ], + ), + ), + ); + } +} diff --git a/lib/features/settings/widgets/setting_card_widget.dart b/lib/features/settings/widgets/setting_card_widget.dart index a21b2cc5..6c5a0310 100644 --- a/lib/features/settings/widgets/setting_card_widget.dart +++ b/lib/features/settings/widgets/setting_card_widget.dart @@ -4,10 +4,12 @@ import 'package:zoe/common/widgets/glassy_container_widget.dart'; class SettingCardWidget extends StatelessWidget { final String title; final List children; + final Color? titleColor; const SettingCardWidget({ super.key, required this.title, required this.children, + this.titleColor, }); @override @@ -22,6 +24,7 @@ class SettingCardWidget extends StatelessWidget { style: Theme.of(context).textTheme.titleSmall?.copyWith( fontWeight: FontWeight.w600, letterSpacing: 0.5, + color: titleColor, ), ), ), diff --git a/lib/features/users/providers/user_providers.dart b/lib/features/users/providers/user_providers.dart index 7298d4cf..93fa6a44 100644 --- a/lib/features/users/providers/user_providers.dart +++ b/lib/features/users/providers/user_providers.dart @@ -3,15 +3,15 @@ import 'package:zoe/features/users/models/user_model.dart'; import 'package:zoe/features/users/providers/user_notifiers.dart'; import 'package:zoe/core/preference_service/preferences_service.dart'; import 'package:zoe/features/sheet/providers/sheet_providers.dart'; +import 'package:zoe_native/providers.dart'; final isUserLoggedInProvider = FutureProvider((ref) async { - final userId = await PreferencesService().getLoginUserId(); - return userId != null && userId.isNotEmpty; + final userId = await ref.watch(userIdProvider.future); + return userId.isNotEmpty; }); final loggedInUserProvider = FutureProvider((ref) async { - final userId = await PreferencesService().getLoginUserId(); - return userId; + await ref.watch(userIdProvider.future); }); final userListProvider = StateNotifierProvider>( @@ -36,11 +36,8 @@ final getUserByIdProvider = Provider.family((ref, userId) { }); final currentUserProvider = FutureProvider((ref) async { - final userId = await PreferencesService().getLoginUserId(); - if (userId == null || userId.isEmpty) return null; - - final userList = ref.watch(userListProvider); - return userList.where((u) => u.id == userId).firstOrNull; + final userId = await ref.watch(userIdProvider.future); + return UserModel(id: userId, name: userId.substring(0, 8)); }); // Provider that returns user IDs from a list of UserModel objects @@ -53,15 +50,15 @@ final userIdsFromUserModelsProvider = final userDisplayNameProvider = Provider.family((ref, userId) { final currentUserId = ref.watch(loggedInUserProvider).valueOrNull ?? ''; final user = ref.watch(getUserByIdProvider(userId)); - + if (currentUserId == userId) { return 'You'; } - + if (user != null && user.name.isNotEmpty) { return user.name; } - + return userId; }); diff --git a/lib/main.dart b/lib/main.dart index c35d2373..6e420999 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -6,15 +6,18 @@ import 'package:zoe/core/preference_service/preferences_service.dart'; import 'package:zoe/features/settings/providers/local_provider.dart'; import 'package:zoe/features/settings/providers/theme_provider.dart'; import 'package:zoe/l10n/generated/l10n.dart'; +import 'package:zoe_native/zoe_native.dart'; import 'core/routing/app_router.dart'; -import 'core/rust/frb_generated.dart'; import 'core/theme/app_theme.dart'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); await RustLib.init(); + initStorage( + appleKeychainAppGroupName: 'global.acter.zoe', + ); // FIXME: needs to be changed to env vars from built await PreferencesService().init(); - + runApp(const ProviderScope(child: MyApp())); } diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt index b830104b..64827a20 100644 --- a/linux/CMakeLists.txt +++ b/linux/CMakeLists.txt @@ -44,6 +44,9 @@ function(APPLY_STANDARD_SETTINGS TARGET) target_compile_options(${TARGET} PRIVATE -Wall -Werror) target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") + # FIXME: workaround for flutter_secure_storage_linux deprecation issue + target_compile_options(${TARGET} PRIVATE -Wno-error=deprecated-declarations) # Allow deprecated warnings + target_compile_options(${TARGET} PRIVATE -Wno-error=deprecated-literal-operator) # Allow deprecated literal operator warnings endfunction() # Flutter library and tool build rules. diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index fc25ece4..c0322763 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -9,6 +9,7 @@ #include #include #include +#include #include void fl_register_plugins(FlPluginRegistry* registry) { @@ -21,6 +22,9 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); file_selector_plugin_register_with_registrar(file_selector_linux_registrar); + g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin"); + flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar); g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 6b6fb270..f5bdf5ca 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -6,11 +6,12 @@ list(APPEND FLUTTER_PLUGIN_LIST audioplayers_linux emoji_picker_flutter file_selector_linux + flutter_secure_storage_linux url_launcher_linux ) list(APPEND FLUTTER_FFI_PLUGIN_LIST - rust_lib_zoe + zoe_native ) set(PLUGIN_BUNDLED_LIBRARIES) diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index df7b7ae6..15c3f039 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -9,6 +9,7 @@ import audioplayers_darwin import emoji_picker_flutter import file_picker import file_selector_macos +import flutter_secure_storage_darwin import mobile_scanner import package_info_plus import path_provider_foundation @@ -23,6 +24,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { EmojiPickerFlutterPlugin.register(with: registry.registrar(forPlugin: "EmojiPickerFlutterPlugin")) FilePickerPlugin.register(with: registry.registrar(forPlugin: "FilePickerPlugin")) FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) + FlutterSecureStorageDarwinPlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStorageDarwinPlugin")) MobileScannerPlugin.register(with: registry.registrar(forPlugin: "MobileScannerPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) diff --git a/rust_builder/.gitignore b/packages/zoe_native/.gitignore similarity index 84% rename from rust_builder/.gitignore rename to packages/zoe_native/.gitignore index ac5aa989..06722378 100644 --- a/rust_builder/.gitignore +++ b/packages/zoe_native/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related @@ -15,6 +17,7 @@ migrate_working_dir/ *.ipr *.iws .idea/ +target/ # The .vscode folder contains launch configuration and tasks you configure in # VS Code which you may wish to be included in version control, so this line @@ -26,4 +29,7 @@ migrate_working_dir/ /pubspec.lock **/doc/api/ .dart_tool/ -build/ +.flutter-plugins-dependencies +/build/ +/coverage/ +cargokit_options.yaml \ No newline at end of file diff --git a/packages/zoe_native/.metadata b/packages/zoe_native/.metadata new file mode 100644 index 00000000..113a4194 --- /dev/null +++ b/packages/zoe_native/.metadata @@ -0,0 +1,42 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "05db9689081f091050f01aed79f04dce0c750154" + channel: "stable" + +project_type: plugin_ffi + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 05db9689081f091050f01aed79f04dce0c750154 + base_revision: 05db9689081f091050f01aed79f04dce0c750154 + - platform: android + create_revision: 05db9689081f091050f01aed79f04dce0c750154 + base_revision: 05db9689081f091050f01aed79f04dce0c750154 + - platform: ios + create_revision: 05db9689081f091050f01aed79f04dce0c750154 + base_revision: 05db9689081f091050f01aed79f04dce0c750154 + - platform: linux + create_revision: 05db9689081f091050f01aed79f04dce0c750154 + base_revision: 05db9689081f091050f01aed79f04dce0c750154 + - platform: macos + create_revision: 05db9689081f091050f01aed79f04dce0c750154 + base_revision: 05db9689081f091050f01aed79f04dce0c750154 + - platform: windows + create_revision: 05db9689081f091050f01aed79f04dce0c750154 + base_revision: 05db9689081f091050f01aed79f04dce0c750154 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/packages/zoe_native/CHANGELOG.md b/packages/zoe_native/CHANGELOG.md new file mode 100644 index 00000000..41cc7d81 --- /dev/null +++ b/packages/zoe_native/CHANGELOG.md @@ -0,0 +1,3 @@ +## 0.0.1 + +* TODO: Describe initial release. diff --git a/rust/Cargo.lock b/packages/zoe_native/Cargo.lock similarity index 83% rename from rust/Cargo.lock rename to packages/zoe_native/Cargo.lock index 174174ae..3af6142f 100644 --- a/rust/Cargo.lock +++ b/packages/zoe_native/Cargo.lock @@ -53,6 +53,18 @@ dependencies = [ "subtle", ] +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + [[package]] name = "aho-corasick" version = "1.1.3" @@ -94,12 +106,6 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_log-sys" version = "0.3.2" @@ -248,11 +254,23 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "async-broadcast" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" +dependencies = [ + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + [[package]] name = "async-compat" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bab94bde396a3f7b4962e396fdad640e241ed797d4d8d77fc8c237d14c58fc0" +checksum = "a1ba85bc55464dcbf728b56d97e119d673f4cf9062be330a9a26f3acf504a590" dependencies = [ "futures-core", "futures-io", @@ -261,6 +279,34 @@ dependencies = [ "tokio", ] +[[package]] +name = "async-once-cell" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288f83726785267c6f2ef073a3d83dc3f9b81464e9f99898240cced85fce35a" + +[[package]] +name = "async-stream" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "async-trait" version = "0.1.89" @@ -310,8 +356,8 @@ version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16e2cdb6d5ed835199484bb92bb8b3edd526effe995c61732580439c1a67e2e9" dependencies = [ - "base64 0.22.1", - "http 1.3.1", + "base64", + "http", "log", "url", ] @@ -379,12 +425,6 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "022dfe9eb35f19ebbcb51e0b40a5ab759f46ad60cadf7297e0bd085afb50e076" -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" @@ -441,15 +481,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.9.2" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" [[package]] name = "blake2" @@ -540,6 +574,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +[[package]] +name = "byteorder-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + [[package]] name = "bytes" version = "1.10.1" @@ -551,10 +591,11 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.33" +version = "1.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee0f8803222ba5a7e2777dd72ca451868909b1ac410621b676adf07280e9b5f" +checksum = "65193589c6404eb80b450d618eaf9a2cafaaafd57ecce47370519ef674a7bd44" dependencies = [ + "find-msvc-tools", "shlex", ] @@ -566,9 +607,9 @@ checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "cfg_aliases" @@ -602,17 +643,16 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.2.0", ] [[package]] @@ -628,9 +668,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.45" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" +checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" dependencies = [ "clap_builder", "clap_derive", @@ -638,9 +678,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.44" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" +checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" dependencies = [ "anstream", "anstyle", @@ -650,9 +690,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.45" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6" +checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" dependencies = [ "heck", "proc-macro2", @@ -672,14 +712,14 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" dependencies = [ - "thiserror 2.0.15", + "thiserror 2.0.16", ] [[package]] name = "color-backtrace" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2123a5984bd52ca861c66f66a9ab9883b27115c607f801f86c1bc2a84eb69f0f" +checksum = "e49b1973af2a47b5b44f7dd0a344598da95c872e1556b045607888784e973b91" dependencies = [ "backtrace", "btparse", @@ -702,6 +742,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "console_error_panic_hook" version = "0.1.7" @@ -760,6 +809,27 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "core-models" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94950e87ea550d6d68f1993f3e7bebc8cb7235157bff84337d46195c3aa0b3f0" +dependencies = [ + "hax-lib", + "pastey", + "rand 0.9.2", +] + +[[package]] +name = "core-models" +version = "0.0.3" +source = "git+https://github.com/cryspen/libcrux#4f028e00afff5fcb28310aef5b0c44d25f4f1ef8" +dependencies = [ + "hax-lib", + "pastey", + "rand 0.9.2", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -784,6 +854,15 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + [[package]] name = "critical-section" version = "1.2.0" @@ -942,6 +1021,7 @@ checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", "der_derive", + "flagset", "pem-rfc7468", "zeroize", ] @@ -973,9 +1053,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" dependencies = [ "powerfmt", ] @@ -1126,15 +1206,6 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - [[package]] name = "enum-as-inner" version = "0.6.1" @@ -1205,12 +1276,57 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.0", +] + +[[package]] +name = "event-listener" +version = "5.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener", + "pin-project-lite", +] + +[[package]] +name = "extend" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "311a6d2f1f9d60bff73d2c78a0af97ed27f79672f15c238192a5bbb64db56d00" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "eyeball" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93bd0ebf93d61d6332d3c09a96e97975968a44e19a64c947bde06e6baff383f" +dependencies = [ + "futures-core", + "readlock", + "readlock-tokio", + "tokio", + "tokio-util", ] [[package]] @@ -1219,16 +1335,22 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" +[[package]] +name = "fallible-streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" + [[package]] name = "fastbloom" -version = "0.9.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27cea6e7f512d43b098939ff4d5a5d6fe3db07971e1d05176fe26c642d33f5b8" +checksum = "18c1ddb9231d8554c2d6bdf4cfaabf0c59251658c68b6c95cd52dd0c513a912a" dependencies = [ "getrandom 0.3.3", + "libm", "rand 0.9.2", "siphasher", - "wide", ] [[package]] @@ -1243,6 +1365,18 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +[[package]] +name = "find-msvc-tools" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" + +[[package]] +name = "flagset" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe" + [[package]] name = "flutter_rust_bridge" version = "2.11.1" @@ -1297,26 +1431,11 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -1324,7 +1443,7 @@ dependencies = [ [[package]] name = "forward-compatible-enum" version = "0.1.0" -source = "git+https://github.com/acterglobal/zoe-relay.git?branch=main#0cc6ad49975104512f1c50fd489e2c9237ff54bc" +source = "git+https://github.com/acterglobal/zoe-relay.git?branch=main#cd0acf9ac4933e592c3edb11e9ccb80cbcae9c4d" dependencies = [ "postcard", "proc-macro2", @@ -1481,16 +1600,16 @@ dependencies = [ [[package]] name = "generator" -version = "0.8.5" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" +checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" dependencies = [ "cc", "cfg-if", "libc", "log", "rustversion", - "windows", + "windows 0.61.3", ] [[package]] @@ -1527,7 +1646,7 @@ dependencies = [ "js-sys", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasi 0.14.5+wasi-0.2.4", "wasm-bindgen", ] @@ -1565,25 +1684,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "h2" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "h2" version = "0.4.12" @@ -1595,7 +1695,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.3.1", + "http", "indexmap", "slab", "tokio", @@ -1617,6 +1717,9 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", +] [[package]] name = "hashbrown" @@ -1629,6 +1732,52 @@ dependencies = [ "foldhash", ] +[[package]] +name = "hashlink" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" +dependencies = [ + "hashbrown 0.14.5", +] + +[[package]] +name = "hax-lib" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bf40682e31dc3961209a4657f6fe7c412879b59f212bac3d14bd7ece5af76a3" +dependencies = [ + "hax-lib-macros", + "num-bigint", + "num-traits", +] + +[[package]] +name = "hax-lib-macros" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33a5a4ff169bcc4e9189f4bace3ed22d03fcd8e52eee90a00b7b1e2621cb490" +dependencies = [ + "hax-lib-macros-types", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "hax-lib-macros-types" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a39dc59c01c2eec9bce75698c4f9ca01d11759ace2a28e1691b66fb0008c6a21" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "serde_json", + "uuid", +] + [[package]] name = "heapless" version = "0.7.17" @@ -1685,7 +1834,7 @@ dependencies = [ "once_cell", "rand 0.9.2", "ring", - "thiserror 2.0.15", + "thiserror 2.0.16", "tinyvec", "tokio", "tracing", @@ -1708,11 +1857,20 @@ dependencies = [ "rand 0.9.2", "resolv-conf", "smallvec", - "thiserror 2.0.15", + "thiserror 2.0.16", "tokio", "tracing", ] +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + [[package]] name = "hmac" version = "0.12.1" @@ -1744,17 +1902,6 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f558a64ac9af88b5ba400d99b579451af0d39c6d360980045b91aac966d705e2" -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - [[package]] name = "http" version = "1.3.1" @@ -1766,17 +1913,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -1784,7 +1920,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.3.1", + "http", ] [[package]] @@ -1795,8 +1931,8 @@ checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", "futures-core", - "http 1.3.1", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", ] @@ -1814,50 +1950,28 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" [[package]] name = "hyper" -version = "0.14.32" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", "futures-core", - "futures-util", - "h2 0.3.27", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.5.10", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2 0.4.12", - "http 1.3.1", - "http-body 1.0.1", + "h2", + "http", + "http-body", "httparse", "httpdate", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -1869,8 +1983,8 @@ version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "http 1.3.1", - "hyper 1.6.0", + "http", + "hyper", "hyper-util", "rustls", "rustls-pki-types", @@ -1881,32 +1995,19 @@ dependencies = [ ] [[package]] -name = "hyper-tls" -version = "0.5.0" +name = "hyper-util" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ - "bytes", - "hyper 0.14.32", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "hyper-util" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" -dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-channel", "futures-core", "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "hyper 1.6.0", + "http", + "http-body", + "hyper", "ipnet", "libc", "percent-encoding", @@ -1919,9 +2020,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.63" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1929,7 +2030,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core", + "windows-core 0.62.0", ] [[package]] @@ -2029,9 +2130,9 @@ dependencies = [ [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -2058,9 +2159,9 @@ dependencies = [ "attohttpc", "bytes", "futures", - "http 1.3.1", + "http", "http-body-util", - "hyper 1.6.0", + "hyper", "hyper-util", "log", "rand 0.9.2", @@ -2069,11 +2170,23 @@ dependencies = [ "xmltree", ] +[[package]] +name = "image" +version = "0.25.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7" +dependencies = [ + "bytemuck", + "byteorder-lite", + "moxcms", + "num-traits", +] + [[package]] name = "indexmap" -version = "2.10.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" dependencies = [ "equivalent", "hashbrown 0.15.5", @@ -2111,11 +2224,11 @@ dependencies = [ [[package]] name = "io-uring" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ - "bitflags 2.9.2", + "bitflags", "cfg-if", "libc", ] @@ -2150,9 +2263,9 @@ dependencies = [ [[package]] name = "iroh" -version = "0.91.1" +version = "0.91.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6a98c47bb5f720edeb77be502a8acd238a3c0755f0b1ad865a716224d794a59" +checksum = "e52be9b8f33833ec080042f82035f87e90762c44be67b8c1aa0c593ff31a97d3" dependencies = [ "aead", "backon", @@ -2167,7 +2280,7 @@ dependencies = [ "futures-util", "getrandom 0.3.3", "hickory-resolver", - "http 1.3.1", + "http", "igd-next", "instant", "iroh-base", @@ -2186,7 +2299,7 @@ dependencies = [ "pkarr", "portmapper", "rand 0.8.5", - "reqwest 0.12.23", + "reqwest", "ring", "rustls", "rustls-pki-types", @@ -2211,9 +2324,9 @@ dependencies = [ [[package]] name = "iroh-base" -version = "0.91.1" +version = "0.91.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bde4e612191173e8ade55e3aa719044514edfff952292ffbf581be35cbb59c" +checksum = "42393ff3628e5c765acdceb7da693d5f7869ec4c92599a83fa62368b15b0034e" dependencies = [ "curve25519-dalek", "data-encoding", @@ -2321,7 +2434,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2 0.5.10", - "thiserror 2.0.15", + "thiserror 2.0.16", "tokio", "tracing", "web-time", @@ -2340,9 +2453,9 @@ dependencies = [ "rustc-hash", "rustls", "rustls-pki-types", - "rustls-platform-verifier", + "rustls-platform-verifier 0.5.3", "slab", - "thiserror 2.0.15", + "thiserror 2.0.16", "tinyvec", "tracing", "web-time", @@ -2364,9 +2477,9 @@ dependencies = [ [[package]] name = "iroh-relay" -version = "0.91.1" +version = "0.91.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f19e43de2cfc04748054e1cbf7854ae1e192ddc45a4adeae7be7076a8f1fd43" +checksum = "af1e4930e35b95957524aa08af0d27347156ff947f238f2b20d3e6da899fbdba" dependencies = [ "blake3", "bytes", @@ -2375,9 +2488,9 @@ dependencies = [ "derive_more 2.0.1", "getrandom 0.3.3", "hickory-resolver", - "http 1.3.1", + "http", "http-body-util", - "hyper 1.6.0", + "hyper", "hyper-util", "iroh-base", "iroh-metrics", @@ -2392,7 +2505,7 @@ dependencies = [ "pkarr", "postcard", "rand 0.8.5", - "reqwest 0.12.23", + "reqwest", "rustls", "rustls-pki-types", "rustls-webpki", @@ -2429,7 +2542,7 @@ dependencies = [ "rustls", "serde", "smallvec", - "thiserror 2.0.15", + "thiserror 2.0.16", "tokio", "tokio-util", "tracing", @@ -2452,7 +2565,7 @@ dependencies = [ "rustls", "serde", "smallvec", - "thiserror 2.0.15", + "thiserror 2.0.16", "tokio", "tokio-util", "tracing", @@ -2516,9 +2629,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" dependencies = [ "once_cell", "wasm-bindgen", @@ -2536,11 +2649,149 @@ version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +[[package]] +name = "libcrux-intrinsics" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d3b41dcbc21a5fb7efbbb5af7405b2e79c4bfe443924e90b13afc0080318d31" +dependencies = [ + "core-models 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "hax-lib", +] + +[[package]] +name = "libcrux-intrinsics" +version = "0.0.3" +source = "git+https://github.com/cryspen/libcrux#4f028e00afff5fcb28310aef5b0c44d25f4f1ef8" +dependencies = [ + "core-models 0.0.3 (git+https://github.com/cryspen/libcrux)", + "hax-lib", +] + +[[package]] +name = "libcrux-macros" +version = "0.0.3" +source = "git+https://github.com/cryspen/libcrux#4f028e00afff5fcb28310aef5b0c44d25f4f1ef8" +dependencies = [ + "quote", + "syn 2.0.106", +] + +[[package]] +name = "libcrux-ml-dsa" +version = "0.0.3" +source = "git+https://github.com/cryspen/libcrux#4f028e00afff5fcb28310aef5b0c44d25f4f1ef8" +dependencies = [ + "core-models 0.0.3 (git+https://github.com/cryspen/libcrux)", + "hax-lib", + "libcrux-intrinsics 0.0.3 (git+https://github.com/cryspen/libcrux)", + "libcrux-macros", + "libcrux-platform 0.0.2 (git+https://github.com/cryspen/libcrux)", + "libcrux-sha3 0.0.3 (git+https://github.com/cryspen/libcrux)", +] + +[[package]] +name = "libcrux-ml-kem" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d368d3e8d6a74e277178d54921eca112a1e6b7837d7d8bc555091acb5d817f5" +dependencies = [ + "hax-lib", + "libcrux-intrinsics 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libcrux-platform 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libcrux-secrets 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libcrux-sha3 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.9.2", +] + +[[package]] +name = "libcrux-platform" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db82d058aa76ea315a3b2092f69dfbd67ddb0e462038a206e1dcd73f058c0778" +dependencies = [ + "libc", +] + +[[package]] +name = "libcrux-platform" +version = "0.0.2" +source = "git+https://github.com/cryspen/libcrux#4f028e00afff5fcb28310aef5b0c44d25f4f1ef8" +dependencies = [ + "libc", +] + +[[package]] +name = "libcrux-secrets" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "332737e629fe6ba7547f5c0f90559eac865d5dbecf98138ffae8f16ab8cbe33f" +dependencies = [ + "hax-lib", +] + +[[package]] +name = "libcrux-secrets" +version = "0.0.3" +source = "git+https://github.com/cryspen/libcrux#4f028e00afff5fcb28310aef5b0c44d25f4f1ef8" +dependencies = [ + "hax-lib", +] + +[[package]] +name = "libcrux-sha3" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29d95de4257eafdfaf3bffecadb615219b0ca920c553722b3646d32dde76c797" +dependencies = [ + "hax-lib", + "libcrux-intrinsics 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libcrux-platform 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "libcrux-sha3" +version = "0.0.3" +source = "git+https://github.com/cryspen/libcrux#4f028e00afff5fcb28310aef5b0c44d25f4f1ef8" +dependencies = [ + "hax-lib", + "libcrux-intrinsics 0.0.3 (git+https://github.com/cryspen/libcrux)", + "libcrux-platform 0.0.2 (git+https://github.com/cryspen/libcrux)", + "libcrux-traits", +] + +[[package]] +name = "libcrux-traits" +version = "0.0.3" +source = "git+https://github.com/cryspen/libcrux#4f028e00afff5fcb28310aef5b0c44d25f4f1ef8" +dependencies = [ + "libcrux-secrets 0.0.3 (git+https://github.com/cryspen/libcrux)", + "rand 0.9.2", +] + +[[package]] +name = "libm" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" + +[[package]] +name = "libsqlite3-sys" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" +dependencies = [ + "cc", + "openssl-sys", + "pkg-config", + "vcpkg", +] + [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" @@ -2566,9 +2817,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "loom" @@ -2600,11 +2851,11 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -2629,12 +2880,6 @@ version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - [[package]] name = "minimal-lexical" version = "0.2.1" @@ -2680,6 +2925,16 @@ dependencies = [ "uuid", ] +[[package]] +name = "moxcms" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd32fa8935aeadb8a8a6b6b351e40225570a37c43de67690383d87ef170cd08" +dependencies = [ + "num-traits", + "pxfm", +] + [[package]] name = "n0-future" version = "0.1.3" @@ -2725,23 +2980,6 @@ dependencies = [ "snafu", ] -[[package]] -name = "native-tls" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework 2.11.1", - "security-framework-sys", - "tempfile", -] - [[package]] name = "nested_enum_utils" version = "0.2.2" @@ -2767,7 +3005,7 @@ dependencies = [ "netlink-packet-route 0.22.0", "netlink-sys", "once_cell", - "system-configuration 0.6.1", + "system-configuration", "windows-sys 0.59.0", ] @@ -2789,7 +3027,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0e7987b28514adf555dc1f9a5c30dfc3e50750bbaffb1aec41ca7b23dcd8e4" dependencies = [ "anyhow", - "bitflags 2.9.2", + "bitflags", "byteorder", "libc", "log", @@ -2804,7 +3042,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56d83370a96813d7c977f8b63054f1162df6e5784f1c598d689236564fb5a6f2" dependencies = [ "anyhow", - "bitflags 2.9.2", + "bitflags", "byteorder", "libc", "log", @@ -2835,7 +3073,7 @@ dependencies = [ "log", "netlink-packet-core", "netlink-sys", - "thiserror 2.0.15", + "thiserror 2.0.16", ] [[package]] @@ -2881,8 +3119,8 @@ dependencies = [ "tokio-util", "tracing", "web-sys", - "windows", - "windows-result", + "windows 0.61.3", + "windows-result 0.3.4", "wmi", ] @@ -2919,12 +3157,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" dependencies = [ - "overload", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -3034,37 +3271,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] -name = "openssl" -version = "0.10.73" +name = "openssl-probe" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" -dependencies = [ - "bitflags 2.9.2", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] -name = "openssl-macros" -version = "0.1.1" +name = "openssl-src" +version = "300.5.2+3.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +checksum = "d270b79e2926f5150189d475bc7e9d2c69f9c4697b185fa917d5a32b792d21b4" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "cc", ] -[[package]] -name = "openssl-probe" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" - [[package]] name = "openssl-sys" version = "0.9.109" @@ -3073,45 +3293,44 @@ checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" dependencies = [ "cc", "libc", + "openssl-src", "pkg-config", "vcpkg", ] [[package]] name = "opentelemetry" -version = "0.26.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "570074cc999d1a58184080966e5bd3bf3a9a4af650c3b05047c2621e7405cd17" +checksum = "aaf416e4cb72756655126f7dd7bb0af49c674f4c1b9903e80c009e0c37e552e6" dependencies = [ "futures-core", "futures-sink", "js-sys", - "once_cell", "pin-project-lite", - "thiserror 1.0.69", + "thiserror 2.0.16", + "tracing", ] [[package]] name = "opentelemetry-semantic-conventions" -version = "0.16.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cefe0543875379e47eb5f1e68ff83f45cc41366a92dfd0d073d513bf68e9a05" +checksum = "83d059a296a47436748557a353c5e6c5705b9470ef6c95cfc52c21a8814ddac2" [[package]] name = "opentelemetry_sdk" -version = "0.26.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c627d9f4c9cdc1f21a29ee4bfbd6028fcb8bcf2a857b43f3abdf72c9c862f3" +checksum = "11f644aa9e5e31d11896e024305d7e3c98a88884d9f8919dbf37a9991bc47a4b" dependencies = [ - "async-trait", "futures-channel", "futures-executor", "futures-util", - "once_cell", "opentelemetry", "percent-encoding", - "rand 0.8.5", - "thiserror 1.0.69", + "rand 0.9.2", + "thiserror 2.0.16", ] [[package]] @@ -3125,12 +3344,6 @@ dependencies = [ "log", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "parking" version = "2.2.1" @@ -3177,6 +3390,12 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pastey" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec" + [[package]] name = "path-clean" version = "0.1.0" @@ -3189,7 +3408,7 @@ version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" dependencies = [ - "base64 0.22.1", + "base64", "serde", ] @@ -3204,26 +3423,26 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" +checksum = "21e0a3a33733faeaf8651dfee72dd0f388f0c8e5ad496a3478fa5a922f49cfa8" dependencies = [ "memchr", - "thiserror 2.0.15", + "thiserror 2.0.16", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" +checksum = "bc58706f770acb1dbd0973e6530a3cff4746fb721207feb3a8a6064cd0b6c663" dependencies = [ "pest", "pest_generator", @@ -3231,9 +3450,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" +checksum = "6d4f36811dfe07f7b8573462465d5cb8965fffc2e71ae377a33aecf14c2c9a2f" dependencies = [ "pest", "pest_meta", @@ -3244,9 +3463,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" +checksum = "42919b05089acbd0a5dcd5405fb304d17d1053847b81163d09c4ad18ce8e8420" dependencies = [ "pest", "sha2", @@ -3313,12 +3532,12 @@ dependencies = [ "log", "lru", "ntimestamp", - "reqwest 0.12.23", + "reqwest", "self_cell", "serde", "sha1_smol", "simple-dns", - "thiserror 2.0.15", + "thiserror 2.0.16", "tokio", "tracing", "url", @@ -3418,7 +3637,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62f1975debe62a70557e42b9ff9466e4890cf9d3d156d296408a711f1c5f642b" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "derive_more 2.0.1", "futures-lite", @@ -3480,9 +3699,9 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -3571,6 +3790,28 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "proc-macro-hack" version = "0.5.20+deprecated" @@ -3586,11 +3827,29 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "pxfm" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55f4fedc84ed39cb7a489322318976425e42a147e2be79d8f878e2884f94e84" +dependencies = [ + "num-traits", +] + +[[package]] +name = "qrcode" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d68782463e408eb1e668cf6152704bd856c78c5b6417adaee3203d8f4c1fc9ec" +dependencies = [ + "image", +] + [[package]] name = "quinn" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", "cfg_aliases", @@ -3599,8 +3858,8 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", - "socket2 0.5.10", - "thiserror 2.0.15", + "socket2 0.6.0", + "thiserror 2.0.16", "tokio", "tracing", "web-time", @@ -3608,9 +3867,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.12" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", "fastbloom", @@ -3621,9 +3880,9 @@ dependencies = [ "rustc-hash", "rustls", "rustls-pki-types", - "rustls-platform-verifier", + "rustls-platform-verifier 0.6.1", "slab", - "thiserror 2.0.15", + "thiserror 2.0.16", "tinyvec", "tracing", "web-time", @@ -3631,16 +3890,16 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.5.10", + "socket2 0.6.0", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3765,6 +4024,21 @@ dependencies = [ "yasna", ] +[[package]] +name = "readlock" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "188bbae3aa4739bd264e9204da5919b2c91dd87dcce5049cf04bdf6aa17c5012" + +[[package]] +name = "readlock-tokio" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29b1800712c0d75de4b0bda5483d46eaf8df757b81df5ca2bde53d5ac2e2c5b2" +dependencies = [ + "tokio", +] + [[package]] name = "redb" version = "2.4.0" @@ -3780,7 +4054,7 @@ version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.2", + "bitflags", ] [[package]] @@ -3804,106 +4078,95 @@ dependencies = [ ] [[package]] -name = "reflink-copy" -version = "0.1.26" +name = "refinery" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c81d000a2c524133cc00d2f92f019d399e57906c3b7119271a2495354fe895" +checksum = "7ba5d693abf62492c37268512ff35b77655d2e957ca53dab85bf993fe9172d15" dependencies = [ + "refinery-core", + "refinery-macros", +] + +[[package]] +name = "refinery-core" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a83581f18c1a4c3a6ebd7a174bdc665f17f618d79f7edccb6a0ac67e660b319" +dependencies = [ + "async-trait", "cfg-if", - "libc", - "rustix", - "windows", + "log", + "regex", + "rusqlite", + "serde", + "siphasher", + "thiserror 1.0.69", + "time", + "toml", + "url", + "walkdir", ] [[package]] -name = "regex" -version = "1.11.1" +name = "refinery-macros" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "72c225407d8e52ef8cf094393781ecda9a99d6544ec28d90a6915751de259264" dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "heck", + "proc-macro2", + "quote", + "refinery-core", + "regex", + "syn 2.0.106", ] [[package]] -name = "regex-automata" -version = "0.1.10" +name = "reflink-copy" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +checksum = "23bbed272e39c47a095a5242218a67412a220006842558b03fe2935e8f3d7b92" dependencies = [ - "regex-syntax 0.6.29", + "cfg-if", + "libc", + "rustix", + "windows 0.62.0", ] [[package]] -name = "regex-automata" -version = "0.4.9" +name = "regex" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-automata", + "regex-syntax", ] [[package]] -name = "regex-lite" -version = "0.1.6" +name = "regex-automata" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] [[package]] -name = "regex-syntax" -version = "0.6.29" +name = "regex-lite" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +checksum = "943f41321c63ef1c92fd763bfe054d2668f7f225a5c29f0105903dc2fc04ba30" [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" - -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.27", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration 0.5.1", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "reqwest" @@ -3911,14 +4174,14 @@ version = "0.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-core", "futures-util", - "http 1.3.1", - "http-body 1.0.1", + "http", + "http-body", "http-body-util", - "hyper 1.6.0", + "hyper", "hyper-rustls", "hyper-util", "js-sys", @@ -3931,7 +4194,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", "tokio-rustls", "tokio-util", @@ -3948,9 +4211,9 @@ dependencies = [ [[package]] name = "resolv-conf" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" +checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799" [[package]] name = "ring" @@ -3967,11 +4230,17 @@ dependencies = [ ] [[package]] -name = "rust_lib_zoe" -version = "0.1.0" +name = "rusqlite" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e" dependencies = [ - "flutter_rust_bridge", - "zoe-client", + "bitflags", + "fallible-iterator", + "fallible-streaming-iterator", + "hashlink", + "libsqlite3-sys", + "smallvec", ] [[package]] @@ -4006,15 +4275,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.8" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.9.2", + "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -4041,16 +4310,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.3.0", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", + "security-framework", ] [[package]] @@ -4078,12 +4338,33 @@ dependencies = [ "rustls-native-certs", "rustls-platform-verifier-android", "rustls-webpki", - "security-framework 3.3.0", + "security-framework", "security-framework-sys", "webpki-root-certs 0.26.11", "windows-sys 0.59.0", ] +[[package]] +name = "rustls-platform-verifier" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be59af91596cac372a6942530653ad0c3a246cdd491aaa9dcaee47f88d67d5a0" +dependencies = [ + "core-foundation 0.10.1", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-root-certs 1.0.2", + "windows-sys 0.59.0", +] + [[package]] name = "rustls-platform-verifier-android" version = "0.1.1" @@ -4092,9 +4373,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.103.4" +version = "0.103.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" +checksum = "b5a37813727b78798e53c2bec3f5e8fe12a6d6f8389bf9ca7802add4c9905ad8" dependencies = [ "ring", "rustls-pki-types", @@ -4113,15 +4394,6 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" -[[package]] -name = "safe_arch" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" -dependencies = [ - "bytemuck", -] - [[package]] name = "salsa20" version = "0.10.2" @@ -4142,11 +4414,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] [[package]] @@ -4157,30 +4429,17 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "security-framework" -version = "2.11.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.9.2", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "security-framework" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" +checksum = "60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640" dependencies = [ - "bitflags 2.9.2", + "bitflags", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -4189,9 +4448,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -4205,9 +4464,13 @@ checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749" [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +dependencies = [ + "serde", + "serde_core", +] [[package]] name = "send_wrapper" @@ -4217,27 +4480,38 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.223" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "a505d71960adde88e293da5cb5eda57093379f64e61cf77bf0e6a63af07a7bac" dependencies = [ + "serde_core", "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.17" +version = "0.11.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" +checksum = "fe07b5d88710e3b807c16a06ccbc9dfecd5fff6a4d2745c59e3e26774f10de6a" dependencies = [ "serde", + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.223" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20f57cbd357666aa7b3ac84a90b4ea328f1d4ddb6772b430caa5d9e1309bb9e9" +dependencies = [ + "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.223" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "3d428d07faf17e306e699ec1e91996e5a165ba5d6bce5b5155173e91a8a01a56" dependencies = [ "proc-macro2", "quote", @@ -4246,14 +4520,24 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.142" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", ] [[package]] @@ -4351,7 +4635,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dee851d0e5e7af3721faea1843e8015e820a234f81fda3dea9247e15bac9a86a" dependencies = [ - "bitflags 2.9.2", + "bitflags", ] [[package]] @@ -4377,9 +4661,9 @@ dependencies = [ [[package]] name = "snafu" -version = "0.8.6" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320b01e011bf8d5d7a4a4a4be966d9160968935849c83b918827f6a435e7f627" +checksum = "6e84b3f4eacbf3a1ce05eac6763b4d629d60cbc94d632e4092c54ade71f1e1a2" dependencies = [ "backtrace", "snafu-derive", @@ -4387,9 +4671,9 @@ dependencies = [ [[package]] name = "snafu-derive" -version = "0.8.6" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1961e2ef424c1424204d3a5d6975f934f56b6d50ff5732382d84ebf460e147f7" +checksum = "c1c97747dbf44bb1ca44a561ece23508e99cb592e862f22222dcf42f51d1e451" dependencies = [ "heck", "proc-macro2", @@ -4487,7 +4771,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb921f10397d5669e1af6455e9e2d367bf1f9cebcd6b1dd1dc50e19f6a9ac2ac" dependencies = [ - "base64 0.22.1", + "base64", "bounded-integer", "byteorder", "crc", @@ -4560,12 +4844,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - [[package]] name = "sync_wrapper" version = "1.0.2" @@ -4586,36 +4864,15 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.9.4", - "system-configuration-sys 0.5.0", -] - [[package]] name = "system-configuration" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.2", + "bitflags", "core-foundation 0.9.4", - "system-configuration-sys 0.6.0", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", + "system-configuration-sys", ] [[package]] @@ -4636,9 +4893,9 @@ checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" [[package]] name = "tarpc" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6d259ae043d6480431fdef275cde94455179c9ab7dca1cf01a965902b5262dc" +checksum = "e5cb86a4b5b941909e9896289c01b46ff0bec756b01f366b0d5490a5e8ed7871" dependencies = [ "anyhow", "fnv", @@ -4651,7 +4908,7 @@ dependencies = [ "serde", "static_assertions", "tarpc-plugins", - "thiserror 2.0.15", + "thiserror 2.0.16", "tokio", "tokio-serde", "tokio-util", @@ -4672,15 +4929,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.20.0" +version = "3.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] [[package]] @@ -4703,11 +4960,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.15" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d76d3f064b981389ecb4b6b7f45a0bf9fdac1d5b9204c7bd6714fecc302850" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ - "thiserror-impl 2.0.15", + "thiserror-impl 2.0.16", ] [[package]] @@ -4723,9 +4980,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.15" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d29feb33e986b6ea906bd9c3559a856983f92371b3eaa5e83782a351623de0" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", @@ -4752,12 +5009,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" dependencies = [ "deranged", - "itoa", "js-sys", "num-conv", "powerfmt", @@ -4768,15 +5024,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -4794,9 +5050,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -4807,6 +5063,27 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +[[package]] +name = "tls_codec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de2e01245e2bb89d6f05801c564fa27624dbd7b1846859876c7dad82e90bf6b" +dependencies = [ + "tls_codec_derive", + "zeroize", +] + +[[package]] +name = "tls_codec_derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "tokio" version = "1.47.1" @@ -4838,16 +5115,6 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.2" @@ -4905,16 +5172,16 @@ dependencies = [ [[package]] name = "tokio-websockets" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f29ba084eb43becc9864ba514b4a64f5f65b82f9a6ffbafa5436c1c80605f03" +checksum = "5190767f03b86528ab9f4f6a9158072a6d0ef240d9a9591772eb411f315920f4" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-core", "futures-sink", "getrandom 0.3.3", - "http 1.3.1", + "http", "httparse", "rand 0.9.2", "ring", @@ -4925,11 +5192,26 @@ dependencies = [ "tokio-util", ] +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + [[package]] name = "toml_datetime" version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] [[package]] name = "toml_edit" @@ -4938,10 +5220,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap", + "serde", + "serde_spanned", "toml_datetime", + "toml_write", "winnow", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "tower" version = "0.5.2" @@ -4951,7 +5242,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", "tower-layer", "tower-service", @@ -4963,11 +5254,11 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "bitflags 2.9.2", + "bitflags", "bytes", "futures-util", - "http 1.3.1", - "http-body 1.0.1", + "http", + "http-body", "iri-string", "pin-project-lite", "tower", @@ -5043,9 +5334,9 @@ dependencies = [ [[package]] name = "tracing-opentelemetry" -version = "0.27.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc58af5d3f6c5811462cabb3289aec0093f7338e367e5a33d28c0433b3c7360b" +checksum = "ddcf5959f39507d0d04d6413119c04f33b623f4f951ebcbdddddfad2d0623a9c" dependencies = [ "js-sys", "once_cell", @@ -5059,14 +5350,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "sharded-slab", "smallvec", "thread_local", @@ -5104,9 +5395,9 @@ checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" [[package]] name = "unicode-normalization" @@ -5141,9 +5432,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -5165,9 +5456,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ "getrandom 0.3.3", "js-sys", @@ -5219,30 +5510,40 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.5+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4494f6290a82f5fe584817a676a34b9d6763e8d9d18204009fb31dceca98fd4" +dependencies = [ + "wasip2", +] + +[[package]] +name = "wasip2" +version = "1.0.0+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "03fa2761397e5bd52002cd7e73110c71af2109aca4e521a9f40473fe685b0a24" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" dependencies = [ "bumpalo", "log", @@ -5254,9 +5555,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" dependencies = [ "cfg-if", "js-sys", @@ -5267,9 +5568,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5277,9 +5578,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" dependencies = [ "proc-macro2", "quote", @@ -5290,9 +5591,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" dependencies = [ "unicode-ident", ] @@ -5312,9 +5613,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" dependencies = [ "js-sys", "wasm-bindgen", @@ -5366,16 +5667,6 @@ dependencies = [ "rustls-pki-types", ] -[[package]] -name = "wide" -version = "0.7.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" -dependencies = [ - "bytemuck", - "safe_arch", -] - [[package]] name = "widestring" version = "1.2.0" @@ -5400,11 +5691,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] [[package]] @@ -5419,11 +5710,24 @@ version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ - "windows-collections", - "windows-core", - "windows-future", - "windows-link", - "windows-numerics", + "windows-collections 0.2.0", + "windows-core 0.61.2", + "windows-future 0.2.1", + "windows-link 0.1.3", + "windows-numerics 0.2.0", +] + +[[package]] +name = "windows" +version = "0.62.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9579d0e6970fd5250aa29aba5994052385ff55cf7b28a059e484bb79ea842e42" +dependencies = [ + "windows-collections 0.3.0", + "windows-core 0.62.0", + "windows-future 0.3.0", + "windows-link 0.2.0", + "windows-numerics 0.3.0", ] [[package]] @@ -5432,7 +5736,16 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" dependencies = [ - "windows-core", + "windows-core 0.61.2", +] + +[[package]] +name = "windows-collections" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a90dd7a7b86859ec4cdf864658b311545ef19dbcf17a672b52ab7cefe80c336f" +dependencies = [ + "windows-core 0.62.0", ] [[package]] @@ -5443,9 +5756,22 @@ checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", - "windows-link", - "windows-result", - "windows-strings", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57fe7168f7de578d2d8a05b07fd61870d2e73b4020e9f49aa00da8471723497c" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.0", + "windows-result 0.4.0", + "windows-strings 0.5.0", ] [[package]] @@ -5454,9 +5780,20 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ - "windows-core", - "windows-link", - "windows-threading", + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading 0.1.0", +] + +[[package]] +name = "windows-future" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2194dee901458cb79e1148a4e9aac2b164cc95fa431891e7b296ff0b2f1d8a6" +dependencies = [ + "windows-core 0.62.0", + "windows-link 0.2.0", + "windows-threading 0.2.0", ] [[package]] @@ -5487,14 +5824,30 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +[[package]] +name = "windows-link" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" + [[package]] name = "windows-numerics" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ - "windows-core", - "windows-link", + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-numerics" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ce3498fe0aba81e62e477408383196b4b0363db5e0c27646f932676283b43d8" +dependencies = [ + "windows-core 0.62.0", + "windows-link 0.2.0", ] [[package]] @@ -5503,7 +5856,16 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7084dcc306f89883455a206237404d3eaf961e5bd7e0f312f7c91f57eb44167f" +dependencies = [ + "windows-link 0.2.0", ] [[package]] @@ -5512,7 +5874,16 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7218c655a553b0bed4426cf54b20d7ba363ef543b52d515b3e48d7fd55318dda" +dependencies = [ + "windows-link 0.2.0", ] [[package]] @@ -5560,6 +5931,15 @@ dependencies = [ "windows-targets 0.53.3", ] +[[package]] +name = "windows-sys" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +dependencies = [ + "windows-link 0.2.0", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -5612,7 +5992,7 @@ version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -5629,7 +6009,16 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" dependencies = [ - "windows-link", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-threading" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab47f085ad6932defa48855254c758cdd0e2f2d48e62a34118a268d8f345e118" +dependencies = [ + "windows-link 0.2.0", ] [[package]] @@ -5814,9 +6203,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -5832,13 +6221,10 @@ dependencies = [ ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.2", -] +checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" [[package]] name = "wmi" @@ -5850,9 +6236,9 @@ dependencies = [ "futures", "log", "serde", - "thiserror 2.0.15", - "windows", - "windows-core", + "thiserror 2.0.16", + "windows 0.61.3", + "windows-core 0.61.2", ] [[package]] @@ -5874,7 +6260,7 @@ dependencies = [ "pharos", "rustc_version", "send_wrapper", - "thiserror 2.0.15", + "thiserror 2.0.16", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -5892,6 +6278,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "x509-cert" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94" +dependencies = [ + "const-oid", + "der", + "spki", + "tls_codec", +] + [[package]] name = "x509-parser" version = "0.16.0" @@ -5965,18 +6363,18 @@ checksum = "2164e798d9e3d84ee2c91139ace54638059a3b23e361f5c11781c2c6459bde0f" [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", @@ -6060,14 +6458,17 @@ dependencies = [ [[package]] name = "zoe-app-primitives" version = "0.1.0" -source = "git+https://github.com/acterglobal/zoe-relay.git?branch=main#0cc6ad49975104512f1c50fd489e2c9237ff54bc" +source = "git+https://github.com/acterglobal/zoe-relay.git?branch=main#cd0acf9ac4933e592c3edb11e9ccb80cbcae9c4d" dependencies = [ "blake3", - "ed25519-dalek", + "flutter_rust_bridge", "forward-compatible-enum", + "libcrux-ml-dsa", "postcard", + "qrcode", "serde", - "thiserror 2.0.15", + "thiserror 2.0.16", + "tokio", "zoe-encrypted-storage", "zoe-wire-protocol", ] @@ -6075,21 +6476,21 @@ dependencies = [ [[package]] name = "zoe-blob-store" version = "0.1.0" -source = "git+https://github.com/acterglobal/zoe-relay.git?branch=main#0cc6ad49975104512f1c50fd489e2c9237ff54bc" +source = "git+https://github.com/acterglobal/zoe-relay.git?branch=main#cd0acf9ac4933e592c3edb11e9ccb80cbcae9c4d" dependencies = [ "anyhow", "chrono", "clap", "futures", + "hex", "iroh-blobs", "irpc 0.5.0", "path-clean", - "reqwest 0.11.27", "serde", "serde_json", "tarpc", "tempfile", - "thiserror 2.0.15", + "thiserror 2.0.16", "tokio", "tracing", "tracing-subscriber", @@ -6099,76 +6500,160 @@ dependencies = [ [[package]] name = "zoe-client" version = "0.1.0" -source = "git+https://github.com/acterglobal/zoe-relay.git?branch=main#0cc6ad49975104512f1c50fd489e2c9237ff54bc" +source = "git+https://github.com/acterglobal/zoe-relay.git?branch=main#cd0acf9ac4933e592c3edb11e9ccb80cbcae9c4d" dependencies = [ "anyhow", + "async-broadcast", + "async-once-cell", + "async-stream", "async-trait", "blake3", "chacha20poly1305", + "crc32fast", "ed25519-dalek", + "extend", + "eyeball", "flutter_rust_bridge", "futures", "hex", + "libcrux-ml-dsa", "postcard", "quinn", "rand 0.8.5", "rustls", "serde", + "signature", "tarpc", - "thiserror 2.0.15", + "tempfile", + "thiserror 2.0.16", "tokio", + "tokio-stream", "tokio-util", "tracing", + "tracing-subscriber", "uuid", "zoe-app-primitives", "zoe-blob-store", + "zoe-client-storage", "zoe-encrypted-storage", + "zoe-state-machine", + "zoe-wire-protocol", +] + +[[package]] +name = "zoe-client-storage" +version = "0.1.0" +source = "git+https://github.com/acterglobal/zoe-relay.git?branch=main#cd0acf9ac4933e592c3edb11e9ccb80cbcae9c4d" +dependencies = [ + "anyhow", + "async-trait", + "futures", + "hex", + "libcrux-ml-dsa", + "postcard", + "refinery", + "rusqlite", + "serde", + "thiserror 2.0.16", + "tokio", + "tracing", "zoe-wire-protocol", ] [[package]] name = "zoe-encrypted-storage" version = "0.1.0" -source = "git+https://github.com/acterglobal/zoe-relay.git?branch=main#0cc6ad49975104512f1c50fd489e2c9237ff54bc" +source = "git+https://github.com/acterglobal/zoe-relay.git?branch=main#cd0acf9ac4933e592c3edb11e9ccb80cbcae9c4d" dependencies = [ "aead", "aes-gcm", "blake3", "brotli", "serde", - "thiserror 2.0.15", + "thiserror 2.0.16", +] + +[[package]] +name = "zoe-state-machine" +version = "0.1.0" +source = "git+https://github.com/acterglobal/zoe-relay.git?branch=main#cd0acf9ac4933e592c3edb11e9ccb80cbcae9c4d" +dependencies = [ + "blake3", + "ed25519-dalek", + "libcrux-ml-dsa", + "postcard", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "thiserror 1.0.69", + "tokio", + "tracing", + "zoe-app-primitives", + "zoe-wire-protocol", ] [[package]] name = "zoe-wire-protocol" version = "0.1.0" -source = "git+https://github.com/acterglobal/zoe-relay.git?branch=main#0cc6ad49975104512f1c50fd489e2c9237ff54bc" +source = "git+https://github.com/acterglobal/zoe-relay.git?branch=main#cd0acf9ac4933e592c3edb11e9ccb80cbcae9c4d" dependencies = [ "anyhow", "argon2", "async-trait", - "base64 0.21.7", + "base64", "bip39", "blake3", "chacha20poly1305", + "const-oid", "curve25519-dalek", + "der", "ed25519-dalek", + "flutter_rust_bridge", + "forward-compatible-enum", "heapless", "hex", + "hkdf", + "libcrux-ml-dsa", + "libcrux-ml-kem", + "pem", "postcard", "quinn", "rand 0.8.5", + "rand_chacha 0.3.1", "rcgen 0.12.1", + "rusqlite", "rustls", + "rustls-pki-types", + "rustls-webpki", + "semver", "serde", + "serde_bytes", + "sha2", + "signature", "socket2 0.5.10", "tarpc", - "thiserror 2.0.15", + "thiserror 2.0.16", "tokio", "tokio-util", "tracing", "uuid", "x25519-dalek", + "x509-cert", "x509-parser", "zeroize", ] + +[[package]] +name = "zoe_native" +version = "0.1.0" +dependencies = [ + "async-trait", + "chrono", + "extend", + "flutter_rust_bridge", + "futures", + "tokio", + "zoe-app-primitives", + "zoe-client", + "zoe-wire-protocol", +] diff --git a/packages/zoe_native/Cargo.toml b/packages/zoe_native/Cargo.toml new file mode 100644 index 00000000..4d8c789a --- /dev/null +++ b/packages/zoe_native/Cargo.toml @@ -0,0 +1,24 @@ +[workspace] +resolver = "2" +members = ["rust"] + + +[workspace.dependencies] +flutter_rust_bridge = "=2.11.1" + +[workspace.dependencies.zoe-client] +# path = "../../../zoe-relay/crates/client" +git = "https://github.com/acterglobal/zoe-relay.git" +branch = "main" +features = ["frb-api"] + +[workspace.dependencies.zoe-wire-protocol] +# path = "../../../zoe-relay/crates/wire-protocol" +git = "https://github.com/acterglobal/zoe-relay.git" +branch = "main" + +[workspace.dependencies.zoe-app-primitives] +# path = "../../../zoe-relay/crates/app-primitives" +git = "https://github.com/acterglobal/zoe-relay.git" +branch = "main" +features = ["frb-api"] \ No newline at end of file diff --git a/packages/zoe_native/LICENSE b/packages/zoe_native/LICENSE new file mode 100644 index 00000000..ba75c69f --- /dev/null +++ b/packages/zoe_native/LICENSE @@ -0,0 +1 @@ +TODO: Add your license here. diff --git a/packages/zoe_native/README.md b/packages/zoe_native/README.md new file mode 100644 index 00000000..6af1c979 --- /dev/null +++ b/packages/zoe_native/README.md @@ -0,0 +1,119 @@ +# zoe_native + +A Flutter plugin built with flutter_rust_bridge that provides native Rust functionality for the Zoe application. + +## Overview + +This project uses [flutter_rust_bridge](https://cjycode.com/flutter_rust_bridge/) to seamlessly integrate Rust code with Flutter, providing high-performance native functionality while maintaining type safety and ease of use. + +## Project Structure + +* `rust/`: Contains the Rust source code + * `rust/src/api/`: API definitions exposed to Flutter + * `rust/src/lib.rs`: Main Rust library entry point + * `rust/Cargo.toml`: Rust lib dependencies and configuration +* `lib/`: Contains the Dart code that interfaces with the Rust code + * `lib/src/rust/`: Auto-generated Dart bindings (do not edit manually) + * `lib/providers.dart` / `lib/src/providers`: the dart riverpod providers for the API +* `flutter_rust_bridge.yaml`: Configuration for code generation +* `Cargo.toml`: Rust workspace dependencies and configuration +* Platform folders (`android/`, `ios/`, `linux/`, `macos/`, `windows/`): Platform-specific build configurations + +## Dependencies + +This plugin integrates with: +- `zoe-client`: Client library from the zoe-relay project +- `zoe-wire-protocol`: Wire protocol definitions from the zoe-relay project + +## Development Workflow + +### Updating Rust Dependencies + +tl;dr command: +``` +cargo update && flutter_rust_bridge_codegen generate && cargo test && flutter test +``` + +To update Rust dependencies, run: + +```bash +cargo update +``` + +### Generating Bindings + +After making changes to the Rust API, regenerate the Flutter bindings: + +```bash +flutter_rust_bridge_codegen generate +``` + +### Building the Plugin + +The plugin uses FFI and will automatically build the native code when you build your Flutter app. The `pubspec.yaml` is configured with: + +```yaml +plugin: + platforms: + android: + ffiPlugin: true + ios: + ffiPlugin: true + linux: + ffiPlugin: true + macos: + ffiPlugin: true + windows: + ffiPlugin: true +``` + +### Development Tips + +1. **Making API Changes**: + - Modify Rust code in `rust/src/api/` + - Run `flutter_rust_bridge_codegen generate` to update Dart bindings + - The generated code will be in `lib/src/rust/` + +2. **Testing Changes**: + - Use `cargo test` in the `rust/` directory for Rust unit tests + - Use `flutter test` for Dart/Flutter tests + +3. **Debugging**: + - Rust panics will be caught and converted to Dart exceptions + - Use standard Rust debugging tools for the native code + - Use Flutter debugging tools for the Dart side + +## Using local config + +By default the plugin uses prebuilt binaries from github, to make it built locally you can either run it with `CARGOKIT_DISABLE_PRECOMPILED_BINARIES=1 flutter [...]` + +or you create a `cargokit_options.yaml` in the main package folder `packges/zoe_native` overriding the configuration as follows: + +```yaml +# Enables verbose logging of Cargokit during build +verbose_logging: true + +# Opts out of using precompiled binaries. If crate has configured +# and deployed precompiled binaries, these will be by default used whenever Rustup +# is not installed. With `use_precompiled_binaries` set to false, the build will +# instead be aborted prompting user to install Rustup. +use_precompiled_binaries: false +``` + +For more details [consult the cargokit documentation](https://github.com/irondash/cargokit/blob/main/docs/architecture.md#configuring-cargokit). + +## Platform Support + +This plugin supports all major platforms: +- Android (via NDK) +- iOS (via Xcode/CocoaPods) +- Linux (via CMake) +- macOS (via Xcode/CocoaPods) +- Windows (via CMake) + +## More Information + +For more details about flutter_rust_bridge, visit: +- [Official Documentation](https://cjycode.com/flutter_rust_bridge/) +- [GitHub Repository](https://github.com/fzyzcjy/flutter_rust_bridge) + diff --git a/packages/zoe_native/analysis_options.yaml b/packages/zoe_native/analysis_options.yaml new file mode 100644 index 00000000..a5744c1c --- /dev/null +++ b/packages/zoe_native/analysis_options.yaml @@ -0,0 +1,4 @@ +include: package:flutter_lints/flutter.yaml + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/rust_builder/android/.gitignore b/packages/zoe_native/android/.gitignore similarity index 100% rename from rust_builder/android/.gitignore rename to packages/zoe_native/android/.gitignore diff --git a/rust_builder/android/build.gradle b/packages/zoe_native/android/build.gradle similarity index 88% rename from rust_builder/android/build.gradle rename to packages/zoe_native/android/build.gradle index b4ff071a..b6eb4f4c 100644 --- a/rust_builder/android/build.gradle +++ b/packages/zoe_native/android/build.gradle @@ -1,6 +1,6 @@ // The Android Gradle Plugin builds the native code with the Android NDK. -group 'com.flutter_rust_bridge.rust_lib_zoe' +group 'com.flutter_rust_bridge.zoe_native' version '1.0' buildscript { @@ -26,7 +26,7 @@ apply plugin: 'com.android.library' android { if (project.android.hasProperty("namespace")) { - namespace 'com.flutter_rust_bridge.rust_lib_zoe' + namespace 'com.flutter_rust_bridge.zoe_native' } // Bumping the plugin compileSdkVersion requires all clients of this plugin @@ -51,6 +51,6 @@ android { apply from: "../cargokit/gradle/plugin.gradle" cargokit { - manifestDir = "../../rust" - libname = "rust_lib_zoe" + manifestDir = "../rust" + libname = "zoe_native" } diff --git a/packages/zoe_native/android/settings.gradle b/packages/zoe_native/android/settings.gradle new file mode 100644 index 00000000..f143999b --- /dev/null +++ b/packages/zoe_native/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'zoe_native' diff --git a/rust_builder/android/src/main/AndroidManifest.xml b/packages/zoe_native/android/src/main/AndroidManifest.xml similarity index 60% rename from rust_builder/android/src/main/AndroidManifest.xml rename to packages/zoe_native/android/src/main/AndroidManifest.xml index 524f8436..e8679361 100644 --- a/rust_builder/android/src/main/AndroidManifest.xml +++ b/packages/zoe_native/android/src/main/AndroidManifest.xml @@ -1,3 +1,3 @@ + package="com.flutter_rust_bridge.zoe_native"> diff --git a/rust_builder/cargokit/.gitignore b/packages/zoe_native/cargokit/.gitignore similarity index 100% rename from rust_builder/cargokit/.gitignore rename to packages/zoe_native/cargokit/.gitignore diff --git a/rust_builder/cargokit/LICENSE b/packages/zoe_native/cargokit/LICENSE similarity index 100% rename from rust_builder/cargokit/LICENSE rename to packages/zoe_native/cargokit/LICENSE diff --git a/rust_builder/cargokit/README b/packages/zoe_native/cargokit/README similarity index 100% rename from rust_builder/cargokit/README rename to packages/zoe_native/cargokit/README diff --git a/rust_builder/cargokit/build_pod.sh b/packages/zoe_native/cargokit/build_pod.sh similarity index 100% rename from rust_builder/cargokit/build_pod.sh rename to packages/zoe_native/cargokit/build_pod.sh diff --git a/rust_builder/cargokit/build_tool/README.md b/packages/zoe_native/cargokit/build_tool/README.md similarity index 100% rename from rust_builder/cargokit/build_tool/README.md rename to packages/zoe_native/cargokit/build_tool/README.md diff --git a/rust_builder/cargokit/build_tool/analysis_options.yaml b/packages/zoe_native/cargokit/build_tool/analysis_options.yaml similarity index 100% rename from rust_builder/cargokit/build_tool/analysis_options.yaml rename to packages/zoe_native/cargokit/build_tool/analysis_options.yaml diff --git a/rust_builder/cargokit/build_tool/bin/build_tool.dart b/packages/zoe_native/cargokit/build_tool/bin/build_tool.dart similarity index 100% rename from rust_builder/cargokit/build_tool/bin/build_tool.dart rename to packages/zoe_native/cargokit/build_tool/bin/build_tool.dart diff --git a/rust_builder/cargokit/build_tool/lib/build_tool.dart b/packages/zoe_native/cargokit/build_tool/lib/build_tool.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/build_tool.dart rename to packages/zoe_native/cargokit/build_tool/lib/build_tool.dart diff --git a/rust_builder/cargokit/build_tool/lib/src/android_environment.dart b/packages/zoe_native/cargokit/build_tool/lib/src/android_environment.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/src/android_environment.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/android_environment.dart diff --git a/rust_builder/cargokit/build_tool/lib/src/artifacts_provider.dart b/packages/zoe_native/cargokit/build_tool/lib/src/artifacts_provider.dart similarity index 94% rename from rust_builder/cargokit/build_tool/lib/src/artifacts_provider.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/artifacts_provider.dart index e608cece..b31ee549 100644 --- a/rust_builder/cargokit/build_tool/lib/src/artifacts_provider.dart +++ b/packages/zoe_native/cargokit/build_tool/lib/src/artifacts_provider.dart @@ -60,6 +60,8 @@ class ArtifactProvider { pendingTargets.removeWhere((element) => result.containsKey(element)); if (pendingTargets.isEmpty) { + _log.info( + 'Using precompiled binaries for all targets. To disable, create cargokit_options.yaml with use_precompiled_binaries: false'); return result; } @@ -99,7 +101,14 @@ class ArtifactProvider { Future>> _getPrecompiledArtifacts( List targets) async { if (userOptions.usePrecompiledBinaries == false) { - _log.info('Precompiled binaries are disabled'); + final envDisabled = + Platform.environment['CARGOKIT_DISABLE_PRECOMPILED_BINARIES'] == '1'; + if (envDisabled) { + _log.info( + 'Precompiled binaries are disabled by environment variable CARGOKIT_DISABLE_PRECOMPILED_BINARIES=1'); + } else { + _log.info('Precompiled binaries are disabled by user configuration'); + } return {}; } if (environment.crateOptions.precompiledBinaries == null) { diff --git a/rust_builder/cargokit/build_tool/lib/src/build_cmake.dart b/packages/zoe_native/cargokit/build_tool/lib/src/build_cmake.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/src/build_cmake.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/build_cmake.dart diff --git a/rust_builder/cargokit/build_tool/lib/src/build_gradle.dart b/packages/zoe_native/cargokit/build_tool/lib/src/build_gradle.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/src/build_gradle.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/build_gradle.dart diff --git a/rust_builder/cargokit/build_tool/lib/src/build_pod.dart b/packages/zoe_native/cargokit/build_tool/lib/src/build_pod.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/src/build_pod.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/build_pod.dart diff --git a/rust_builder/cargokit/build_tool/lib/src/build_tool.dart b/packages/zoe_native/cargokit/build_tool/lib/src/build_tool.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/src/build_tool.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/build_tool.dart diff --git a/rust_builder/cargokit/build_tool/lib/src/builder.dart b/packages/zoe_native/cargokit/build_tool/lib/src/builder.dart similarity index 98% rename from rust_builder/cargokit/build_tool/lib/src/builder.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/builder.dart index 6fe341f6..84c46e4f 100644 --- a/rust_builder/cargokit/build_tool/lib/src/builder.dart +++ b/packages/zoe_native/cargokit/build_tool/lib/src/builder.dart @@ -133,7 +133,7 @@ class RustBuilder { CargoBuildOptions? get _buildOptions => environment.crateOptions.cargo[environment.configuration]; - String get _toolchain => _buildOptions?.toolchain.name ?? 'nightly'; + String get _toolchain => _buildOptions?.toolchain.name ?? 'stable'; /// Returns the path of directory containing build artifacts. Future build() async { diff --git a/rust_builder/cargokit/build_tool/lib/src/cargo.dart b/packages/zoe_native/cargokit/build_tool/lib/src/cargo.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/src/cargo.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/cargo.dart diff --git a/rust_builder/cargokit/build_tool/lib/src/crate_hash.dart b/packages/zoe_native/cargokit/build_tool/lib/src/crate_hash.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/src/crate_hash.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/crate_hash.dart diff --git a/rust_builder/cargokit/build_tool/lib/src/environment.dart b/packages/zoe_native/cargokit/build_tool/lib/src/environment.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/src/environment.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/environment.dart diff --git a/rust_builder/cargokit/build_tool/lib/src/logging.dart b/packages/zoe_native/cargokit/build_tool/lib/src/logging.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/src/logging.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/logging.dart diff --git a/rust_builder/cargokit/build_tool/lib/src/options.dart b/packages/zoe_native/cargokit/build_tool/lib/src/options.dart similarity index 94% rename from rust_builder/cargokit/build_tool/lib/src/options.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/options.dart index 22aef1d3..a50f10a8 100644 --- a/rust_builder/cargokit/build_tool/lib/src/options.dart +++ b/packages/zoe_native/cargokit/build_tool/lib/src/options.dart @@ -231,10 +231,19 @@ class CargokitCrateOptions { } class CargokitUserOptions { - // When Rustup is installed always build locally unless user opts into - // using precompiled binaries. + // Default behavior: Always use precompiled binaries when available. + // This provides the best user experience by avoiding the need to install Rust. + // + // To disable precompiled binaries and force local compilation: + // 1. Set environment variable: CARGOKIT_DISABLE_PRECOMPILED_BINARIES=1 + // 2. Or create cargokit_options.yaml file in your project root with: + // use_precompiled_binaries: false static bool defaultUsePrecompiledBinaries() { - return Rustup.executablePath() == null; + // Check environment variable first (useful for CI) + if (Platform.environment['CARGOKIT_DISABLE_PRECOMPILED_BINARIES'] == '1') { + return false; + } + return true; } CargokitUserOptions({ diff --git a/rust_builder/cargokit/build_tool/lib/src/precompile_binaries.dart b/packages/zoe_native/cargokit/build_tool/lib/src/precompile_binaries.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/src/precompile_binaries.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/precompile_binaries.dart diff --git a/rust_builder/cargokit/build_tool/lib/src/rustup.dart b/packages/zoe_native/cargokit/build_tool/lib/src/rustup.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/src/rustup.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/rustup.dart diff --git a/rust_builder/cargokit/build_tool/lib/src/target.dart b/packages/zoe_native/cargokit/build_tool/lib/src/target.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/src/target.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/target.dart diff --git a/rust_builder/cargokit/build_tool/lib/src/util.dart b/packages/zoe_native/cargokit/build_tool/lib/src/util.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/src/util.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/util.dart diff --git a/rust_builder/cargokit/build_tool/lib/src/verify_binaries.dart b/packages/zoe_native/cargokit/build_tool/lib/src/verify_binaries.dart similarity index 100% rename from rust_builder/cargokit/build_tool/lib/src/verify_binaries.dart rename to packages/zoe_native/cargokit/build_tool/lib/src/verify_binaries.dart diff --git a/rust_builder/cargokit/build_tool/pubspec.lock b/packages/zoe_native/cargokit/build_tool/pubspec.lock similarity index 100% rename from rust_builder/cargokit/build_tool/pubspec.lock rename to packages/zoe_native/cargokit/build_tool/pubspec.lock diff --git a/rust_builder/cargokit/build_tool/pubspec.yaml b/packages/zoe_native/cargokit/build_tool/pubspec.yaml similarity index 100% rename from rust_builder/cargokit/build_tool/pubspec.yaml rename to packages/zoe_native/cargokit/build_tool/pubspec.yaml diff --git a/rust_builder/cargokit/cmake/cargokit.cmake b/packages/zoe_native/cargokit/cmake/cargokit.cmake similarity index 100% rename from rust_builder/cargokit/cmake/cargokit.cmake rename to packages/zoe_native/cargokit/cmake/cargokit.cmake diff --git a/rust_builder/cargokit/cmake/resolve_symlinks.ps1 b/packages/zoe_native/cargokit/cmake/resolve_symlinks.ps1 similarity index 100% rename from rust_builder/cargokit/cmake/resolve_symlinks.ps1 rename to packages/zoe_native/cargokit/cmake/resolve_symlinks.ps1 diff --git a/rust_builder/cargokit/gradle/plugin.gradle b/packages/zoe_native/cargokit/gradle/plugin.gradle similarity index 100% rename from rust_builder/cargokit/gradle/plugin.gradle rename to packages/zoe_native/cargokit/gradle/plugin.gradle diff --git a/rust_builder/cargokit/run_build_tool.cmd b/packages/zoe_native/cargokit/run_build_tool.cmd similarity index 100% rename from rust_builder/cargokit/run_build_tool.cmd rename to packages/zoe_native/cargokit/run_build_tool.cmd diff --git a/rust_builder/cargokit/run_build_tool.sh b/packages/zoe_native/cargokit/run_build_tool.sh similarity index 100% rename from rust_builder/cargokit/run_build_tool.sh rename to packages/zoe_native/cargokit/run_build_tool.sh diff --git a/packages/zoe_native/flutter_rust_bridge.yaml b/packages/zoe_native/flutter_rust_bridge.yaml new file mode 100644 index 00000000..e4dddf2f --- /dev/null +++ b/packages/zoe_native/flutter_rust_bridge.yaml @@ -0,0 +1,10 @@ +rust_input: crate::api,zoe-client::client,zoe-client::frb_api,zoe-client::util,zoe-wire-protocol::keys, +rust_root: rust/ +dart_output: lib/src/rust +enable_lifetime: true + +rust_preamble: | + use std::{path::PathBuf, net::SocketAddr, error::Error}; + use zoe_client::{FileRef}; + use zoe_wire_protocol::keys::{KeyPair, VerifyingKey, SigningKey, Signature}; + use zoe_app_primitives::connection::RelayAddress; \ No newline at end of file diff --git a/rust_builder/ios/Classes/dummy_file.c b/packages/zoe_native/ios/Classes/dummy_file.c similarity index 100% rename from rust_builder/ios/Classes/dummy_file.c rename to packages/zoe_native/ios/Classes/dummy_file.c diff --git a/rust_builder/ios/rust_lib_zoe.podspec b/packages/zoe_native/ios/zoe_native.podspec similarity index 82% rename from rust_builder/ios/rust_lib_zoe.podspec rename to packages/zoe_native/ios/zoe_native.podspec index 2c16d754..00e30846 100644 --- a/rust_builder/ios/rust_lib_zoe.podspec +++ b/packages/zoe_native/ios/zoe_native.podspec @@ -1,9 +1,9 @@ # # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. -# Run `pod lib lint rust_lib_zoe.podspec` to validate before publishing. +# Run `pod lib lint zoe_native.podspec` to validate before publishing. # Pod::Spec.new do |s| - s.name = 'rust_lib_zoe' + s.name = 'zoe_native' s.version = '0.0.1' s.summary = 'A new Flutter FFI plugin project.' s.description = <<-DESC @@ -21,6 +21,9 @@ A new Flutter FFI plugin project. s.source_files = 'Classes/**/*' s.dependency 'Flutter' s.platform = :ios, '11.0' + + # Link required system frameworks + s.frameworks = 'SystemConfiguration' # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } @@ -29,17 +32,17 @@ A new Flutter FFI plugin project. s.script_phase = { :name => 'Build Rust library', # First argument is relative path to the `rust` folder, second is name of rust library - :script => 'sh "$PODS_TARGET_SRCROOT/../cargokit/build_pod.sh" ../../rust rust_lib_zoe', + :script => 'sh "$PODS_TARGET_SRCROOT/../cargokit/build_pod.sh" ../rust zoe_native', :execution_position => :before_compile, :input_files => ['${BUILT_PRODUCTS_DIR}/cargokit_phony'], # Let XCode know that the static library referenced in -force_load below is # created by this build step. - :output_files => ["${BUILT_PRODUCTS_DIR}/librust_lib_zoe.a"], + :output_files => ["${BUILT_PRODUCTS_DIR}/libzoe_native.a"], } s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', # Flutter.framework does not contain a i386 slice. 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386', - 'OTHER_LDFLAGS' => '-force_load ${BUILT_PRODUCTS_DIR}/librust_lib_zoe.a -lc++ -framework SystemConfiguration', + 'OTHER_LDFLAGS' => '-force_load ${BUILT_PRODUCTS_DIR}/libzoe_native.a', } end \ No newline at end of file diff --git a/packages/zoe_native/lib/providers.dart b/packages/zoe_native/lib/providers.dart new file mode 100644 index 00000000..eae5efe1 --- /dev/null +++ b/packages/zoe_native/lib/providers.dart @@ -0,0 +1,4 @@ +export 'src/providers/client.dart'; +export 'src/providers/user_id.dart'; +export 'src/providers/connection_state.dart'; +export 'src/providers/enhanced_systems_test.dart'; diff --git a/packages/zoe_native/lib/src/providers/client.dart b/packages/zoe_native/lib/src/providers/client.dart new file mode 100644 index 00000000..ed34034d --- /dev/null +++ b/packages/zoe_native/lib/src/providers/client.dart @@ -0,0 +1,6 @@ +import 'package:riverpod/riverpod.dart'; +import 'package:zoe_native/zoe_native.dart'; + +final clientProvider = FutureProvider((ref) async { + return await loadOrGenerateClient(); +}); diff --git a/packages/zoe_native/lib/src/providers/connection_state.dart b/packages/zoe_native/lib/src/providers/connection_state.dart new file mode 100644 index 00000000..2a3dbc8c --- /dev/null +++ b/packages/zoe_native/lib/src/providers/connection_state.dart @@ -0,0 +1,14 @@ +import 'package:riverpod/riverpod.dart'; +import 'package:zoe_native/providers.dart'; +import 'package:zoe_native/src/rust/api/client.dart'; +import 'package:zoe_native/zoe_native.dart'; + +final connectionStatusProvider = StreamProvider(( + ref, +) async* { + final client = await ref.watch(clientProvider.future); + final stream = overallStatusStream(client: client); + await for (final status in stream) { + yield status; + } +}); diff --git a/packages/zoe_native/lib/src/providers/enhanced_systems_test.dart b/packages/zoe_native/lib/src/providers/enhanced_systems_test.dart new file mode 100644 index 00000000..76768175 --- /dev/null +++ b/packages/zoe_native/lib/src/providers/enhanced_systems_test.dart @@ -0,0 +1,511 @@ +import 'dart:async'; +import 'package:riverpod/riverpod.dart'; +import 'package:zoe_native/providers.dart'; +import 'package:zoe_native/src/rust/api/system_test.dart'; +import 'package:zoe_native/src/rust/third_party/zoe_client/frb_api.dart'; +import 'package:zoe_native/src/rust/third_party/zoe_client/system_check.dart'; +import 'package:zoe_native/src/support.dart'; + +/// Enhanced systems test result with streaming updates +class EnhancedSystemsTestResult { + final bool success; + final DateTime timestamp; + final Duration totalDuration; + final SystemCheckResults? currentResults; + final List categories; + final ClientInfo clientInfo; + final TestProgress? progress; + final bool isRunning; + + const EnhancedSystemsTestResult({ + required this.success, + required this.timestamp, + required this.totalDuration, + required this.currentResults, + required this.categories, + required this.clientInfo, + this.progress, + required this.isRunning, + }); + + EnhancedSystemsTestResult copyWith({ + bool? success, + DateTime? timestamp, + Duration? totalDuration, + SystemCheckResults? currentResults, + List? categories, + ClientInfo? clientInfo, + TestProgress? progress, + bool? isRunning, + }) { + return EnhancedSystemsTestResult( + success: success ?? this.success, + timestamp: timestamp ?? this.timestamp, + totalDuration: totalDuration ?? this.totalDuration, + currentResults: currentResults ?? this.currentResults, + categories: categories ?? this.categories, + clientInfo: clientInfo ?? this.clientInfo, + progress: progress ?? this.progress, + isRunning: isRunning ?? this.isRunning, + ); + } +} + +/// Streaming test category with live updates +class StreamingTestCategory { + final TestCategory category; + final String displayName; + final String description; + final bool hasFailures; + final bool isCompleted; + final bool isCurrentlyTesting; + final List tests; + final Duration duration; + + const StreamingTestCategory({ + required this.category, + required this.displayName, + required this.description, + required this.hasFailures, + required this.isCompleted, + required this.isCurrentlyTesting, + required this.tests, + required this.duration, + }); +} + +/// Test progress information for live updates +class TestProgress { + final String currentTest; + final int completedTests; + final int totalTests; + final String status; + final Duration elapsed; + + const TestProgress({ + required this.currentTest, + required this.completedTests, + required this.totalTests, + required this.status, + required this.elapsed, + }); + + double get progressPercent => + totalTests > 0 ? completedTests / totalTests : 0.0; +} + +/// Client information for display +class ClientInfo { + final String clientId; + final String serverAddress; + final String serverKey; + final bool isConnected; + final List relayServers; + + const ClientInfo({ + required this.clientId, + required this.serverAddress, + required this.serverKey, + required this.isConnected, + required this.relayServers, + }); +} + +/// Relay server information for testing +class RelayServerInfo { + final String address; + final String keyHex; + final String keyId; + final bool isConnected; + final bool isDefault; + + const RelayServerInfo({ + required this.address, + required this.keyHex, + required this.keyId, + required this.isConnected, + required this.isDefault, + }); +} + +/// Result of testing a specific relay server +class RelayTestResult { + final RelayServerInfo server; + final bool success; + final Duration duration; + final String? error; + final DateTime timestamp; + + const RelayTestResult({ + required this.server, + required this.success, + required this.duration, + required this.error, + required this.timestamp, + }); +} + +/// Trace message collected during testing +class TraceMessage { + final DateTime timestamp; + final String level; + final String target; + final String message; + final String? category; + + const TraceMessage({ + required this.timestamp, + required this.level, + required this.target, + required this.message, + this.category, + }); +} + +/// Diagnostic message (errors/warnings) +class DiagnosticMessage { + final String level; + final String message; + final DateTime timestamp; + + const DiagnosticMessage({ + required this.level, + required this.message, + required this.timestamp, + }); +} + +/// Enhanced systems test category with trace data +class SystemsTestCategory { + final String categoryName; + final String displayName; + final bool hasFailures; + final String description; + final List traces; + final Duration duration; + + const SystemsTestCategory({ + required this.categoryName, + required this.displayName, + required this.hasFailures, + required this.description, + required this.traces, + required this.duration, + }); +} + +/// Enhanced systems test provider with trace collection +class EnhancedSystemsTestNotifier + extends AsyncNotifier { + StreamSubscription? _testSubscription; + DateTime _testStartTime = DateTime.now(); + final Map _categoryStates = {}; + + @override + Future build() async { + // Load client info immediately to show relay servers + try { + final client = await ref.read(clientProvider.future); + final clientInfo = await _getClientInfo(client); + + // Initialize all categories as pending + _initializeCategories(); + + // Return initial state with client info but no test results + return EnhancedSystemsTestResult( + success: false, + timestamp: DateTime.now(), + totalDuration: Duration.zero, + currentResults: null, + categories: _categoryStates.values.toList(), + clientInfo: clientInfo, + isRunning: false, + ); + } catch (e) { + throw AsyncError( + 'Failed to load client information: $e', + StackTrace.current, + ); + } + } + + void _initializeCategories() { + final allCategories = [ + TestCategory.connectivity, + TestCategory.storage, + TestCategory.blobService, + TestCategory.offlineStorage, + TestCategory.offlineBlob, + TestCategory.synchronization, + ]; + + for (final category in allCategories) { + _categoryStates[category] = StreamingTestCategory( + category: category, + displayName: _getCategoryDisplayName(category), + description: _getCategoryDescription(category, false), + hasFailures: false, + isCompleted: false, + isCurrentlyTesting: false, + tests: [], + duration: Duration.zero, + ); + } + } + + /// Run comprehensive systems test with streaming updates + Future runSystemsTest() async { + await runSystemsTestForServer(null); + } + + /// Run systems test against a specific relay server with streaming updates + Future runSystemsTestForServer(RelayServerInfo? targetServer) async { + try { + // Cancel any existing test + await _cancelCurrentTest(); + + final client = await ref.read(clientProvider.future); + _testStartTime = DateTime.now(); + + // Prepare client for systems test by configuring the relay server + // Log the server details for debugging + // print('Preparing client with server: $defaultServerAddr'); + // print('Server key: ${defaultServerKey.substring(0, 16)}...'); + + final success = await prepareClientForSystemsTest( + client: client, + serverAddress: defaultServerAddr, + serverKeyHex: defaultServerKey, + ); + + if (!success) { + state = AsyncValue.error( + 'Failed to prepare client for systems test', + StackTrace.current, + ); + return; + } + + // Give the client a moment to establish connection + // Connection establishment is asynchronous and may take time + await Future.delayed(const Duration(seconds: 2)); + + // Reset all categories to pending state + _initializeCategories(); + + // Update state to show test is starting + state = AsyncValue.data( + state.value!.copyWith( + isRunning: true, + categories: _categoryStates.values.toList(), + ), + ); + + // Start the streaming test + _testSubscription = runSystemTests(client: client).listen( + _handleTestUpdate, + onError: _handleTestError, + onDone: _handleTestComplete, + ); + } catch (e, stackTrace) { + state = AsyncValue.error(e, stackTrace); + } + } + + Future _cancelCurrentTest() async { + await _testSubscription?.cancel(); + _testSubscription = null; + } + + void _handleTestUpdate(SystemCheckResults results) async { + try { + // Extract information from the results + final categories = await systemCheckResultsGetCategories( + results: results, + ); + final isSuccess = await systemCheckResultsIsSuccess(results: results); + final totalDurationMs = await systemCheckResultsTotalDurationMs( + results: results, + ); + + // Reset all categories to pending first + _initializeCategories(); + + // Update category states based on current results + for (final category in categories) { + final tests = await systemCheckResultsGetTestsForCategory( + results: results, + category: category, + ); + final hasFailures = await systemCheckResultsCategoryHasFailures( + results: results, + category: category, + ); + + _categoryStates[category] = StreamingTestCategory( + category: category, + displayName: _getCategoryDisplayName(category), + description: _getCategoryDescription(category, hasFailures), + hasFailures: hasFailures, + isCompleted: true, + isCurrentlyTesting: false, + tests: tests, + duration: Duration(milliseconds: totalDurationMs.toInt()), + ); + } + + // Determine which test is currently running based on logical flow + String? currentTestName; + final completedCategories = categories.length; + final allCategories = [ + TestCategory.offlineStorage, + TestCategory.offlineBlob, + TestCategory.connectivity, + TestCategory.storage, + TestCategory.blobService, + TestCategory.synchronization, + ]; + + // Find the next category that should be running + if (completedCategories < allCategories.length) { + final nextCategory = allCategories[completedCategories]; + currentTestName = _getCategoryDisplayName(nextCategory); + + // Mark the next category as currently testing + _categoryStates[nextCategory] = StreamingTestCategory( + category: nextCategory, + displayName: _getCategoryDisplayName(nextCategory), + description: 'Testing in progress...', + hasFailures: false, + isCompleted: false, + isCurrentlyTesting: true, + tests: [], + duration: Duration.zero, + ); + } + + final progress = TestProgress( + currentTest: currentTestName ?? 'Completed', + completedTests: completedCategories, + totalTests: allCategories.length, + status: completedCategories < allCategories.length + ? 'Running ${currentTestName ?? "tests"}...' + : 'Completed', + elapsed: DateTime.now().difference(_testStartTime), + ); + + // Check if test is complete (no more categories to test) + final isTestComplete = completedCategories >= allCategories.length; + + // Update state with live results + state = AsyncValue.data( + EnhancedSystemsTestResult( + success: isSuccess, + timestamp: _testStartTime, + totalDuration: Duration(milliseconds: totalDurationMs.toInt()), + currentResults: results, + categories: _categoryStates.values.toList(), + clientInfo: state.value!.clientInfo, + progress: isTestComplete ? null : progress, + isRunning: !isTestComplete, + ), + ); + } catch (e, stackTrace) { + // Log error for debugging + state = AsyncValue.error(e, stackTrace); + } + } + + void _handleTestError(Object error, StackTrace stackTrace) { + // Handle test stream error + state = AsyncValue.error(error, stackTrace); + } + + void _handleTestComplete() async { + // Test stream completed + + // Mark test as no longer running + if (state.hasValue) { + state = AsyncValue.data( + state.value!.copyWith(isRunning: false, progress: null), + ); + } + + _testSubscription = null; + } + + // Helper methods + Future _getClientInfo(client) async { + try { + final clientId = await client.idHex(); + final relayServers = await _getRelayServerInfo(client); + + return ClientInfo( + clientId: clientId.length > 16 + ? '${clientId.substring(0, 16)}...' + : clientId, + serverAddress: defaultServerAddr, + serverKey: defaultServerKey.length > 16 + ? '${defaultServerKey.substring(0, 16)}...' + : defaultServerKey, + isConnected: false, // We'll determine this during testing + relayServers: relayServers, + ); + } catch (e) { + return ClientInfo( + clientId: 'Unknown', + serverAddress: defaultServerAddr, + serverKey: 'Unknown', + isConnected: false, + relayServers: [], + ); + } + } + + Future> _getRelayServerInfo(client) async { + try { + // For now, return empty list - we can enhance this later + return []; + } catch (e) { + return []; + } + } + + String _getCategoryDisplayName(TestCategory category) => switch (category) { + TestCategory.connectivity => 'Connectivity', + TestCategory.storage => 'Storage', + TestCategory.blobService => 'Blob Service', + TestCategory.offlineStorage => 'Offline Storage', + TestCategory.offlineBlob => 'Offline Blob', + TestCategory.synchronization => 'Synchronization', + }; + + String _getCategoryDescription(TestCategory category, bool hasFailures) { + final status = hasFailures ? 'Failed' : 'Passed'; + return switch (category) { + TestCategory.connectivity => + '$status - Server connectivity and handshake tests', + TestCategory.storage => + '$status - Online message storage and retrieval tests', + TestCategory.blobService => + '$status - Online blob service upload/download tests', + TestCategory.offlineStorage => + '$status - Offline storage tests (without relay connection)', + TestCategory.offlineBlob => + '$status - Offline blob service tests (without relay connection)', + TestCategory.synchronization => + '$status - Message and blob synchronization tests', + }; + } + + void dispose() { + _testSubscription?.cancel(); + } +} + +/// Provider for enhanced systems test state +final enhancedSystemsTestProvider = + AsyncNotifierProvider< + EnhancedSystemsTestNotifier, + EnhancedSystemsTestResult + >(() => EnhancedSystemsTestNotifier()); diff --git a/packages/zoe_native/lib/src/providers/user_id.dart b/packages/zoe_native/lib/src/providers/user_id.dart new file mode 100644 index 00000000..4528c357 --- /dev/null +++ b/packages/zoe_native/lib/src/providers/user_id.dart @@ -0,0 +1,8 @@ +import 'package:riverpod/riverpod.dart'; +import 'package:zoe_native/src/providers/client.dart'; + +/// My user id +final userIdProvider = FutureProvider((ref) async { + final client = await ref.watch(clientProvider.future); + return client.idHex(); +}); diff --git a/packages/zoe_native/lib/src/rust/api/client.dart b/packages/zoe_native/lib/src/rust/api/client.dart new file mode 100644 index 00000000..542c9233 --- /dev/null +++ b/packages/zoe_native/lib/src/rust/api/client.dart @@ -0,0 +1,11 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../frb_generated.dart'; +import '../third_party/zoe_client/client.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +Stream overallStatusStream({required Client client}) => + RustLib.instance.api.crateApiClientOverallStatusStream(client: client); diff --git a/lib/core/rust/api/simple.dart b/packages/zoe_native/lib/src/rust/api/simple.dart similarity index 100% rename from lib/core/rust/api/simple.dart rename to packages/zoe_native/lib/src/rust/api/simple.dart diff --git a/packages/zoe_native/lib/src/rust/api/system_test.dart b/packages/zoe_native/lib/src/rust/api/system_test.dart new file mode 100644 index 00000000..f9902bd1 --- /dev/null +++ b/packages/zoe_native/lib/src/rust/api/system_test.dart @@ -0,0 +1,84 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../frb_generated.dart'; +import '../third_party/zoe_client/client.dart'; +import '../third_party/zoe_client/system_check.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +Stream runSystemTests({required Client client}) => + RustLib.instance.api.crateApiSystemTestRunSystemTests(client: client); + +Future systemCheckResultsIsSuccess({ + required SystemCheckResults results, +}) => RustLib.instance.api.crateApiSystemTestSystemCheckResultsIsSuccess( + results: results, +); + +Future systemCheckResultsPassedCount({ + required SystemCheckResults results, +}) => RustLib.instance.api.crateApiSystemTestSystemCheckResultsPassedCount( + results: results, +); + +Future systemCheckResultsFailedCount({ + required SystemCheckResults results, +}) => RustLib.instance.api.crateApiSystemTestSystemCheckResultsFailedCount( + results: results, +); + +Future systemCheckResultsTotalCount({ + required SystemCheckResults results, +}) => RustLib.instance.api.crateApiSystemTestSystemCheckResultsTotalCount( + results: results, +); + +Future systemCheckResultsTotalDurationMs({ + required SystemCheckResults results, +}) => RustLib.instance.api.crateApiSystemTestSystemCheckResultsTotalDurationMs( + results: results, +); + +Future> systemCheckResultsGetCategories({ + required SystemCheckResults results, +}) => RustLib.instance.api.crateApiSystemTestSystemCheckResultsGetCategories( + results: results, +); + +Future> systemCheckResultsGetTestsForCategory({ + required SystemCheckResults results, + required TestCategory category, +}) => RustLib.instance.api + .crateApiSystemTestSystemCheckResultsGetTestsForCategory( + results: results, + category: category, + ); + +Future systemCheckResultsCategoryHasFailures({ + required SystemCheckResults results, + required TestCategory category, +}) => RustLib.instance.api + .crateApiSystemTestSystemCheckResultsCategoryHasFailures( + results: results, + category: category, + ); + +Future testInfoGetName({required TestInfo test}) => + RustLib.instance.api.crateApiSystemTestTestInfoGetName(test: test); + +Future> testInfoGetDetails({required TestInfo test}) => + RustLib.instance.api.crateApiSystemTestTestInfoGetDetails(test: test); + +Future testInfoIsPassed({required TestInfo test}) => + RustLib.instance.api.crateApiSystemTestTestInfoIsPassed(test: test); + +Future testInfoIsFailed({required TestInfo test}) => + RustLib.instance.api.crateApiSystemTestTestInfoIsFailed(test: test); + +Future testInfoGetError({required TestInfo test}) => + RustLib.instance.api.crateApiSystemTestTestInfoGetError(test: test); + +Future testInfoDurationMs({required TestInfo test}) => + RustLib.instance.api.crateApiSystemTestTestInfoDurationMs(test: test); diff --git a/packages/zoe_native/lib/src/rust/frb_generated.dart b/packages/zoe_native/lib/src/rust/frb_generated.dart new file mode 100644 index 00000000..643539f6 --- /dev/null +++ b/packages/zoe_native/lib/src/rust/frb_generated.dart @@ -0,0 +1,7457 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field + +import 'api/client.dart'; +import 'api/simple.dart'; +import 'api/system_test.dart'; +import 'dart:async'; +import 'dart:convert'; +import 'frb_generated.dart'; +import 'frb_generated.io.dart' + if (dart.library.js_interop) 'frb_generated.web.dart'; +import 'lib.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; +import 'third_party/zoe_client/client.dart'; +import 'third_party/zoe_client/client/api/file_storage.dart'; +import 'third_party/zoe_client/frb_api.dart'; +import 'third_party/zoe_client/system_check.dart'; +import 'third_party/zoe_client/util.dart'; +import 'third_party/zoe_wire_protocol/keys.dart'; +import 'third_party/zoe_wire_protocol/primitives.dart'; + +/// Main entrypoint of the Rust API +class RustLib extends BaseEntrypoint { + @internal + static final instance = RustLib._(); + + RustLib._(); + + /// Initialize flutter_rust_bridge + static Future init({ + RustLibApi? api, + BaseHandler? handler, + ExternalLibrary? externalLibrary, + bool forceSameCodegenVersion = true, + }) async { + await instance.initImpl( + api: api, + handler: handler, + externalLibrary: externalLibrary, + forceSameCodegenVersion: forceSameCodegenVersion, + ); + } + + /// Initialize flutter_rust_bridge in mock mode. + /// No libraries for FFI are loaded. + static void initMock({required RustLibApi api}) { + instance.initMockImpl(api: api); + } + + /// Dispose flutter_rust_bridge + /// + /// The call to this function is optional, since flutter_rust_bridge (and everything else) + /// is automatically disposed when the app stops. + static void dispose() => instance.disposeImpl(); + + @override + ApiImplConstructor get apiImplConstructor => + RustLibApiImpl.new; + + @override + WireConstructor get wireConstructor => + RustLibWire.fromExternalLibrary; + + @override + Future executeRustInitializers() async { + await api.crateApiSimpleInitApp(); + } + + @override + ExternalLibraryLoaderConfig get defaultExternalLibraryLoaderConfig => + kDefaultExternalLibraryLoaderConfig; + + @override + String get codegenVersion => '2.11.1'; + + @override + int get rustContentHash => -1279430215; + + static const kDefaultExternalLibraryLoaderConfig = + ExternalLibraryLoaderConfig( + stem: 'zoe_native', + ioDirectory: 'rust/target/release/', + webPrefix: 'pkg/', + ); +} + +abstract class RustLibApi extends BaseApi { + Future zoeClientClientClientBuilderAutoconnect({ + required ClientBuilder that, + required bool autoconnect, + }); + + Future zoeClientClientClientBuilderBuild({ + required ClientBuilder that, + }); + + Future zoeClientClientClientBuilderClientSecret({ + required ClientBuilder that, + required ClientSecret secret, + }); + + Future zoeClientClientClientBuilderDbStorageDir({ + required ClientBuilder that, + required String path, + }); + + Future zoeClientClientClientBuilderDefault(); + + Future zoeClientClientClientBuilderEncryptionKey({ + required ClientBuilder that, + required U8Array32 key, + }); + + Future zoeClientClientClientBuilderMediaStorageDir({ + required ClientBuilder that, + required String mediaStorageDir, + }); + + Future zoeClientClientClientBuilderServerInfo({ + required ClientBuilder that, + required VerifyingKey serverPublicKey, + required SocketAddr serverAddr, + }); + + Future zoeClientClientClientBuilderServers({ + required ClientBuilder that, + required List servers, + }); + + Future zoeClientClientClientSecretFromHex({ + required String hex, + }); + + Future zoeClientClientClientSecretServers({required ClientSecret that}); + + Future zoeClientClientClientSecretToHex({required ClientSecret that}); + + Future zoeClientClientClientAddRelay({ + required Client that, + required RelayAddress address, + }); + + Future zoeClientClientClientBuilder(); + + Future zoeClientClientClientClientSecret({ + required Client that, + }); + + Future zoeClientClientClientClientSecretHex({required Client that}); + + Future zoeClientClientClientClose({required Client that}); + + Future> zoeClientClientClientGetRelayStatus({ + required Client that, + }); + + Future zoeClientClientClientHasConnectedRelays({required Client that}); + + Future zoeClientClientClientHasFile({ + required Client that, + required FileRef storedInfo, + }); + + Future zoeClientClientClientIdHex({required Client that}); + + Future zoeClientClientClientOverallStatus({ + required Client that, + }); + + Future zoeClientClientClientReconnectFailedRelays({ + required Client that, + }); + + Future zoeClientClientClientRemoveRelay({ + required Client that, + required VerifyingKey serverPublicKey, + }); + + Future zoeClientClientClientRetrieveFile({ + required Client that, + required FileRef fileRef, + required PathBuf outputPath, + }); + + Future zoeClientClientClientRetrieveFileBytes({ + required Client that, + required FileRef fileRef, + }); + + Future zoeClientClientClientStoreData({ + required Client that, + required List data, + required String referenceName, + String? contentType, + }); + + Future zoeClientClientClientStoreFile({ + required Client that, + required PathBuf filePath, + }); + + Future zoeWireProtocolKeysKeyPairAlgorithm({ + required KeyPair that, + }); + + Future zoeWireProtocolKeysKeyPairFromPem({ + required String pemString, + }); + + Future zoeWireProtocolKeysKeyPairId({required KeyPair that}); + + Future zoeWireProtocolKeysKeyPairPublicKey({ + required KeyPair that, + }); + + Future zoeWireProtocolKeysKeyPairSign({ + required KeyPair that, + required List message, + }); + + Future zoeWireProtocolKeysKeyPairToPem({required KeyPair that}); + + RelayInfo zoeClientClientRelayConnectionInfoAutoAccessorGetInfo({ + required RelayConnectionInfo that, + }); + + RelayConnectionStatus + zoeClientClientRelayConnectionInfoAutoAccessorGetStatus({ + required RelayConnectionInfo that, + }); + + void zoeClientClientRelayConnectionInfoAutoAccessorSetInfo({ + required RelayConnectionInfo that, + required RelayInfo info, + }); + + void zoeClientClientRelayConnectionInfoAutoAccessorSetStatus({ + required RelayConnectionInfo that, + required RelayConnectionStatus status, + }); + + RelayAddress zoeClientClientRelayInfoAutoAccessorGetRelayAddress({ + required RelayInfo that, + }); + + KeyId zoeClientClientRelayInfoAutoAccessorGetRelayId({ + required RelayInfo that, + }); + + void zoeClientClientRelayInfoAutoAccessorSetRelayAddress({ + required RelayInfo that, + required RelayAddress relayAddress, + }); + + void zoeClientClientRelayInfoAutoAccessorSetRelayId({ + required RelayInfo that, + required KeyId relayId, + }); + + RelayAddress zoeClientClientRelayStatusUpdateAutoAccessorGetRelayAddress({ + required RelayStatusUpdate that, + }); + + KeyId zoeClientClientRelayStatusUpdateAutoAccessorGetRelayId({ + required RelayStatusUpdate that, + }); + + RelayConnectionStatus zoeClientClientRelayStatusUpdateAutoAccessorGetStatus({ + required RelayStatusUpdate that, + }); + + void zoeClientClientRelayStatusUpdateAutoAccessorSetRelayAddress({ + required RelayStatusUpdate that, + required RelayAddress relayAddress, + }); + + void zoeClientClientRelayStatusUpdateAutoAccessorSetRelayId({ + required RelayStatusUpdate that, + required KeyId relayId, + }); + + void zoeClientClientRelayStatusUpdateAutoAccessorSetStatus({ + required RelayStatusUpdate that, + required RelayConnectionStatus status, + }); + + Future zoeWireProtocolKeysSignatureEncode({ + required Signature that, + }); + + Future zoeWireProtocolKeysSignatureId({required Signature that}); + + Future zoeWireProtocolKeysSigningKeySign({ + required SigningKey that, + required List message, + }); + + Future zoeWireProtocolKeysVerifyingKeyAlgorithm({ + required VerifyingKey that, + }); + + Future zoeWireProtocolKeysVerifyingKeyEncode({ + required VerifyingKey that, + }); + + Future zoeWireProtocolKeysVerifyingKeyFromHex({ + required String hex, + }); + + Future zoeWireProtocolKeysVerifyingKeyFromPem({ + required String pemString, + }); + + Future zoeWireProtocolKeysVerifyingKeyId({required VerifyingKey that}); + + Future zoeWireProtocolKeysVerifyingKeyToBytes({ + required VerifyingKey that, + }); + + Future zoeWireProtocolKeysVerifyingKeyToPem({ + required VerifyingKey that, + }); + + Future zoeWireProtocolKeysVerifyingKeyVerify({ + required VerifyingKey that, + required List message, + required Signature signature, + }); + + Future zoeClientFrbApiCreateRelayAddressWithHostname({ + required String serverKeyHex, + required String hostname, + }); + + Future zoeClientFrbApiCreateSigningKeyRandom(); + + Future zoeClientFrbApiCreateSocketAddr({ + required String ip, + required int port, + }); + + Future zoeClientFrbApiFrbInit(); + + String crateApiSimpleGreet({required String name}); + + Future crateApiSimpleInitApp(); + + Stream crateApiClientOverallStatusStream({ + required Client client, + }); + + Future zoeClientFrbApiPrepareClientForSystemsTest({ + required Client client, + required String serverAddress, + required String serverKeyHex, + }); + + Future zoeClientUtilResolveToSocketAddr({required String s}); + + Stream crateApiSystemTestRunSystemTests({ + required Client client, + }); + + Future zoeClientFrbApiSigningKeyFromHex({required String hex}); + + Future zoeClientFrbApiSigningKeyToVerifyingKey({ + required String signingKeyHex, + }); + + Future zoeClientFrbApiSocketAddrIp({required SocketAddr addr}); + + Future zoeClientFrbApiSocketAddrPort({required SocketAddr addr}); + + Future zoeClientFrbApiSocketAddrToString({required SocketAddr addr}); + + Future crateApiSystemTestSystemCheckResultsCategoryHasFailures({ + required SystemCheckResults results, + required TestCategory category, + }); + + Future crateApiSystemTestSystemCheckResultsFailedCount({ + required SystemCheckResults results, + }); + + Future> crateApiSystemTestSystemCheckResultsGetCategories({ + required SystemCheckResults results, + }); + + Future> + crateApiSystemTestSystemCheckResultsGetTestsForCategory({ + required SystemCheckResults results, + required TestCategory category, + }); + + Future crateApiSystemTestSystemCheckResultsIsSuccess({ + required SystemCheckResults results, + }); + + Future crateApiSystemTestSystemCheckResultsPassedCount({ + required SystemCheckResults results, + }); + + Future crateApiSystemTestSystemCheckResultsTotalCount({ + required SystemCheckResults results, + }); + + Future crateApiSystemTestSystemCheckResultsTotalDurationMs({ + required SystemCheckResults results, + }); + + Future crateApiSystemTestTestInfoDurationMs({required TestInfo test}); + + Future> crateApiSystemTestTestInfoGetDetails({ + required TestInfo test, + }); + + Future crateApiSystemTestTestInfoGetError({required TestInfo test}); + + Future crateApiSystemTestTestInfoGetName({required TestInfo test}); + + Future crateApiSystemTestTestInfoIsFailed({required TestInfo test}); + + Future crateApiSystemTestTestInfoIsPassed({required TestInfo test}); + + Future zoeClientFrbApiVerifyingKeyFromHex({ + required String hex, + }); + + RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_Client; + + RustArcDecrementStrongCountFnType get rust_arc_decrement_strong_count_Client; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_ClientPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_ClientBuilder; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_ClientBuilder; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ClientBuilderPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_ClientSecret; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_ClientSecret; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_ClientSecretPtr; + + RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_FileRef; + + RustArcDecrementStrongCountFnType get rust_arc_decrement_strong_count_FileRef; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_FileRefPtr; + + RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_KeyId; + + RustArcDecrementStrongCountFnType get rust_arc_decrement_strong_count_KeyId; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_KeyIdPtr; + + RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_KeyPair; + + RustArcDecrementStrongCountFnType get rust_arc_decrement_strong_count_KeyPair; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_KeyPairPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_KeyPairError; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_KeyPairError; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_KeyPairErrorPtr; + + RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_PathBuf; + + RustArcDecrementStrongCountFnType get rust_arc_decrement_strong_count_PathBuf; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_PathBufPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_RelayAddress; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_RelayAddress; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_RelayAddressPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_RelayConnectionInfo; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_RelayConnectionInfo; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_RelayConnectionInfoPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_RelayConnectionStatus; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_RelayConnectionStatus; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_RelayConnectionStatusPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_RelayInfo; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_RelayInfo; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_RelayInfoPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_RelayStatusUpdate; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_RelayStatusUpdate; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_RelayStatusUpdatePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_Signature; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_Signature; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_SignaturePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_SigningKey; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_SigningKey; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_SigningKeyPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_SocketAddr; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_SocketAddr; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_SocketAddrPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_SystemCheckResults; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_SystemCheckResults; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_SystemCheckResultsPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_TestInfo; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_TestInfo; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_TestInfoPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_VerifyError; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_VerifyError; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_VerifyErrorPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_VerifyingKey; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_VerifyingKey; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_VerifyingKeyPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_VerifyingKeyError; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_VerifyingKeyError; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_VerifyingKeyErrorPtr; +} + +class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { + RustLibApiImpl({ + required super.handler, + required super.wire, + required super.generalizedFrbRustBinding, + required super.portManager, + }); + + @override + Future zoeClientClientClientBuilderAutoconnect({ + required ClientBuilder that, + required bool autoconnect, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + that, + serializer, + ); + sse_encode_bool(autoconnect, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 1, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientBuilderAutoconnectConstMeta, + argValues: [that, autoconnect], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientBuilderAutoconnectConstMeta => + const TaskConstMeta( + debugName: "ClientBuilder_autoconnect", + argNames: ["that", "autoconnect"], + ); + + @override + Future zoeClientClientClientBuilderBuild({ + required ClientBuilder that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 2, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kZoeClientClientClientBuilderBuildConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientBuilderBuildConstMeta => + const TaskConstMeta(debugName: "ClientBuilder_build", argNames: ["that"]); + + @override + Future zoeClientClientClientBuilderClientSecret({ + required ClientBuilder that, + required ClientSecret secret, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + that, + serializer, + ); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + secret, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 3, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientBuilderClientSecretConstMeta, + argValues: [that, secret], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientBuilderClientSecretConstMeta => + const TaskConstMeta( + debugName: "ClientBuilder_client_secret", + argNames: ["that", "secret"], + ); + + @override + Future zoeClientClientClientBuilderDbStorageDir({ + required ClientBuilder that, + required String path, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + that, + serializer, + ); + sse_encode_String(path, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 4, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientBuilderDbStorageDirConstMeta, + argValues: [that, path], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientBuilderDbStorageDirConstMeta => + const TaskConstMeta( + debugName: "ClientBuilder_db_storage_dir", + argNames: ["that", "path"], + ); + + @override + Future zoeClientClientClientBuilderDefault() { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 5, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientBuilderDefaultConstMeta, + argValues: [], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientBuilderDefaultConstMeta => + const TaskConstMeta(debugName: "ClientBuilder_default", argNames: []); + + @override + Future zoeClientClientClientBuilderEncryptionKey({ + required ClientBuilder that, + required U8Array32 key, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + that, + serializer, + ); + sse_encode_u_8_array_32(key, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 6, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientBuilderEncryptionKeyConstMeta, + argValues: [that, key], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientBuilderEncryptionKeyConstMeta => + const TaskConstMeta( + debugName: "ClientBuilder_encryption_key", + argNames: ["that", "key"], + ); + + @override + Future zoeClientClientClientBuilderMediaStorageDir({ + required ClientBuilder that, + required String mediaStorageDir, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + that, + serializer, + ); + sse_encode_String(mediaStorageDir, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 7, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientBuilderMediaStorageDirConstMeta, + argValues: [that, mediaStorageDir], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientBuilderMediaStorageDirConstMeta => + const TaskConstMeta( + debugName: "ClientBuilder_media_storage_dir", + argNames: ["that", "mediaStorageDir"], + ); + + @override + Future zoeClientClientClientBuilderServerInfo({ + required ClientBuilder that, + required VerifyingKey serverPublicKey, + required SocketAddr serverAddr, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + that, + serializer, + ); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + serverPublicKey, + serializer, + ); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + serverAddr, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 8, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientBuilderServerInfoConstMeta, + argValues: [that, serverPublicKey, serverAddr], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientBuilderServerInfoConstMeta => + const TaskConstMeta( + debugName: "ClientBuilder_server_info", + argNames: ["that", "serverPublicKey", "serverAddr"], + ); + + @override + Future zoeClientClientClientBuilderServers({ + required ClientBuilder that, + required List servers, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + that, + serializer, + ); + sse_encode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + servers, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 9, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientBuilderServersConstMeta, + argValues: [that, servers], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientBuilderServersConstMeta => + const TaskConstMeta( + debugName: "ClientBuilder_servers", + argNames: ["that", "servers"], + ); + + @override + Future zoeClientClientClientSecretFromHex({ + required String hex, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_String(hex, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 10, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kZoeClientClientClientSecretFromHexConstMeta, + argValues: [hex], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientSecretFromHexConstMeta => + const TaskConstMeta( + debugName: "ClientSecret_from_hex", + argNames: ["hex"], + ); + + @override + Future zoeClientClientClientSecretServers({ + required ClientSecret that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 11, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientSecretServersConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientSecretServersConstMeta => + const TaskConstMeta( + debugName: "ClientSecret_servers", + argNames: ["that"], + ); + + @override + Future zoeClientClientClientSecretToHex({ + required ClientSecret that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 12, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_String, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kZoeClientClientClientSecretToHexConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientSecretToHexConstMeta => + const TaskConstMeta(debugName: "ClientSecret_to_hex", argNames: ["that"]); + + @override + Future zoeClientClientClientAddRelay({ + required Client that, + required RelayAddress address, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + address, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 13, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kZoeClientClientClientAddRelayConstMeta, + argValues: [that, address], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientAddRelayConstMeta => + const TaskConstMeta( + debugName: "Client_add_relay", + argNames: ["that", "address"], + ); + + @override + Future zoeClientClientClientBuilder() { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 14, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientBuilderConstMeta, + argValues: [], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientBuilderConstMeta => + const TaskConstMeta(debugName: "Client_builder", argNames: []); + + @override + Future zoeClientClientClientClientSecret({ + required Client that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 15, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientClientSecretConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientClientSecretConstMeta => + const TaskConstMeta( + debugName: "Client_client_secret", + argNames: ["that"], + ); + + @override + Future zoeClientClientClientClientSecretHex({required Client that}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 16, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_String, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kZoeClientClientClientClientSecretHexConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientClientSecretHexConstMeta => + const TaskConstMeta( + debugName: "Client_client_secret_hex", + argNames: ["that"], + ); + + @override + Future zoeClientClientClientClose({required Client that}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 17, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientCloseConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientCloseConstMeta => + const TaskConstMeta(debugName: "Client_close", argNames: ["that"]); + + @override + Future> zoeClientClientClientGetRelayStatus({ + required Client that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 18, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kZoeClientClientClientGetRelayStatusConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientGetRelayStatusConstMeta => + const TaskConstMeta( + debugName: "Client_get_relay_status", + argNames: ["that"], + ); + + @override + Future zoeClientClientClientHasConnectedRelays({required Client that}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 19, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_bool, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientHasConnectedRelaysConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientHasConnectedRelaysConstMeta => + const TaskConstMeta( + debugName: "Client_has_connected_relays", + argNames: ["that"], + ); + + @override + Future zoeClientClientClientHasFile({ + required Client that, + required FileRef storedInfo, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + storedInfo, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 20, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_bool, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kZoeClientClientClientHasFileConstMeta, + argValues: [that, storedInfo], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientHasFileConstMeta => + const TaskConstMeta( + debugName: "Client_has_file", + argNames: ["that", "storedInfo"], + ); + + @override + Future zoeClientClientClientIdHex({required Client that}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 21, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_String, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientIdHexConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientIdHexConstMeta => + const TaskConstMeta(debugName: "Client_id_hex", argNames: ["that"]); + + @override + Future zoeClientClientClientOverallStatus({ + required Client that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 22, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_overall_connection_status, + decodeErrorData: null, + ), + constMeta: kZoeClientClientClientOverallStatusConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientOverallStatusConstMeta => + const TaskConstMeta( + debugName: "Client_overall_status", + argNames: ["that"], + ); + + @override + Future zoeClientClientClientReconnectFailedRelays({ + required Client that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 23, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_usize, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kZoeClientClientClientReconnectFailedRelaysConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientReconnectFailedRelaysConstMeta => + const TaskConstMeta( + debugName: "Client_reconnect_failed_relays", + argNames: ["that"], + ); + + @override + Future zoeClientClientClientRemoveRelay({ + required Client that, + required VerifyingKey serverPublicKey, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + serverPublicKey, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 24, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_bool, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kZoeClientClientClientRemoveRelayConstMeta, + argValues: [that, serverPublicKey], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientRemoveRelayConstMeta => + const TaskConstMeta( + debugName: "Client_remove_relay", + argNames: ["that", "serverPublicKey"], + ); + + @override + Future zoeClientClientClientRetrieveFile({ + required Client that, + required FileRef fileRef, + required PathBuf outputPath, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + fileRef, + serializer, + ); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + outputPath, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 25, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kZoeClientClientClientRetrieveFileConstMeta, + argValues: [that, fileRef, outputPath], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientRetrieveFileConstMeta => + const TaskConstMeta( + debugName: "Client_retrieve_file", + argNames: ["that", "fileRef", "outputPath"], + ); + + @override + Future zoeClientClientClientRetrieveFileBytes({ + required Client that, + required FileRef fileRef, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + fileRef, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 26, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_list_prim_u_8_strict, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kZoeClientClientClientRetrieveFileBytesConstMeta, + argValues: [that, fileRef], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientRetrieveFileBytesConstMeta => + const TaskConstMeta( + debugName: "Client_retrieve_file_bytes", + argNames: ["that", "fileRef"], + ); + + @override + Future zoeClientClientClientStoreData({ + required Client that, + required List data, + required String referenceName, + String? contentType, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + sse_encode_list_prim_u_8_loose(data, serializer); + sse_encode_String(referenceName, serializer); + sse_encode_opt_String(contentType, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 27, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kZoeClientClientClientStoreDataConstMeta, + argValues: [that, data, referenceName, contentType], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientStoreDataConstMeta => + const TaskConstMeta( + debugName: "Client_store_data", + argNames: ["that", "data", "referenceName", "contentType"], + ); + + @override + Future zoeClientClientClientStoreFile({ + required Client that, + required PathBuf filePath, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + that, + serializer, + ); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + filePath, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 28, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kZoeClientClientClientStoreFileConstMeta, + argValues: [that, filePath], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientClientStoreFileConstMeta => + const TaskConstMeta( + debugName: "Client_store_file", + argNames: ["that", "filePath"], + ); + + @override + Future zoeWireProtocolKeysKeyPairAlgorithm({ + required KeyPair that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 29, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_algorithm, + decodeErrorData: null, + ), + constMeta: kZoeWireProtocolKeysKeyPairAlgorithmConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysKeyPairAlgorithmConstMeta => + const TaskConstMeta(debugName: "KeyPair_algorithm", argNames: ["that"]); + + @override + Future zoeWireProtocolKeysKeyPairFromPem({ + required String pemString, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_String(pemString, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 30, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair, + decodeErrorData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError, + ), + constMeta: kZoeWireProtocolKeysKeyPairFromPemConstMeta, + argValues: [pemString], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysKeyPairFromPemConstMeta => + const TaskConstMeta( + debugName: "KeyPair_from_pem", + argNames: ["pemString"], + ); + + @override + Future zoeWireProtocolKeysKeyPairId({required KeyPair that}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 31, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId, + decodeErrorData: null, + ), + constMeta: kZoeWireProtocolKeysKeyPairIdConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysKeyPairIdConstMeta => + const TaskConstMeta(debugName: "KeyPair_id", argNames: ["that"]); + + @override + Future zoeWireProtocolKeysKeyPairPublicKey({ + required KeyPair that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 32, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey, + decodeErrorData: null, + ), + constMeta: kZoeWireProtocolKeysKeyPairPublicKeyConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysKeyPairPublicKeyConstMeta => + const TaskConstMeta(debugName: "KeyPair_public_key", argNames: ["that"]); + + @override + Future zoeWireProtocolKeysKeyPairSign({ + required KeyPair that, + required List message, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + that, + serializer, + ); + sse_encode_list_prim_u_8_loose(message, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 33, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature, + decodeErrorData: null, + ), + constMeta: kZoeWireProtocolKeysKeyPairSignConstMeta, + argValues: [that, message], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysKeyPairSignConstMeta => + const TaskConstMeta( + debugName: "KeyPair_sign", + argNames: ["that", "message"], + ); + + @override + Future zoeWireProtocolKeysKeyPairToPem({required KeyPair that}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 34, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_String, + decodeErrorData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError, + ), + constMeta: kZoeWireProtocolKeysKeyPairToPemConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysKeyPairToPemConstMeta => + const TaskConstMeta(debugName: "KeyPair_to_pem", argNames: ["that"]); + + @override + RelayInfo zoeClientClientRelayConnectionInfoAutoAccessorGetInfo({ + required RelayConnectionInfo that, + }) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + that, + serializer, + ); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 35)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo, + decodeErrorData: null, + ), + constMeta: + kZoeClientClientRelayConnectionInfoAutoAccessorGetInfoConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kZoeClientClientRelayConnectionInfoAutoAccessorGetInfoConstMeta => + const TaskConstMeta( + debugName: "RelayConnectionInfo_auto_accessor_get_info", + argNames: ["that"], + ); + + @override + RelayConnectionStatus + zoeClientClientRelayConnectionInfoAutoAccessorGetStatus({ + required RelayConnectionInfo that, + }) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + that, + serializer, + ); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 36)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus, + decodeErrorData: null, + ), + constMeta: + kZoeClientClientRelayConnectionInfoAutoAccessorGetStatusConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kZoeClientClientRelayConnectionInfoAutoAccessorGetStatusConstMeta => + const TaskConstMeta( + debugName: "RelayConnectionInfo_auto_accessor_get_status", + argNames: ["that"], + ); + + @override + void zoeClientClientRelayConnectionInfoAutoAccessorSetInfo({ + required RelayConnectionInfo that, + required RelayInfo info, + }) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + that, + serializer, + ); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + info, + serializer, + ); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 37)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kZoeClientClientRelayConnectionInfoAutoAccessorSetInfoConstMeta, + argValues: [that, info], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kZoeClientClientRelayConnectionInfoAutoAccessorSetInfoConstMeta => + const TaskConstMeta( + debugName: "RelayConnectionInfo_auto_accessor_set_info", + argNames: ["that", "info"], + ); + + @override + void zoeClientClientRelayConnectionInfoAutoAccessorSetStatus({ + required RelayConnectionInfo that, + required RelayConnectionStatus status, + }) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + that, + serializer, + ); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + status, + serializer, + ); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 38)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kZoeClientClientRelayConnectionInfoAutoAccessorSetStatusConstMeta, + argValues: [that, status], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kZoeClientClientRelayConnectionInfoAutoAccessorSetStatusConstMeta => + const TaskConstMeta( + debugName: "RelayConnectionInfo_auto_accessor_set_status", + argNames: ["that", "status"], + ); + + @override + RelayAddress zoeClientClientRelayInfoAutoAccessorGetRelayAddress({ + required RelayInfo that, + }) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + that, + serializer, + ); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 39)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress, + decodeErrorData: null, + ), + constMeta: + kZoeClientClientRelayInfoAutoAccessorGetRelayAddressConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kZoeClientClientRelayInfoAutoAccessorGetRelayAddressConstMeta => + const TaskConstMeta( + debugName: "RelayInfo_auto_accessor_get_relay_address", + argNames: ["that"], + ); + + @override + KeyId zoeClientClientRelayInfoAutoAccessorGetRelayId({ + required RelayInfo that, + }) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + that, + serializer, + ); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 40)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId, + decodeErrorData: null, + ), + constMeta: kZoeClientClientRelayInfoAutoAccessorGetRelayIdConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientRelayInfoAutoAccessorGetRelayIdConstMeta => + const TaskConstMeta( + debugName: "RelayInfo_auto_accessor_get_relay_id", + argNames: ["that"], + ); + + @override + void zoeClientClientRelayInfoAutoAccessorSetRelayAddress({ + required RelayInfo that, + required RelayAddress relayAddress, + }) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + that, + serializer, + ); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + relayAddress, + serializer, + ); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 41)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kZoeClientClientRelayInfoAutoAccessorSetRelayAddressConstMeta, + argValues: [that, relayAddress], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kZoeClientClientRelayInfoAutoAccessorSetRelayAddressConstMeta => + const TaskConstMeta( + debugName: "RelayInfo_auto_accessor_set_relay_address", + argNames: ["that", "relayAddress"], + ); + + @override + void zoeClientClientRelayInfoAutoAccessorSetRelayId({ + required RelayInfo that, + required KeyId relayId, + }) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + that, + serializer, + ); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + relayId, + serializer, + ); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 42)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kZoeClientClientRelayInfoAutoAccessorSetRelayIdConstMeta, + argValues: [that, relayId], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientClientRelayInfoAutoAccessorSetRelayIdConstMeta => + const TaskConstMeta( + debugName: "RelayInfo_auto_accessor_set_relay_id", + argNames: ["that", "relayId"], + ); + + @override + RelayAddress zoeClientClientRelayStatusUpdateAutoAccessorGetRelayAddress({ + required RelayStatusUpdate that, + }) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + that, + serializer, + ); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 43)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress, + decodeErrorData: null, + ), + constMeta: + kZoeClientClientRelayStatusUpdateAutoAccessorGetRelayAddressConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kZoeClientClientRelayStatusUpdateAutoAccessorGetRelayAddressConstMeta => + const TaskConstMeta( + debugName: "RelayStatusUpdate_auto_accessor_get_relay_address", + argNames: ["that"], + ); + + @override + KeyId zoeClientClientRelayStatusUpdateAutoAccessorGetRelayId({ + required RelayStatusUpdate that, + }) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + that, + serializer, + ); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 44)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId, + decodeErrorData: null, + ), + constMeta: + kZoeClientClientRelayStatusUpdateAutoAccessorGetRelayIdConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kZoeClientClientRelayStatusUpdateAutoAccessorGetRelayIdConstMeta => + const TaskConstMeta( + debugName: "RelayStatusUpdate_auto_accessor_get_relay_id", + argNames: ["that"], + ); + + @override + RelayConnectionStatus zoeClientClientRelayStatusUpdateAutoAccessorGetStatus({ + required RelayStatusUpdate that, + }) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + that, + serializer, + ); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 45)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus, + decodeErrorData: null, + ), + constMeta: + kZoeClientClientRelayStatusUpdateAutoAccessorGetStatusConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kZoeClientClientRelayStatusUpdateAutoAccessorGetStatusConstMeta => + const TaskConstMeta( + debugName: "RelayStatusUpdate_auto_accessor_get_status", + argNames: ["that"], + ); + + @override + void zoeClientClientRelayStatusUpdateAutoAccessorSetRelayAddress({ + required RelayStatusUpdate that, + required RelayAddress relayAddress, + }) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + that, + serializer, + ); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + relayAddress, + serializer, + ); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 46)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kZoeClientClientRelayStatusUpdateAutoAccessorSetRelayAddressConstMeta, + argValues: [that, relayAddress], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kZoeClientClientRelayStatusUpdateAutoAccessorSetRelayAddressConstMeta => + const TaskConstMeta( + debugName: "RelayStatusUpdate_auto_accessor_set_relay_address", + argNames: ["that", "relayAddress"], + ); + + @override + void zoeClientClientRelayStatusUpdateAutoAccessorSetRelayId({ + required RelayStatusUpdate that, + required KeyId relayId, + }) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + that, + serializer, + ); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + relayId, + serializer, + ); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 47)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kZoeClientClientRelayStatusUpdateAutoAccessorSetRelayIdConstMeta, + argValues: [that, relayId], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kZoeClientClientRelayStatusUpdateAutoAccessorSetRelayIdConstMeta => + const TaskConstMeta( + debugName: "RelayStatusUpdate_auto_accessor_set_relay_id", + argNames: ["that", "relayId"], + ); + + @override + void zoeClientClientRelayStatusUpdateAutoAccessorSetStatus({ + required RelayStatusUpdate that, + required RelayConnectionStatus status, + }) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + that, + serializer, + ); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + status, + serializer, + ); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 48)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kZoeClientClientRelayStatusUpdateAutoAccessorSetStatusConstMeta, + argValues: [that, status], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kZoeClientClientRelayStatusUpdateAutoAccessorSetStatusConstMeta => + const TaskConstMeta( + debugName: "RelayStatusUpdate_auto_accessor_set_status", + argNames: ["that", "status"], + ); + + @override + Future zoeWireProtocolKeysSignatureEncode({ + required Signature that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 49, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_list_prim_u_8_strict, + decodeErrorData: null, + ), + constMeta: kZoeWireProtocolKeysSignatureEncodeConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysSignatureEncodeConstMeta => + const TaskConstMeta(debugName: "Signature_encode", argNames: ["that"]); + + @override + Future zoeWireProtocolKeysSignatureId({required Signature that}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 50, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId, + decodeErrorData: null, + ), + constMeta: kZoeWireProtocolKeysSignatureIdConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysSignatureIdConstMeta => + const TaskConstMeta(debugName: "Signature_id", argNames: ["that"]); + + @override + Future zoeWireProtocolKeysSigningKeySign({ + required SigningKey that, + required List message, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + that, + serializer, + ); + sse_encode_list_prim_u_8_loose(message, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 51, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature, + decodeErrorData: null, + ), + constMeta: kZoeWireProtocolKeysSigningKeySignConstMeta, + argValues: [that, message], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysSigningKeySignConstMeta => + const TaskConstMeta( + debugName: "SigningKey_sign", + argNames: ["that", "message"], + ); + + @override + Future zoeWireProtocolKeysVerifyingKeyAlgorithm({ + required VerifyingKey that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 52, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_algorithm, + decodeErrorData: null, + ), + constMeta: kZoeWireProtocolKeysVerifyingKeyAlgorithmConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysVerifyingKeyAlgorithmConstMeta => + const TaskConstMeta( + debugName: "VerifyingKey_algorithm", + argNames: ["that"], + ); + + @override + Future zoeWireProtocolKeysVerifyingKeyEncode({ + required VerifyingKey that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 53, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_list_prim_u_8_strict, + decodeErrorData: null, + ), + constMeta: kZoeWireProtocolKeysVerifyingKeyEncodeConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysVerifyingKeyEncodeConstMeta => + const TaskConstMeta(debugName: "VerifyingKey_encode", argNames: ["that"]); + + @override + Future zoeWireProtocolKeysVerifyingKeyFromHex({ + required String hex, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_String(hex, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 54, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey, + decodeErrorData: sse_decode_String, + ), + constMeta: kZoeWireProtocolKeysVerifyingKeyFromHexConstMeta, + argValues: [hex], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysVerifyingKeyFromHexConstMeta => + const TaskConstMeta( + debugName: "VerifyingKey_from_hex", + argNames: ["hex"], + ); + + @override + Future zoeWireProtocolKeysVerifyingKeyFromPem({ + required String pemString, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_String(pemString, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 55, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey, + decodeErrorData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError, + ), + constMeta: kZoeWireProtocolKeysVerifyingKeyFromPemConstMeta, + argValues: [pemString], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysVerifyingKeyFromPemConstMeta => + const TaskConstMeta( + debugName: "VerifyingKey_from_pem", + argNames: ["pemString"], + ); + + @override + Future zoeWireProtocolKeysVerifyingKeyId({ + required VerifyingKey that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 56, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId, + decodeErrorData: null, + ), + constMeta: kZoeWireProtocolKeysVerifyingKeyIdConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysVerifyingKeyIdConstMeta => + const TaskConstMeta(debugName: "VerifyingKey_id", argNames: ["that"]); + + @override + Future zoeWireProtocolKeysVerifyingKeyToBytes({ + required VerifyingKey that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 57, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_list_prim_u_8_strict, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: kZoeWireProtocolKeysVerifyingKeyToBytesConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysVerifyingKeyToBytesConstMeta => + const TaskConstMeta( + debugName: "VerifyingKey_to_bytes", + argNames: ["that"], + ); + + @override + Future zoeWireProtocolKeysVerifyingKeyToPem({ + required VerifyingKey that, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + that, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 58, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_String, + decodeErrorData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError, + ), + constMeta: kZoeWireProtocolKeysVerifyingKeyToPemConstMeta, + argValues: [that], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysVerifyingKeyToPemConstMeta => + const TaskConstMeta(debugName: "VerifyingKey_to_pem", argNames: ["that"]); + + @override + Future zoeWireProtocolKeysVerifyingKeyVerify({ + required VerifyingKey that, + required List message, + required Signature signature, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + that, + serializer, + ); + sse_encode_list_prim_u_8_loose(message, serializer); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + signature, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 59, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError, + ), + constMeta: kZoeWireProtocolKeysVerifyingKeyVerifyConstMeta, + argValues: [that, message, signature], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeWireProtocolKeysVerifyingKeyVerifyConstMeta => + const TaskConstMeta( + debugName: "VerifyingKey_verify", + argNames: ["that", "message", "signature"], + ); + + @override + Future zoeClientFrbApiCreateRelayAddressWithHostname({ + required String serverKeyHex, + required String hostname, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_String(serverKeyHex, serializer); + sse_encode_String(hostname, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 60, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress, + decodeErrorData: sse_decode_String, + ), + constMeta: kZoeClientFrbApiCreateRelayAddressWithHostnameConstMeta, + argValues: [serverKeyHex, hostname], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientFrbApiCreateRelayAddressWithHostnameConstMeta => + const TaskConstMeta( + debugName: "create_relay_address_with_hostname", + argNames: ["serverKeyHex", "hostname"], + ); + + @override + Future zoeClientFrbApiCreateSigningKeyRandom() { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 61, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_String, + decodeErrorData: null, + ), + constMeta: kZoeClientFrbApiCreateSigningKeyRandomConstMeta, + argValues: [], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientFrbApiCreateSigningKeyRandomConstMeta => + const TaskConstMeta(debugName: "create_signing_key_random", argNames: []); + + @override + Future zoeClientFrbApiCreateSocketAddr({ + required String ip, + required int port, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_String(ip, serializer); + sse_encode_u_16(port, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 62, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr, + decodeErrorData: sse_decode_String, + ), + constMeta: kZoeClientFrbApiCreateSocketAddrConstMeta, + argValues: [ip, port], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientFrbApiCreateSocketAddrConstMeta => + const TaskConstMeta( + debugName: "create_socket_addr", + argNames: ["ip", "port"], + ); + + @override + Future zoeClientFrbApiFrbInit() { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 63, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kZoeClientFrbApiFrbInitConstMeta, + argValues: [], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientFrbApiFrbInitConstMeta => + const TaskConstMeta(debugName: "frb_init", argNames: []); + + @override + String crateApiSimpleGreet({required String name}) { + return handler.executeSync( + SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_String(name, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 64)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_String, + decodeErrorData: null, + ), + constMeta: kCrateApiSimpleGreetConstMeta, + argValues: [name], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kCrateApiSimpleGreetConstMeta => + const TaskConstMeta(debugName: "greet", argNames: ["name"]); + + @override + Future crateApiSimpleInitApp() { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 65, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kCrateApiSimpleInitAppConstMeta, + argValues: [], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kCrateApiSimpleInitAppConstMeta => + const TaskConstMeta(debugName: "init_app", argNames: []); + + @override + Stream crateApiClientOverallStatusStream({ + required Client client, + }) { + final sink = RustStreamSink(); + unawaited( + handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + client, + serializer, + ); + sse_encode_StreamSink_overall_connection_status_Sse( + sink, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 66, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kCrateApiClientOverallStatusStreamConstMeta, + argValues: [client, sink], + apiImpl: this, + ), + ), + ); + return sink.stream; + } + + TaskConstMeta get kCrateApiClientOverallStatusStreamConstMeta => + const TaskConstMeta( + debugName: "overall_status_stream", + argNames: ["client", "sink"], + ); + + @override + Future zoeClientFrbApiPrepareClientForSystemsTest({ + required Client client, + required String serverAddress, + required String serverKeyHex, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + client, + serializer, + ); + sse_encode_String(serverAddress, serializer); + sse_encode_String(serverKeyHex, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 67, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_bool, + decodeErrorData: sse_decode_String, + ), + constMeta: kZoeClientFrbApiPrepareClientForSystemsTestConstMeta, + argValues: [client, serverAddress, serverKeyHex], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientFrbApiPrepareClientForSystemsTestConstMeta => + const TaskConstMeta( + debugName: "prepare_client_for_systems_test", + argNames: ["client", "serverAddress", "serverKeyHex"], + ); + + @override + Future zoeClientUtilResolveToSocketAddr({required String s}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_String(s, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 68, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr, + decodeErrorData: sse_decode_String, + ), + constMeta: kZoeClientUtilResolveToSocketAddrConstMeta, + argValues: [s], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientUtilResolveToSocketAddrConstMeta => + const TaskConstMeta(debugName: "resolve_to_socket_addr", argNames: ["s"]); + + @override + Stream crateApiSystemTestRunSystemTests({ + required Client client, + }) { + final sink = RustStreamSink(); + unawaited( + handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + client, + serializer, + ); + sse_encode_StreamSink_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults_Sse( + sink, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 69, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kCrateApiSystemTestRunSystemTestsConstMeta, + argValues: [client, sink], + apiImpl: this, + ), + ), + ); + return sink.stream; + } + + TaskConstMeta get kCrateApiSystemTestRunSystemTestsConstMeta => + const TaskConstMeta( + debugName: "run_system_tests", + argNames: ["client", "sink"], + ); + + @override + Future zoeClientFrbApiSigningKeyFromHex({required String hex}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_String(hex, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 70, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_String, + decodeErrorData: sse_decode_String, + ), + constMeta: kZoeClientFrbApiSigningKeyFromHexConstMeta, + argValues: [hex], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientFrbApiSigningKeyFromHexConstMeta => + const TaskConstMeta(debugName: "signing_key_from_hex", argNames: ["hex"]); + + @override + Future zoeClientFrbApiSigningKeyToVerifyingKey({ + required String signingKeyHex, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_String(signingKeyHex, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 71, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_String, + decodeErrorData: sse_decode_String, + ), + constMeta: kZoeClientFrbApiSigningKeyToVerifyingKeyConstMeta, + argValues: [signingKeyHex], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientFrbApiSigningKeyToVerifyingKeyConstMeta => + const TaskConstMeta( + debugName: "signing_key_to_verifying_key", + argNames: ["signingKeyHex"], + ); + + @override + Future zoeClientFrbApiSocketAddrIp({required SocketAddr addr}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + addr, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 72, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_String, + decodeErrorData: null, + ), + constMeta: kZoeClientFrbApiSocketAddrIpConstMeta, + argValues: [addr], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientFrbApiSocketAddrIpConstMeta => + const TaskConstMeta(debugName: "socket_addr_ip", argNames: ["addr"]); + + @override + Future zoeClientFrbApiSocketAddrPort({required SocketAddr addr}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + addr, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 73, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_u_16, + decodeErrorData: null, + ), + constMeta: kZoeClientFrbApiSocketAddrPortConstMeta, + argValues: [addr], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientFrbApiSocketAddrPortConstMeta => + const TaskConstMeta(debugName: "socket_addr_port", argNames: ["addr"]); + + @override + Future zoeClientFrbApiSocketAddrToString({required SocketAddr addr}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + addr, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 74, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_String, + decodeErrorData: null, + ), + constMeta: kZoeClientFrbApiSocketAddrToStringConstMeta, + argValues: [addr], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientFrbApiSocketAddrToStringConstMeta => + const TaskConstMeta( + debugName: "socket_addr_to_string", + argNames: ["addr"], + ); + + @override + Future crateApiSystemTestSystemCheckResultsCategoryHasFailures({ + required SystemCheckResults results, + required TestCategory category, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + results, + serializer, + ); + sse_encode_test_category(category, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 75, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_bool, + decodeErrorData: null, + ), + constMeta: + kCrateApiSystemTestSystemCheckResultsCategoryHasFailuresConstMeta, + argValues: [results, category], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kCrateApiSystemTestSystemCheckResultsCategoryHasFailuresConstMeta => + const TaskConstMeta( + debugName: "system_check_results_category_has_failures", + argNames: ["results", "category"], + ); + + @override + Future crateApiSystemTestSystemCheckResultsFailedCount({ + required SystemCheckResults results, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + results, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 76, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_u_32, + decodeErrorData: null, + ), + constMeta: kCrateApiSystemTestSystemCheckResultsFailedCountConstMeta, + argValues: [results], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kCrateApiSystemTestSystemCheckResultsFailedCountConstMeta => + const TaskConstMeta( + debugName: "system_check_results_failed_count", + argNames: ["results"], + ); + + @override + Future> crateApiSystemTestSystemCheckResultsGetCategories({ + required SystemCheckResults results, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + results, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 77, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_list_test_category, + decodeErrorData: null, + ), + constMeta: kCrateApiSystemTestSystemCheckResultsGetCategoriesConstMeta, + argValues: [results], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kCrateApiSystemTestSystemCheckResultsGetCategoriesConstMeta => + const TaskConstMeta( + debugName: "system_check_results_get_categories", + argNames: ["results"], + ); + + @override + Future> + crateApiSystemTestSystemCheckResultsGetTestsForCategory({ + required SystemCheckResults results, + required TestCategory category, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + results, + serializer, + ); + sse_encode_test_category(category, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 78, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo, + decodeErrorData: null, + ), + constMeta: + kCrateApiSystemTestSystemCheckResultsGetTestsForCategoryConstMeta, + argValues: [results, category], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kCrateApiSystemTestSystemCheckResultsGetTestsForCategoryConstMeta => + const TaskConstMeta( + debugName: "system_check_results_get_tests_for_category", + argNames: ["results", "category"], + ); + + @override + Future crateApiSystemTestSystemCheckResultsIsSuccess({ + required SystemCheckResults results, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + results, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 79, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_bool, + decodeErrorData: null, + ), + constMeta: kCrateApiSystemTestSystemCheckResultsIsSuccessConstMeta, + argValues: [results], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kCrateApiSystemTestSystemCheckResultsIsSuccessConstMeta => + const TaskConstMeta( + debugName: "system_check_results_is_success", + argNames: ["results"], + ); + + @override + Future crateApiSystemTestSystemCheckResultsPassedCount({ + required SystemCheckResults results, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + results, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 80, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_u_32, + decodeErrorData: null, + ), + constMeta: kCrateApiSystemTestSystemCheckResultsPassedCountConstMeta, + argValues: [results], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kCrateApiSystemTestSystemCheckResultsPassedCountConstMeta => + const TaskConstMeta( + debugName: "system_check_results_passed_count", + argNames: ["results"], + ); + + @override + Future crateApiSystemTestSystemCheckResultsTotalCount({ + required SystemCheckResults results, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + results, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 81, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_u_32, + decodeErrorData: null, + ), + constMeta: kCrateApiSystemTestSystemCheckResultsTotalCountConstMeta, + argValues: [results], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kCrateApiSystemTestSystemCheckResultsTotalCountConstMeta => + const TaskConstMeta( + debugName: "system_check_results_total_count", + argNames: ["results"], + ); + + @override + Future crateApiSystemTestSystemCheckResultsTotalDurationMs({ + required SystemCheckResults results, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + results, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 82, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_u_64, + decodeErrorData: null, + ), + constMeta: + kCrateApiSystemTestSystemCheckResultsTotalDurationMsConstMeta, + argValues: [results], + apiImpl: this, + ), + ); + } + + TaskConstMeta + get kCrateApiSystemTestSystemCheckResultsTotalDurationMsConstMeta => + const TaskConstMeta( + debugName: "system_check_results_total_duration_ms", + argNames: ["results"], + ); + + @override + Future crateApiSystemTestTestInfoDurationMs({ + required TestInfo test, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + test, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 83, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_u_64, + decodeErrorData: null, + ), + constMeta: kCrateApiSystemTestTestInfoDurationMsConstMeta, + argValues: [test], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kCrateApiSystemTestTestInfoDurationMsConstMeta => + const TaskConstMeta( + debugName: "test_info_duration_ms", + argNames: ["test"], + ); + + @override + Future> crateApiSystemTestTestInfoGetDetails({ + required TestInfo test, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + test, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 84, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_list_String, + decodeErrorData: null, + ), + constMeta: kCrateApiSystemTestTestInfoGetDetailsConstMeta, + argValues: [test], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kCrateApiSystemTestTestInfoGetDetailsConstMeta => + const TaskConstMeta( + debugName: "test_info_get_details", + argNames: ["test"], + ); + + @override + Future crateApiSystemTestTestInfoGetError({required TestInfo test}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + test, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 85, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_opt_String, + decodeErrorData: null, + ), + constMeta: kCrateApiSystemTestTestInfoGetErrorConstMeta, + argValues: [test], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kCrateApiSystemTestTestInfoGetErrorConstMeta => + const TaskConstMeta(debugName: "test_info_get_error", argNames: ["test"]); + + @override + Future crateApiSystemTestTestInfoGetName({required TestInfo test}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + test, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 86, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_String, + decodeErrorData: null, + ), + constMeta: kCrateApiSystemTestTestInfoGetNameConstMeta, + argValues: [test], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kCrateApiSystemTestTestInfoGetNameConstMeta => + const TaskConstMeta(debugName: "test_info_get_name", argNames: ["test"]); + + @override + Future crateApiSystemTestTestInfoIsFailed({required TestInfo test}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + test, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 87, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_bool, + decodeErrorData: null, + ), + constMeta: kCrateApiSystemTestTestInfoIsFailedConstMeta, + argValues: [test], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kCrateApiSystemTestTestInfoIsFailedConstMeta => + const TaskConstMeta(debugName: "test_info_is_failed", argNames: ["test"]); + + @override + Future crateApiSystemTestTestInfoIsPassed({required TestInfo test}) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + test, + serializer, + ); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 88, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_bool, + decodeErrorData: null, + ), + constMeta: kCrateApiSystemTestTestInfoIsPassedConstMeta, + argValues: [test], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kCrateApiSystemTestTestInfoIsPassedConstMeta => + const TaskConstMeta(debugName: "test_info_is_passed", argNames: ["test"]); + + @override + Future zoeClientFrbApiVerifyingKeyFromHex({ + required String hex, + }) { + return handler.executeNormal( + NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_String(hex, serializer); + pdeCallFfi( + generalizedFrbRustBinding, + serializer, + funcId: 89, + port: port_, + ); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey, + decodeErrorData: sse_decode_String, + ), + constMeta: kZoeClientFrbApiVerifyingKeyFromHexConstMeta, + argValues: [hex], + apiImpl: this, + ), + ); + } + + TaskConstMeta get kZoeClientFrbApiVerifyingKeyFromHexConstMeta => + const TaskConstMeta( + debugName: "verifying_key_from_hex", + argNames: ["hex"], + ); + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_Client => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_Client => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_ClientBuilder => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_ClientBuilder => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_ClientSecret => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_ClientSecret => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_FileRef => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_FileRef => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_KeyId => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_KeyId => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_KeyPair => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_KeyPair => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_KeyPairError => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_KeyPairError => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_PathBuf => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_PathBuf => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_RelayAddress => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_RelayAddress => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_RelayConnectionInfo => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_RelayConnectionInfo => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_RelayConnectionStatus => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_RelayConnectionStatus => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_RelayInfo => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_RelayInfo => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_RelayStatusUpdate => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_RelayStatusUpdate => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_Signature => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_Signature => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_SigningKey => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_SigningKey => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_SocketAddr => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_SocketAddr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_SystemCheckResults => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_SystemCheckResults => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_TestInfo => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_TestInfo => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_VerifyError => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_VerifyError => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_VerifyingKey => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_VerifyingKey => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_VerifyingKeyError => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_VerifyingKeyError => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError; + + @protected + AnyhowException dco_decode_AnyhowException(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AnyhowException(raw as String); + } + + @protected + Client + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ClientImpl.frbInternalDcoDecode(raw as List); + } + + @protected + ClientBuilder + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ClientBuilderImpl.frbInternalDcoDecode(raw as List); + } + + @protected + ClientSecret + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ClientSecretImpl.frbInternalDcoDecode(raw as List); + } + + @protected + FileRef + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return FileRefImpl.frbInternalDcoDecode(raw as List); + } + + @protected + KeyId + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return KeyIdImpl.frbInternalDcoDecode(raw as List); + } + + @protected + KeyPair + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return KeyPairImpl.frbInternalDcoDecode(raw as List); + } + + @protected + KeyPairError + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return KeyPairErrorImpl.frbInternalDcoDecode(raw as List); + } + + @protected + PathBuf + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return PathBufImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayAddress + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayAddressImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayConnectionInfo + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayConnectionInfoImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayConnectionStatus + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayConnectionStatusImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayInfo + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayInfoImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayStatusUpdate + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayStatusUpdateImpl.frbInternalDcoDecode(raw as List); + } + + @protected + Signature + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return SignatureImpl.frbInternalDcoDecode(raw as List); + } + + @protected + SigningKey + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return SigningKeyImpl.frbInternalDcoDecode(raw as List); + } + + @protected + SocketAddr + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return SocketAddrImpl.frbInternalDcoDecode(raw as List); + } + + @protected + SystemCheckResults + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return SystemCheckResultsImpl.frbInternalDcoDecode(raw as List); + } + + @protected + TestInfo + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return TestInfoImpl.frbInternalDcoDecode(raw as List); + } + + @protected + VerifyError + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return VerifyErrorImpl.frbInternalDcoDecode(raw as List); + } + + @protected + VerifyingKey + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return VerifyingKeyImpl.frbInternalDcoDecode(raw as List); + } + + @protected + VerifyingKeyError + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return VerifyingKeyErrorImpl.frbInternalDcoDecode(raw as List); + } + + @protected + ClientBuilder + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ClientBuilderImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayConnectionInfo + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayConnectionInfoImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayInfo + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayInfoImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayStatusUpdate + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayStatusUpdateImpl.frbInternalDcoDecode(raw as List); + } + + @protected + Client + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ClientImpl.frbInternalDcoDecode(raw as List); + } + + @protected + ClientSecret + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ClientSecretImpl.frbInternalDcoDecode(raw as List); + } + + @protected + FileRef + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return FileRefImpl.frbInternalDcoDecode(raw as List); + } + + @protected + KeyPair + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return KeyPairImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayConnectionInfo + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayConnectionInfoImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayInfo + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayInfoImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayStatusUpdate + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayStatusUpdateImpl.frbInternalDcoDecode(raw as List); + } + + @protected + Signature + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return SignatureImpl.frbInternalDcoDecode(raw as List); + } + + @protected + SigningKey + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return SigningKeyImpl.frbInternalDcoDecode(raw as List); + } + + @protected + SocketAddr + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return SocketAddrImpl.frbInternalDcoDecode(raw as List); + } + + @protected + SystemCheckResults + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return SystemCheckResultsImpl.frbInternalDcoDecode(raw as List); + } + + @protected + TestInfo + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return TestInfoImpl.frbInternalDcoDecode(raw as List); + } + + @protected + VerifyingKey + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return VerifyingKeyImpl.frbInternalDcoDecode(raw as List); + } + + @protected + Client + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ClientImpl.frbInternalDcoDecode(raw as List); + } + + @protected + ClientBuilder + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ClientBuilderImpl.frbInternalDcoDecode(raw as List); + } + + @protected + ClientSecret + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ClientSecretImpl.frbInternalDcoDecode(raw as List); + } + + @protected + FileRef + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return FileRefImpl.frbInternalDcoDecode(raw as List); + } + + @protected + KeyId + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return KeyIdImpl.frbInternalDcoDecode(raw as List); + } + + @protected + KeyPair + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return KeyPairImpl.frbInternalDcoDecode(raw as List); + } + + @protected + KeyPairError + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return KeyPairErrorImpl.frbInternalDcoDecode(raw as List); + } + + @protected + PathBuf + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return PathBufImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayAddress + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayAddressImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayConnectionInfo + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayConnectionInfoImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayConnectionStatus + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayConnectionStatusImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayInfo + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayInfoImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RelayStatusUpdate + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return RelayStatusUpdateImpl.frbInternalDcoDecode(raw as List); + } + + @protected + Signature + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return SignatureImpl.frbInternalDcoDecode(raw as List); + } + + @protected + SigningKey + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return SigningKeyImpl.frbInternalDcoDecode(raw as List); + } + + @protected + SocketAddr + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return SocketAddrImpl.frbInternalDcoDecode(raw as List); + } + + @protected + SystemCheckResults + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return SystemCheckResultsImpl.frbInternalDcoDecode(raw as List); + } + + @protected + TestInfo + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return TestInfoImpl.frbInternalDcoDecode(raw as List); + } + + @protected + VerifyError + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return VerifyErrorImpl.frbInternalDcoDecode(raw as List); + } + + @protected + VerifyingKey + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return VerifyingKeyImpl.frbInternalDcoDecode(raw as List); + } + + @protected + VerifyingKeyError + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return VerifyingKeyErrorImpl.frbInternalDcoDecode(raw as List); + } + + @protected + RustStreamSink + dco_decode_StreamSink_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults_Sse( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + throw UnimplementedError(); + } + + @protected + RustStreamSink + dco_decode_StreamSink_overall_connection_status_Sse(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + throw UnimplementedError(); + } + + @protected + String dco_decode_String(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as String; + } + + @protected + Algorithm dco_decode_algorithm(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return Algorithm.values[raw as int]; + } + + @protected + bool dco_decode_bool(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as bool; + } + + @protected + int dco_decode_i_32(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as int; + } + + @protected + List + dco_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return (raw as List) + .map( + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress, + ) + .toList(); + } + + @protected + List + dco_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return (raw as List) + .map( + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo, + ) + .toList(); + } + + @protected + List + dco_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + dynamic raw, + ) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return (raw as List) + .map( + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo, + ) + .toList(); + } + + @protected + List dco_decode_list_String(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return (raw as List).map(dco_decode_String).toList(); + } + + @protected + List dco_decode_list_prim_u_8_loose(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as List; + } + + @protected + Uint8List dco_decode_list_prim_u_8_strict(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as Uint8List; + } + + @protected + List dco_decode_list_test_category(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return (raw as List).map(dco_decode_test_category).toList(); + } + + @protected + String? dco_decode_opt_String(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw == null ? null : dco_decode_String(raw); + } + + @protected + OverallConnectionStatus dco_decode_overall_connection_status(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 3) + throw Exception('unexpected arr length: expect 3 but see ${arr.length}'); + return OverallConnectionStatus( + isConnected: dco_decode_bool(arr[0]), + connectedCount: dco_decode_usize(arr[1]), + totalCount: dco_decode_usize(arr[2]), + ); + } + + @protected + TestCategory dco_decode_test_category(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return TestCategory.values[raw as int]; + } + + @protected + int dco_decode_u_16(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as int; + } + + @protected + int dco_decode_u_32(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as int; + } + + @protected + BigInt dco_decode_u_64(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return dcoDecodeU64(raw); + } + + @protected + int dco_decode_u_8(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as int; + } + + @protected + U8Array32 dco_decode_u_8_array_32(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return U8Array32(dco_decode_list_prim_u_8_strict(raw)); + } + + @protected + void dco_decode_unit(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return; + } + + @protected + BigInt dco_decode_usize(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return dcoDecodeU64(raw); + } + + @protected + AnyhowException sse_decode_AnyhowException(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_String(deserializer); + return AnyhowException(inner); + } + + @protected + Client + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ClientImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + ClientBuilder + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ClientBuilderImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + ClientSecret + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ClientSecretImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + FileRef + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return FileRefImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + KeyId + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return KeyIdImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + KeyPair + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return KeyPairImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + KeyPairError + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return KeyPairErrorImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + PathBuf + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return PathBufImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayAddress + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayAddressImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayConnectionInfo + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayConnectionInfoImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayConnectionStatus + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayConnectionStatusImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayInfo + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayInfoImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayStatusUpdate + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayStatusUpdateImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + Signature + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return SignatureImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + SigningKey + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return SigningKeyImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + SocketAddr + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return SocketAddrImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + SystemCheckResults + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return SystemCheckResultsImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + TestInfo + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return TestInfoImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + VerifyError + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return VerifyErrorImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + VerifyingKey + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return VerifyingKeyImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + VerifyingKeyError + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return VerifyingKeyErrorImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + ClientBuilder + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ClientBuilderImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayConnectionInfo + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayConnectionInfoImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayInfo + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayInfoImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayStatusUpdate + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayStatusUpdateImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + Client + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ClientImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + ClientSecret + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ClientSecretImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + FileRef + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return FileRefImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + KeyPair + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return KeyPairImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayConnectionInfo + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayConnectionInfoImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayInfo + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayInfoImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayStatusUpdate + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayStatusUpdateImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + Signature + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return SignatureImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + SigningKey + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return SigningKeyImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + SocketAddr + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return SocketAddrImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + SystemCheckResults + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return SystemCheckResultsImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + TestInfo + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return TestInfoImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + VerifyingKey + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return VerifyingKeyImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + Client + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ClientImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + ClientBuilder + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ClientBuilderImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + ClientSecret + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ClientSecretImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + FileRef + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return FileRefImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + KeyId + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return KeyIdImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + KeyPair + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return KeyPairImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + KeyPairError + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return KeyPairErrorImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + PathBuf + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return PathBufImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayAddress + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayAddressImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayConnectionInfo + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayConnectionInfoImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayConnectionStatus + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayConnectionStatusImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayInfo + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayInfoImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RelayStatusUpdate + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return RelayStatusUpdateImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + Signature + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return SignatureImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + SigningKey + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return SigningKeyImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + SocketAddr + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return SocketAddrImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + SystemCheckResults + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return SystemCheckResultsImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + TestInfo + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return TestInfoImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + VerifyError + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return VerifyErrorImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + VerifyingKey + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return VerifyingKeyImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + VerifyingKeyError + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + return VerifyingKeyErrorImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), + sse_decode_i_32(deserializer), + ); + } + + @protected + RustStreamSink + sse_decode_StreamSink_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults_Sse( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + throw UnimplementedError('Unreachable ()'); + } + + @protected + RustStreamSink + sse_decode_StreamSink_overall_connection_status_Sse( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + throw UnimplementedError('Unreachable ()'); + } + + @protected + String sse_decode_String(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_list_prim_u_8_strict(deserializer); + return utf8.decoder.convert(inner); + } + + @protected + Algorithm sse_decode_algorithm(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_i_32(deserializer); + return Algorithm.values[inner]; + } + + @protected + bool sse_decode_bool(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getUint8() != 0; + } + + @protected + int sse_decode_i_32(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getInt32(); + } + + @protected + List + sse_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + + var len_ = sse_decode_i_32(deserializer); + var ans_ = []; + for (var idx_ = 0; idx_ < len_; ++idx_) { + ans_.add( + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + deserializer, + ), + ); + } + return ans_; + } + + @protected + List + sse_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + + var len_ = sse_decode_i_32(deserializer); + var ans_ = []; + for (var idx_ = 0; idx_ < len_; ++idx_) { + ans_.add( + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + deserializer, + ), + ); + } + return ans_; + } + + @protected + List + sse_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + + var len_ = sse_decode_i_32(deserializer); + var ans_ = []; + for (var idx_ = 0; idx_ < len_; ++idx_) { + ans_.add( + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + deserializer, + ), + ); + } + return ans_; + } + + @protected + List sse_decode_list_String(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + + var len_ = sse_decode_i_32(deserializer); + var ans_ = []; + for (var idx_ = 0; idx_ < len_; ++idx_) { + ans_.add(sse_decode_String(deserializer)); + } + return ans_; + } + + @protected + List sse_decode_list_prim_u_8_loose(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var len_ = sse_decode_i_32(deserializer); + return deserializer.buffer.getUint8List(len_); + } + + @protected + Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var len_ = sse_decode_i_32(deserializer); + return deserializer.buffer.getUint8List(len_); + } + + @protected + List sse_decode_list_test_category( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + + var len_ = sse_decode_i_32(deserializer); + var ans_ = []; + for (var idx_ = 0; idx_ < len_; ++idx_) { + ans_.add(sse_decode_test_category(deserializer)); + } + return ans_; + } + + @protected + String? sse_decode_opt_String(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + + if (sse_decode_bool(deserializer)) { + return (sse_decode_String(deserializer)); + } else { + return null; + } + } + + @protected + OverallConnectionStatus sse_decode_overall_connection_status( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_isConnected = sse_decode_bool(deserializer); + var var_connectedCount = sse_decode_usize(deserializer); + var var_totalCount = sse_decode_usize(deserializer); + return OverallConnectionStatus( + isConnected: var_isConnected, + connectedCount: var_connectedCount, + totalCount: var_totalCount, + ); + } + + @protected + TestCategory sse_decode_test_category(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_i_32(deserializer); + return TestCategory.values[inner]; + } + + @protected + int sse_decode_u_16(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getUint16(); + } + + @protected + int sse_decode_u_32(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getUint32(); + } + + @protected + BigInt sse_decode_u_64(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getBigUint64(); + } + + @protected + int sse_decode_u_8(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getUint8(); + } + + @protected + U8Array32 sse_decode_u_8_array_32(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_list_prim_u_8_strict(deserializer); + return U8Array32(inner); + } + + @protected + void sse_decode_unit(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + } + + @protected + BigInt sse_decode_usize(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getBigUint64(); + } + + @protected + void sse_encode_AnyhowException( + AnyhowException self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_String(self.message, serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + Client self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as ClientImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ClientBuilder self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as ClientBuilderImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ClientSecret self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as ClientSecretImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + FileRef self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as FileRefImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + KeyId self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as KeyIdImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + KeyPair self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as KeyPairImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + KeyPairError self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as KeyPairErrorImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + PathBuf self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as PathBufImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + RelayAddress self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayAddressImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + RelayConnectionInfo self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayConnectionInfoImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + RelayConnectionStatus self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayConnectionStatusImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + RelayInfo self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayInfoImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + RelayStatusUpdate self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayStatusUpdateImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + Signature self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as SignatureImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SigningKey self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as SigningKeyImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SocketAddr self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as SocketAddrImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SystemCheckResults self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as SystemCheckResultsImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + TestInfo self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as TestInfoImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + VerifyError self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as VerifyErrorImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + VerifyingKey self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as VerifyingKeyImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + VerifyingKeyError self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as VerifyingKeyErrorImpl).frbInternalSseEncode(move: true), + serializer, + ); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ClientBuilder self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as ClientBuilderImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + RelayConnectionInfo self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayConnectionInfoImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + RelayInfo self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayInfoImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + RelayStatusUpdate self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayStatusUpdateImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + Client self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as ClientImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ClientSecret self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as ClientSecretImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + FileRef self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as FileRefImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + KeyPair self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as KeyPairImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + RelayConnectionInfo self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayConnectionInfoImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + RelayInfo self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayInfoImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + RelayStatusUpdate self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayStatusUpdateImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + Signature self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as SignatureImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SigningKey self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as SigningKeyImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SocketAddr self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as SocketAddrImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SystemCheckResults self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as SystemCheckResultsImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + TestInfo self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as TestInfoImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + VerifyingKey self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as VerifyingKeyImpl).frbInternalSseEncode(move: false), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + Client self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as ClientImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ClientBuilder self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as ClientBuilderImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ClientSecret self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as ClientSecretImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + FileRef self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as FileRefImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + KeyId self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as KeyIdImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + KeyPair self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as KeyPairImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + KeyPairError self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as KeyPairErrorImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + PathBuf self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as PathBufImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + RelayAddress self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayAddressImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + RelayConnectionInfo self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayConnectionInfoImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + RelayConnectionStatus self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayConnectionStatusImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + RelayInfo self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayInfoImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + RelayStatusUpdate self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as RelayStatusUpdateImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + Signature self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as SignatureImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SigningKey self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as SigningKeyImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SocketAddr self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as SocketAddrImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SystemCheckResults self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as SystemCheckResultsImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + TestInfo self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as TestInfoImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + VerifyError self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as VerifyErrorImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + VerifyingKey self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as VerifyingKeyImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + VerifyingKeyError self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as VerifyingKeyErrorImpl).frbInternalSseEncode(move: null), + serializer, + ); + } + + @protected + void + sse_encode_StreamSink_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults_Sse( + RustStreamSink self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_String( + self.setupAndSerialize( + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults, + decodeErrorData: sse_decode_AnyhowException, + ), + ), + serializer, + ); + } + + @protected + void sse_encode_StreamSink_overall_connection_status_Sse( + RustStreamSink self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_String( + self.setupAndSerialize( + codec: SseCodec( + decodeSuccessData: sse_decode_overall_connection_status, + decodeErrorData: sse_decode_AnyhowException, + ), + ), + serializer, + ); + } + + @protected + void sse_encode_String(String self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_list_prim_u_8_strict(utf8.encoder.convert(self), serializer); + } + + @protected + void sse_encode_algorithm(Algorithm self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.index, serializer); + } + + @protected + void sse_encode_bool(bool self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putUint8(self ? 1 : 0); + } + + @protected + void sse_encode_i_32(int self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putInt32(self); + } + + @protected + void + sse_encode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + List self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.length, serializer); + for (final item in self) { + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + item, + serializer, + ); + } + } + + @protected + void + sse_encode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + List self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.length, serializer); + for (final item in self) { + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + item, + serializer, + ); + } + } + + @protected + void + sse_encode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + List self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.length, serializer); + for (final item in self) { + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + item, + serializer, + ); + } + } + + @protected + void sse_encode_list_String(List self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.length, serializer); + for (final item in self) { + sse_encode_String(item, serializer); + } + } + + @protected + void sse_encode_list_prim_u_8_loose( + List self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.length, serializer); + serializer.buffer.putUint8List( + self is Uint8List ? self : Uint8List.fromList(self), + ); + } + + @protected + void sse_encode_list_prim_u_8_strict( + Uint8List self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.length, serializer); + serializer.buffer.putUint8List(self); + } + + @protected + void sse_encode_list_test_category( + List self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.length, serializer); + for (final item in self) { + sse_encode_test_category(item, serializer); + } + } + + @protected + void sse_encode_opt_String(String? self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + + sse_encode_bool(self != null, serializer); + if (self != null) { + sse_encode_String(self, serializer); + } + } + + @protected + void sse_encode_overall_connection_status( + OverallConnectionStatus self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_bool(self.isConnected, serializer); + sse_encode_usize(self.connectedCount, serializer); + sse_encode_usize(self.totalCount, serializer); + } + + @protected + void sse_encode_test_category(TestCategory self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.index, serializer); + } + + @protected + void sse_encode_u_16(int self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putUint16(self); + } + + @protected + void sse_encode_u_32(int self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putUint32(self); + } + + @protected + void sse_encode_u_64(BigInt self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putBigUint64(self); + } + + @protected + void sse_encode_u_8(int self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putUint8(self); + } + + @protected + void sse_encode_u_8_array_32(U8Array32 self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_list_prim_u_8_strict(self.inner, serializer); + } + + @protected + void sse_encode_unit(void self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + } + + @protected + void sse_encode_usize(BigInt self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putBigUint64(self); + } +} + +@sealed +class ClientBuilderImpl extends RustOpaque implements ClientBuilder { + // Not to be used by end users + ClientBuilderImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + ClientBuilderImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_ClientBuilder, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_ClientBuilder, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_ClientBuilderPtr, + ); + + /// Enable or disable automatic connection to server during build + /// + /// When autoconnect is true (default for backward compatibility), the client + /// will require server information and connect immediately during build(). + /// When autoconnect is false, the client starts in offline mode and can + /// connect to relays later using add_relay(). + Future autoconnect({required bool autoconnect}) => + RustLib.instance.api.zoeClientClientClientBuilderAutoconnect( + that: this, + autoconnect: autoconnect, + ); + + Future build() => + RustLib.instance.api.zoeClientClientClientBuilderBuild(that: this); + + Future clientSecret({required ClientSecret secret}) => RustLib + .instance + .api + .zoeClientClientClientBuilderClientSecret(that: this, secret: secret); + + /// Set the storage database path (convenience method) + Future dbStorageDir({required String path}) => RustLib.instance.api + .zoeClientClientClientBuilderDbStorageDir(that: this, path: path); + + /// Set the encryption key for storage + Future encryptionKey({required U8Array32 key}) => RustLib.instance.api + .zoeClientClientClientBuilderEncryptionKey(that: this, key: key); + + Future mediaStorageDir({required String mediaStorageDir}) => + RustLib.instance.api.zoeClientClientClientBuilderMediaStorageDir( + that: this, + mediaStorageDir: mediaStorageDir, + ); + + Future serverInfo({ + required VerifyingKey serverPublicKey, + required SocketAddr serverAddr, + }) => RustLib.instance.api.zoeClientClientClientBuilderServerInfo( + that: this, + serverPublicKey: serverPublicKey, + serverAddr: serverAddr, + ); + + Future servers({required List servers}) => RustLib + .instance + .api + .zoeClientClientClientBuilderServers(that: this, servers: servers); +} + +@sealed +class ClientImpl extends RustOpaque implements Client { + // Not to be used by end users + ClientImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + ClientImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_Client, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_Client, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_ClientPtr, + ); + + /// Add a relay server to the client + /// + /// This will attempt to connect to all addresses in the RelayAddress in random order + /// with a 10-second timeout per attempt. Only adds the relay to local state if a + /// connection succeeds. + Future addRelay({required RelayAddress address}) => RustLib.instance.api + .zoeClientClientClientAddRelay(that: this, address: address); + + /// Get the current client secret + Future clientSecret() => + RustLib.instance.api.zoeClientClientClientClientSecret(that: this); + + Future clientSecretHex() => + RustLib.instance.api.zoeClientClientClientClientSecretHex(that: this); + + Future close() => + RustLib.instance.api.zoeClientClientClientClose(that: this); + + /// Get list of all configured relays with their connection status + Future> getRelayStatus() => + RustLib.instance.api.zoeClientClientClientGetRelayStatus(that: this); + + /// Check if any relays are currently connected + Future hasConnectedRelays() => + RustLib.instance.api.zoeClientClientClientHasConnectedRelays(that: this); + + /// Check if a file exists in storage + /// + /// # Arguments + /// + /// * `stored_info` - Metadata from when the file was stored + /// + /// # Returns + /// + /// `true` if the file exists in storage, `false` otherwise + Future hasFile({required FileRef storedInfo}) => RustLib.instance.api + .zoeClientClientClientHasFile(that: this, storedInfo: storedInfo); + + Future idHex() => + RustLib.instance.api.zoeClientClientClientIdHex(that: this); + + /// Calculate the current overall connection status + /// + /// This is computed from the current relay states, ensuring it's always accurate but makes it + /// a bit more expensive to compute. For live updates it is recommended to use `overall_status_stream` + /// instead. + Future overallStatus() => + RustLib.instance.api.zoeClientClientClientOverallStatus(that: this); + + /// Attempt to reconnect to all failed relays + Future reconnectFailedRelays() => RustLib.instance.api + .zoeClientClientClientReconnectFailedRelays(that: this); + + /// Remove a relay connection (offline mode only) + Future removeRelay({required VerifyingKey serverPublicKey}) => + RustLib.instance.api.zoeClientClientClientRemoveRelay( + that: this, + serverPublicKey: serverPublicKey, + ); + + /// Retrieve a file from storage and save it to disk + /// + /// This method: + /// 1. Retrieves the encrypted data from blob storage using the FileRef + /// 2. Decrypts the content + /// 3. Writes the decrypted content to the specified path + /// + /// # Arguments + /// + /// * `file_ref` - Metadata for the file to retrieve + /// * `output_path` - Path where the decrypted file should be saved + /// + /// # Errors + /// + /// Returns an error if: + /// - The file cannot be found in storage + /// - Decryption fails + /// - Writing to disk fails + Future retrieveFile({ + required FileRef fileRef, + required PathBuf outputPath, + }) => RustLib.instance.api.zoeClientClientClientRetrieveFile( + that: this, + fileRef: fileRef, + outputPath: outputPath, + ); + + /// Retrieve a file from storage as bytes + /// + /// This method: + /// 1. Retrieves the encrypted data from blob storage using the FileRef + /// 2. Decrypts the content + /// 3. Returns the decrypted content as bytes + /// + /// # Arguments + /// + /// * `file_ref` - Metadata for the file to retrieve + /// + /// # Returns + /// + /// The decrypted file content as `Vec` + /// + /// # Errors + /// + /// Returns an error if: + /// - The file cannot be found in storage + /// - Decryption fails + Future retrieveFileBytes({required FileRef fileRef}) => RustLib + .instance + .api + .zoeClientClientClientRetrieveFileBytes(that: this, fileRef: fileRef); + + /// Store raw data (not from a file) with encryption and blob storage + /// + /// This method allows storing arbitrary data without reading from disk. + /// + /// # Arguments + /// + /// * `data` - The raw data to store + /// * `reference_name` - A reference name for the data (used in metadata) + /// * `content_type` - Optional content type for metadata + /// + /// # Returns + /// + /// `FileRef` containing the blob hash, encryption info, and metadata + Future storeData({ + required List data, + required String referenceName, + String? contentType, + }) => RustLib.instance.api.zoeClientClientClientStoreData( + that: this, + data: data, + referenceName: referenceName, + contentType: contentType, + ); + + /// Store a file by reading from disk, encrypting, and storing in blob storage + /// + /// This method: + /// 1. Reads the file from the provided path + /// 2. Encrypts the content using convergent encryption + /// 3. Stores the encrypted data in the blob store + /// 4. Returns metadata needed to retrieve the file later + /// + /// # Arguments + /// + /// * `file_path` - Path to the file to store + /// + /// # Returns + /// + /// A `FileRef` containing the metadata needed to retrieve the file + /// + /// # Errors + /// + /// Returns an error if: + /// - The file cannot be read + /// - Encryption fails + /// - Blob storage operation fails + Future storeFile({required PathBuf filePath}) => RustLib.instance.api + .zoeClientClientClientStoreFile(that: this, filePath: filePath); +} + +@sealed +class ClientSecretImpl extends RustOpaque implements ClientSecret { + // Not to be used by end users + ClientSecretImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + ClientSecretImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_ClientSecret, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_ClientSecret, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_ClientSecretPtr, + ); + + /// Get the list of configured servers + Future servers() => + RustLib.instance.api.zoeClientClientClientSecretServers(that: this); + + Future toHex() => + RustLib.instance.api.zoeClientClientClientSecretToHex(that: this); +} + +@sealed +class FileRefImpl extends RustOpaque implements FileRef { + // Not to be used by end users + FileRefImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + FileRefImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_FileRef, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_FileRef, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_FileRefPtr, + ); +} + +@sealed +class KeyIdImpl extends RustOpaque implements KeyId { + // Not to be used by end users + KeyIdImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + KeyIdImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_KeyId, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_KeyId, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_KeyIdPtr, + ); +} + +@sealed +class KeyPairErrorImpl extends RustOpaque implements KeyPairError { + // Not to be used by end users + KeyPairErrorImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + KeyPairErrorImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_KeyPairError, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_KeyPairError, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_KeyPairErrorPtr, + ); +} + +@sealed +class KeyPairImpl extends RustOpaque implements KeyPair { + // Not to be used by end users + KeyPairImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + KeyPairImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_KeyPair, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_KeyPair, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_KeyPairPtr, + ); + + /// Get the algorithm for this key type + Future algorithm() => + RustLib.instance.api.zoeWireProtocolKeysKeyPairAlgorithm(that: this); + + Future id() => + RustLib.instance.api.zoeWireProtocolKeysKeyPairId(that: this); + + Future publicKey() => + RustLib.instance.api.zoeWireProtocolKeysKeyPairPublicKey(that: this); + + Future sign({required List message}) => RustLib.instance.api + .zoeWireProtocolKeysKeyPairSign(that: this, message: message); + + /// Encode the KeyPair to a PEM string suitable for environment variables or file storage. + /// + /// This method creates PEM blocks containing: + /// - For Ed25519: Only the private key (public key can be derived) + /// - For ML-DSA: Both private and public keys in separate PEM blocks (hash is derived from public key) + /// + /// All PEM blocks are prefixed with "ZOE" to identify them as Zoe-specific formats. + /// + /// # Returns + /// + /// A PEM-formatted string containing the key data. + /// + /// # Examples + /// + /// ```rust + /// use zoe_wire_protocol::KeyPair; + /// use rand::rngs::OsRng; + /// + /// let keypair = KeyPair::generate_ed25519(&mut OsRng); + /// let pem_string = keypair.to_pem().unwrap(); + /// + /// // Store in environment variable or file + /// std::env::set_var("MY_PRIVATE_KEY", &pem_string); + /// ``` + Future toPem() => + RustLib.instance.api.zoeWireProtocolKeysKeyPairToPem(that: this); +} + +@sealed +class PathBufImpl extends RustOpaque implements PathBuf { + // Not to be used by end users + PathBufImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + PathBufImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_PathBuf, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_PathBuf, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_PathBufPtr, + ); +} + +@sealed +class RelayAddressImpl extends RustOpaque implements RelayAddress { + // Not to be used by end users + RelayAddressImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + RelayAddressImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_RelayAddress, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_RelayAddress, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_RelayAddressPtr, + ); +} + +@sealed +class RelayConnectionInfoImpl extends RustOpaque + implements RelayConnectionInfo { + // Not to be used by end users + RelayConnectionInfoImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + RelayConnectionInfoImpl.frbInternalSseDecode( + BigInt ptr, + int externalSizeOnNative, + ) : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib + .instance + .api + .rust_arc_increment_strong_count_RelayConnectionInfo, + rustArcDecrementStrongCount: RustLib + .instance + .api + .rust_arc_decrement_strong_count_RelayConnectionInfo, + rustArcDecrementStrongCountPtr: RustLib + .instance + .api + .rust_arc_decrement_strong_count_RelayConnectionInfoPtr, + ); + + RelayInfo get info => RustLib.instance.api + .zoeClientClientRelayConnectionInfoAutoAccessorGetInfo(that: this); + + RelayConnectionStatus get status => RustLib.instance.api + .zoeClientClientRelayConnectionInfoAutoAccessorGetStatus(that: this); + + set info(RelayInfo info) => RustLib.instance.api + .zoeClientClientRelayConnectionInfoAutoAccessorSetInfo( + that: this, + info: info, + ); + + set status(RelayConnectionStatus status) => RustLib.instance.api + .zoeClientClientRelayConnectionInfoAutoAccessorSetStatus( + that: this, + status: status, + ); +} + +@sealed +class RelayConnectionStatusImpl extends RustOpaque + implements RelayConnectionStatus { + // Not to be used by end users + RelayConnectionStatusImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + RelayConnectionStatusImpl.frbInternalSseDecode( + BigInt ptr, + int externalSizeOnNative, + ) : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib + .instance + .api + .rust_arc_increment_strong_count_RelayConnectionStatus, + rustArcDecrementStrongCount: RustLib + .instance + .api + .rust_arc_decrement_strong_count_RelayConnectionStatus, + rustArcDecrementStrongCountPtr: RustLib + .instance + .api + .rust_arc_decrement_strong_count_RelayConnectionStatusPtr, + ); +} + +@sealed +class RelayInfoImpl extends RustOpaque implements RelayInfo { + // Not to be used by end users + RelayInfoImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + RelayInfoImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_RelayInfo, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_RelayInfo, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_RelayInfoPtr, + ); + + RelayAddress get relayAddress => RustLib.instance.api + .zoeClientClientRelayInfoAutoAccessorGetRelayAddress(that: this); + + KeyId get relayId => RustLib.instance.api + .zoeClientClientRelayInfoAutoAccessorGetRelayId(that: this); + + set relayAddress(RelayAddress relayAddress) => + RustLib.instance.api.zoeClientClientRelayInfoAutoAccessorSetRelayAddress( + that: this, + relayAddress: relayAddress, + ); + + set relayId(KeyId relayId) => + RustLib.instance.api.zoeClientClientRelayInfoAutoAccessorSetRelayId( + that: this, + relayId: relayId, + ); +} + +@sealed +class RelayStatusUpdateImpl extends RustOpaque implements RelayStatusUpdate { + // Not to be used by end users + RelayStatusUpdateImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + RelayStatusUpdateImpl.frbInternalSseDecode( + BigInt ptr, + int externalSizeOnNative, + ) : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_RelayStatusUpdate, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_RelayStatusUpdate, + rustArcDecrementStrongCountPtr: RustLib + .instance + .api + .rust_arc_decrement_strong_count_RelayStatusUpdatePtr, + ); + + RelayAddress get relayAddress => RustLib.instance.api + .zoeClientClientRelayStatusUpdateAutoAccessorGetRelayAddress(that: this); + + KeyId get relayId => RustLib.instance.api + .zoeClientClientRelayStatusUpdateAutoAccessorGetRelayId(that: this); + + RelayConnectionStatus get status => RustLib.instance.api + .zoeClientClientRelayStatusUpdateAutoAccessorGetStatus(that: this); + + set relayAddress(RelayAddress relayAddress) => RustLib.instance.api + .zoeClientClientRelayStatusUpdateAutoAccessorSetRelayAddress( + that: this, + relayAddress: relayAddress, + ); + + set relayId(KeyId relayId) => RustLib.instance.api + .zoeClientClientRelayStatusUpdateAutoAccessorSetRelayId( + that: this, + relayId: relayId, + ); + + set status(RelayConnectionStatus status) => RustLib.instance.api + .zoeClientClientRelayStatusUpdateAutoAccessorSetStatus( + that: this, + status: status, + ); +} + +@sealed +class SignatureImpl extends RustOpaque implements Signature { + // Not to be used by end users + SignatureImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + SignatureImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_Signature, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_Signature, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_SignaturePtr, + ); + + /// Encode the Signature to bytes for serialization + Future encode() => + RustLib.instance.api.zoeWireProtocolKeysSignatureEncode(that: this); + + Future id() => + RustLib.instance.api.zoeWireProtocolKeysSignatureId(that: this); +} + +@sealed +class SigningKeyImpl extends RustOpaque implements SigningKey { + // Not to be used by end users + SigningKeyImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + SigningKeyImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_SigningKey, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_SigningKey, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_SigningKeyPtr, + ); + + /// Sign a message with this signing key + Future sign({required List message}) => RustLib.instance.api + .zoeWireProtocolKeysSigningKeySign(that: this, message: message); +} + +@sealed +class SocketAddrImpl extends RustOpaque implements SocketAddr { + // Not to be used by end users + SocketAddrImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + SocketAddrImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_SocketAddr, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_SocketAddr, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_SocketAddrPtr, + ); +} + +@sealed +class SystemCheckResultsImpl extends RustOpaque implements SystemCheckResults { + // Not to be used by end users + SystemCheckResultsImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + SystemCheckResultsImpl.frbInternalSseDecode( + BigInt ptr, + int externalSizeOnNative, + ) : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_SystemCheckResults, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_SystemCheckResults, + rustArcDecrementStrongCountPtr: RustLib + .instance + .api + .rust_arc_decrement_strong_count_SystemCheckResultsPtr, + ); +} + +@sealed +class TestInfoImpl extends RustOpaque implements TestInfo { + // Not to be used by end users + TestInfoImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + TestInfoImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_TestInfo, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_TestInfo, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_TestInfoPtr, + ); +} + +@sealed +class VerifyErrorImpl extends RustOpaque implements VerifyError { + // Not to be used by end users + VerifyErrorImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + VerifyErrorImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_VerifyError, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_VerifyError, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_VerifyErrorPtr, + ); +} + +@sealed +class VerifyingKeyErrorImpl extends RustOpaque implements VerifyingKeyError { + // Not to be used by end users + VerifyingKeyErrorImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + VerifyingKeyErrorImpl.frbInternalSseDecode( + BigInt ptr, + int externalSizeOnNative, + ) : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_VerifyingKeyError, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_VerifyingKeyError, + rustArcDecrementStrongCountPtr: RustLib + .instance + .api + .rust_arc_decrement_strong_count_VerifyingKeyErrorPtr, + ); +} + +@sealed +class VerifyingKeyImpl extends RustOpaque implements VerifyingKey { + // Not to be used by end users + VerifyingKeyImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + VerifyingKeyImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_VerifyingKey, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_VerifyingKey, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_VerifyingKeyPtr, + ); + + /// Get the algorithm for this key type + /// + /// flutter_rust_bridge:opaque + Future algorithm() => + RustLib.instance.api.zoeWireProtocolKeysVerifyingKeyAlgorithm(that: this); + + /// Encode the VerifyingKey to bytes for serialization. + /// + /// This method serializes the key using postcard format for efficient storage + /// and transmission. The resulting bytes can be deserialized back to a + /// `VerifyingKey` using `postcard::from_bytes()`. + /// + /// # Returns + /// + /// A `Vec` containing the serialized key data. + /// + /// # Examples + /// + /// ```rust + /// use zoe_wire_protocol::{KeyPair, VerifyingKey}; + /// use rand::rngs::OsRng; + /// + /// let keypair = KeyPair::generate_ed25519(&mut OsRng); + /// let verifying_key = keypair.public_key(); + /// + /// // Serialize the key + /// let key_bytes = verifying_key.encode(); + /// + /// // Deserialize it back + /// let restored_key: VerifyingKey = postcard::from_bytes(&key_bytes).unwrap(); + /// assert_eq!(&verifying_key, &restored_key); + /// ``` + /// flutter_rust_bridge:opaque + Future encode() => + RustLib.instance.api.zoeWireProtocolKeysVerifyingKeyEncode(that: this); + + /// flutter_rust_bridge:opaque + Future id() => + RustLib.instance.api.zoeWireProtocolKeysVerifyingKeyId(that: this); + + /// flutter_rust_bridge:opaque + Future toBytes() => + RustLib.instance.api.zoeWireProtocolKeysVerifyingKeyToBytes(that: this); + + /// Export the VerifyingKey to PEM format. + /// + /// This method serializes the key using postcard format and then encodes it + /// as a PEM block with the label "ZOE PUBLIC KEY". This provides a standardized + /// text format that's compatible with many cryptographic tools and libraries. + /// + /// # Returns + /// + /// A `Result` containing the PEM-encoded key or an error. + /// + /// # Examples + /// + /// ```rust + /// use zoe_wire_protocol::{KeyPair, VerifyingKey}; + /// use rand::rngs::OsRng; + /// + /// let keypair = KeyPair::generate_ed25519(&mut OsRng); + /// let verifying_key = keypair.public_key(); + /// let pem_string = verifying_key.to_pem().unwrap(); + /// println!("Public key PEM:\n{}", pem_string); + /// ``` + /// flutter_rust_bridge:opaque + Future toPem() => + RustLib.instance.api.zoeWireProtocolKeysVerifyingKeyToPem(that: this); + + /// Verify a signature against a message using the appropriate algorithm. + /// + /// This method automatically matches the signature type with the key type + /// and returns `Ok(false)` if they don't match (rather than an error). + /// + /// # Arguments + /// + /// * `message` - The message bytes that were signed + /// * `signature` - The signature to verify + /// + /// # Returns + /// + /// * `Ok(true)` - Signature is valid for this key and message + /// * `Ok(false)` - Signature is invalid or key/signature types don't match + /// * `Err(_)` - Verification error (malformed signature, etc.) + /// + /// # Examples + /// + /// ```rust + /// use zoe_wire_protocol::{KeyPair, VerifyingKey, SigningKey}; + /// use rand::rngs::OsRng; + /// + /// # fn example() -> Result<(), Box> { + /// let keypair = KeyPair::generate_ed25519(&mut OsRng); + /// let message = b"Hello, world!"; + /// let signature = keypair.sign(message); + /// let verifying_key = keypair.public_key(); + /// + /// let is_valid = verifying_key.verify(message, &signature)?; + /// assert!(is_valid); + /// # Ok(()) + /// # } + /// ``` + /// flutter_rust_bridge:opaque + Future verify({ + required List message, + required Signature signature, + }) => RustLib.instance.api.zoeWireProtocolKeysVerifyingKeyVerify( + that: this, + message: message, + signature: signature, + ); +} diff --git a/packages/zoe_native/lib/src/rust/frb_generated.io.dart b/packages/zoe_native/lib/src/rust/frb_generated.io.dart new file mode 100644 index 00000000..175a3176 --- /dev/null +++ b/packages/zoe_native/lib/src/rust/frb_generated.io.dart @@ -0,0 +1,2242 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field + +import 'api/client.dart'; +import 'api/simple.dart'; +import 'api/system_test.dart'; +import 'dart:async'; +import 'dart:convert'; +import 'dart:ffi' as ffi; +import 'frb_generated.dart'; +import 'lib.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated_io.dart'; +import 'third_party/zoe_client/client.dart'; +import 'third_party/zoe_client/client/api/file_storage.dart'; +import 'third_party/zoe_client/frb_api.dart'; +import 'third_party/zoe_client/system_check.dart'; +import 'third_party/zoe_client/util.dart'; +import 'third_party/zoe_wire_protocol/keys.dart'; +import 'third_party/zoe_wire_protocol/primitives.dart'; + +abstract class RustLibApiImplPlatform extends BaseApiImpl { + RustLibApiImplPlatform({ + required super.handler, + required super.wire, + required super.generalizedFrbRustBinding, + required super.portManager, + }); + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ClientPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ClientBuilderPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilderPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ClientSecretPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecretPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_FileRefPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRefPtr; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_KeyIdPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyIdPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_KeyPairPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_KeyPairErrorPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairErrorPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_PathBufPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBufPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_RelayAddressPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddressPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_RelayConnectionInfoPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfoPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_RelayConnectionStatusPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatusPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_RelayInfoPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfoPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_RelayStatusUpdatePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdatePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_SignaturePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignaturePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_SigningKeyPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKeyPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_SocketAddrPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddrPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_SystemCheckResultsPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResultsPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_TestInfoPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfoPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_VerifyErrorPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyErrorPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_VerifyingKeyPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_VerifyingKeyErrorPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyErrorPtr; + + @protected + AnyhowException dco_decode_AnyhowException(dynamic raw); + + @protected + Client + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + dynamic raw, + ); + + @protected + ClientBuilder + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + dynamic raw, + ); + + @protected + ClientSecret + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + dynamic raw, + ); + + @protected + FileRef + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + dynamic raw, + ); + + @protected + KeyId + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + dynamic raw, + ); + + @protected + KeyPair + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + dynamic raw, + ); + + @protected + KeyPairError + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + dynamic raw, + ); + + @protected + PathBuf + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + dynamic raw, + ); + + @protected + RelayAddress + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + dynamic raw, + ); + + @protected + RelayConnectionInfo + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ); + + @protected + RelayConnectionStatus + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + dynamic raw, + ); + + @protected + RelayInfo + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + dynamic raw, + ); + + @protected + RelayStatusUpdate + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + dynamic raw, + ); + + @protected + Signature + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + dynamic raw, + ); + + @protected + SigningKey + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + dynamic raw, + ); + + @protected + SocketAddr + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + dynamic raw, + ); + + @protected + SystemCheckResults + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + dynamic raw, + ); + + @protected + TestInfo + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + dynamic raw, + ); + + @protected + VerifyError + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + dynamic raw, + ); + + @protected + VerifyingKey + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + dynamic raw, + ); + + @protected + VerifyingKeyError + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + dynamic raw, + ); + + @protected + ClientBuilder + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + dynamic raw, + ); + + @protected + RelayConnectionInfo + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ); + + @protected + RelayInfo + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + dynamic raw, + ); + + @protected + RelayStatusUpdate + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + dynamic raw, + ); + + @protected + Client + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + dynamic raw, + ); + + @protected + ClientSecret + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + dynamic raw, + ); + + @protected + FileRef + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + dynamic raw, + ); + + @protected + KeyPair + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + dynamic raw, + ); + + @protected + RelayConnectionInfo + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ); + + @protected + RelayInfo + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + dynamic raw, + ); + + @protected + RelayStatusUpdate + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + dynamic raw, + ); + + @protected + Signature + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + dynamic raw, + ); + + @protected + SigningKey + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + dynamic raw, + ); + + @protected + SocketAddr + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + dynamic raw, + ); + + @protected + SystemCheckResults + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + dynamic raw, + ); + + @protected + TestInfo + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + dynamic raw, + ); + + @protected + VerifyingKey + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + dynamic raw, + ); + + @protected + Client + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + dynamic raw, + ); + + @protected + ClientBuilder + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + dynamic raw, + ); + + @protected + ClientSecret + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + dynamic raw, + ); + + @protected + FileRef + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + dynamic raw, + ); + + @protected + KeyId + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + dynamic raw, + ); + + @protected + KeyPair + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + dynamic raw, + ); + + @protected + KeyPairError + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + dynamic raw, + ); + + @protected + PathBuf + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + dynamic raw, + ); + + @protected + RelayAddress + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + dynamic raw, + ); + + @protected + RelayConnectionInfo + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ); + + @protected + RelayConnectionStatus + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + dynamic raw, + ); + + @protected + RelayInfo + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + dynamic raw, + ); + + @protected + RelayStatusUpdate + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + dynamic raw, + ); + + @protected + Signature + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + dynamic raw, + ); + + @protected + SigningKey + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + dynamic raw, + ); + + @protected + SocketAddr + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + dynamic raw, + ); + + @protected + SystemCheckResults + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + dynamic raw, + ); + + @protected + TestInfo + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + dynamic raw, + ); + + @protected + VerifyError + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + dynamic raw, + ); + + @protected + VerifyingKey + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + dynamic raw, + ); + + @protected + VerifyingKeyError + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + dynamic raw, + ); + + @protected + RustStreamSink + dco_decode_StreamSink_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults_Sse( + dynamic raw, + ); + + @protected + RustStreamSink + dco_decode_StreamSink_overall_connection_status_Sse(dynamic raw); + + @protected + String dco_decode_String(dynamic raw); + + @protected + Algorithm dco_decode_algorithm(dynamic raw); + + @protected + bool dco_decode_bool(dynamic raw); + + @protected + int dco_decode_i_32(dynamic raw); + + @protected + List + dco_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + dynamic raw, + ); + + @protected + List + dco_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ); + + @protected + List + dco_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + dynamic raw, + ); + + @protected + List dco_decode_list_String(dynamic raw); + + @protected + List dco_decode_list_prim_u_8_loose(dynamic raw); + + @protected + Uint8List dco_decode_list_prim_u_8_strict(dynamic raw); + + @protected + List dco_decode_list_test_category(dynamic raw); + + @protected + String? dco_decode_opt_String(dynamic raw); + + @protected + OverallConnectionStatus dco_decode_overall_connection_status(dynamic raw); + + @protected + TestCategory dco_decode_test_category(dynamic raw); + + @protected + int dco_decode_u_16(dynamic raw); + + @protected + int dco_decode_u_32(dynamic raw); + + @protected + BigInt dco_decode_u_64(dynamic raw); + + @protected + int dco_decode_u_8(dynamic raw); + + @protected + U8Array32 dco_decode_u_8_array_32(dynamic raw); + + @protected + void dco_decode_unit(dynamic raw); + + @protected + BigInt dco_decode_usize(dynamic raw); + + @protected + AnyhowException sse_decode_AnyhowException(SseDeserializer deserializer); + + @protected + Client + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + SseDeserializer deserializer, + ); + + @protected + ClientBuilder + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + SseDeserializer deserializer, + ); + + @protected + ClientSecret + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + SseDeserializer deserializer, + ); + + @protected + FileRef + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + SseDeserializer deserializer, + ); + + @protected + KeyId + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + SseDeserializer deserializer, + ); + + @protected + KeyPair + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + SseDeserializer deserializer, + ); + + @protected + KeyPairError + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + SseDeserializer deserializer, + ); + + @protected + PathBuf + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + SseDeserializer deserializer, + ); + + @protected + RelayAddress + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + SseDeserializer deserializer, + ); + + @protected + RelayConnectionInfo + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ); + + @protected + RelayConnectionStatus + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + SseDeserializer deserializer, + ); + + @protected + RelayInfo + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + SseDeserializer deserializer, + ); + + @protected + RelayStatusUpdate + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + SseDeserializer deserializer, + ); + + @protected + Signature + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + SseDeserializer deserializer, + ); + + @protected + SigningKey + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SseDeserializer deserializer, + ); + + @protected + SocketAddr + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SseDeserializer deserializer, + ); + + @protected + SystemCheckResults + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SseDeserializer deserializer, + ); + + @protected + TestInfo + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + SseDeserializer deserializer, + ); + + @protected + VerifyError + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + SseDeserializer deserializer, + ); + + @protected + VerifyingKey + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + SseDeserializer deserializer, + ); + + @protected + VerifyingKeyError + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + SseDeserializer deserializer, + ); + + @protected + ClientBuilder + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + SseDeserializer deserializer, + ); + + @protected + RelayConnectionInfo + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ); + + @protected + RelayInfo + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + SseDeserializer deserializer, + ); + + @protected + RelayStatusUpdate + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + SseDeserializer deserializer, + ); + + @protected + Client + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + SseDeserializer deserializer, + ); + + @protected + ClientSecret + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + SseDeserializer deserializer, + ); + + @protected + FileRef + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + SseDeserializer deserializer, + ); + + @protected + KeyPair + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + SseDeserializer deserializer, + ); + + @protected + RelayConnectionInfo + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ); + + @protected + RelayInfo + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + SseDeserializer deserializer, + ); + + @protected + RelayStatusUpdate + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + SseDeserializer deserializer, + ); + + @protected + Signature + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + SseDeserializer deserializer, + ); + + @protected + SigningKey + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SseDeserializer deserializer, + ); + + @protected + SocketAddr + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SseDeserializer deserializer, + ); + + @protected + SystemCheckResults + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SseDeserializer deserializer, + ); + + @protected + TestInfo + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + SseDeserializer deserializer, + ); + + @protected + VerifyingKey + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + SseDeserializer deserializer, + ); + + @protected + Client + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + SseDeserializer deserializer, + ); + + @protected + ClientBuilder + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + SseDeserializer deserializer, + ); + + @protected + ClientSecret + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + SseDeserializer deserializer, + ); + + @protected + FileRef + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + SseDeserializer deserializer, + ); + + @protected + KeyId + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + SseDeserializer deserializer, + ); + + @protected + KeyPair + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + SseDeserializer deserializer, + ); + + @protected + KeyPairError + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + SseDeserializer deserializer, + ); + + @protected + PathBuf + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + SseDeserializer deserializer, + ); + + @protected + RelayAddress + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + SseDeserializer deserializer, + ); + + @protected + RelayConnectionInfo + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ); + + @protected + RelayConnectionStatus + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + SseDeserializer deserializer, + ); + + @protected + RelayInfo + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + SseDeserializer deserializer, + ); + + @protected + RelayStatusUpdate + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + SseDeserializer deserializer, + ); + + @protected + Signature + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + SseDeserializer deserializer, + ); + + @protected + SigningKey + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SseDeserializer deserializer, + ); + + @protected + SocketAddr + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SseDeserializer deserializer, + ); + + @protected + SystemCheckResults + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SseDeserializer deserializer, + ); + + @protected + TestInfo + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + SseDeserializer deserializer, + ); + + @protected + VerifyError + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + SseDeserializer deserializer, + ); + + @protected + VerifyingKey + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + SseDeserializer deserializer, + ); + + @protected + VerifyingKeyError + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + SseDeserializer deserializer, + ); + + @protected + RustStreamSink + sse_decode_StreamSink_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults_Sse( + SseDeserializer deserializer, + ); + + @protected + RustStreamSink + sse_decode_StreamSink_overall_connection_status_Sse( + SseDeserializer deserializer, + ); + + @protected + String sse_decode_String(SseDeserializer deserializer); + + @protected + Algorithm sse_decode_algorithm(SseDeserializer deserializer); + + @protected + bool sse_decode_bool(SseDeserializer deserializer); + + @protected + int sse_decode_i_32(SseDeserializer deserializer); + + @protected + List + sse_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + SseDeserializer deserializer, + ); + + @protected + List + sse_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ); + + @protected + List + sse_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + SseDeserializer deserializer, + ); + + @protected + List sse_decode_list_String(SseDeserializer deserializer); + + @protected + List sse_decode_list_prim_u_8_loose(SseDeserializer deserializer); + + @protected + Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer); + + @protected + List sse_decode_list_test_category( + SseDeserializer deserializer, + ); + + @protected + String? sse_decode_opt_String(SseDeserializer deserializer); + + @protected + OverallConnectionStatus sse_decode_overall_connection_status( + SseDeserializer deserializer, + ); + + @protected + TestCategory sse_decode_test_category(SseDeserializer deserializer); + + @protected + int sse_decode_u_16(SseDeserializer deserializer); + + @protected + int sse_decode_u_32(SseDeserializer deserializer); + + @protected + BigInt sse_decode_u_64(SseDeserializer deserializer); + + @protected + int sse_decode_u_8(SseDeserializer deserializer); + + @protected + U8Array32 sse_decode_u_8_array_32(SseDeserializer deserializer); + + @protected + void sse_decode_unit(SseDeserializer deserializer); + + @protected + BigInt sse_decode_usize(SseDeserializer deserializer); + + @protected + void sse_encode_AnyhowException( + AnyhowException self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + Client self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ClientBuilder self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ClientSecret self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + FileRef self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + KeyId self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + KeyPair self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + KeyPairError self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + PathBuf self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + RelayAddress self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + RelayConnectionInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + RelayConnectionStatus self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + RelayInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + RelayStatusUpdate self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + Signature self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SigningKey self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SocketAddr self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SystemCheckResults self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + TestInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + VerifyError self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + VerifyingKey self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + VerifyingKeyError self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ClientBuilder self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + RelayConnectionInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + RelayInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + RelayStatusUpdate self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + Client self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ClientSecret self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + FileRef self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + KeyPair self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + RelayConnectionInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + RelayInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + RelayStatusUpdate self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + Signature self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SigningKey self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SocketAddr self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SystemCheckResults self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + TestInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + VerifyingKey self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + Client self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ClientBuilder self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ClientSecret self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + FileRef self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + KeyId self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + KeyPair self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + KeyPairError self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + PathBuf self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + RelayAddress self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + RelayConnectionInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + RelayConnectionStatus self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + RelayInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + RelayStatusUpdate self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + Signature self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SigningKey self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SocketAddr self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SystemCheckResults self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + TestInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + VerifyError self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + VerifyingKey self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + VerifyingKeyError self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_StreamSink_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults_Sse( + RustStreamSink self, + SseSerializer serializer, + ); + + @protected + void sse_encode_StreamSink_overall_connection_status_Sse( + RustStreamSink self, + SseSerializer serializer, + ); + + @protected + void sse_encode_String(String self, SseSerializer serializer); + + @protected + void sse_encode_algorithm(Algorithm self, SseSerializer serializer); + + @protected + void sse_encode_bool(bool self, SseSerializer serializer); + + @protected + void sse_encode_i_32(int self, SseSerializer serializer); + + @protected + void + sse_encode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + List self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + List self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + List self, + SseSerializer serializer, + ); + + @protected + void sse_encode_list_String(List self, SseSerializer serializer); + + @protected + void sse_encode_list_prim_u_8_loose(List self, SseSerializer serializer); + + @protected + void sse_encode_list_prim_u_8_strict( + Uint8List self, + SseSerializer serializer, + ); + + @protected + void sse_encode_list_test_category( + List self, + SseSerializer serializer, + ); + + @protected + void sse_encode_opt_String(String? self, SseSerializer serializer); + + @protected + void sse_encode_overall_connection_status( + OverallConnectionStatus self, + SseSerializer serializer, + ); + + @protected + void sse_encode_test_category(TestCategory self, SseSerializer serializer); + + @protected + void sse_encode_u_16(int self, SseSerializer serializer); + + @protected + void sse_encode_u_32(int self, SseSerializer serializer); + + @protected + void sse_encode_u_64(BigInt self, SseSerializer serializer); + + @protected + void sse_encode_u_8(int self, SseSerializer serializer); + + @protected + void sse_encode_u_8_array_32(U8Array32 self, SseSerializer serializer); + + @protected + void sse_encode_unit(void self, SseSerializer serializer); + + @protected + void sse_encode_usize(BigInt self, SseSerializer serializer); +} + +// Section: wire_class + +class RustLibWire implements BaseWire { + factory RustLibWire.fromExternalLibrary(ExternalLibrary lib) => + RustLibWire(lib.ffiDynamicLibrary); + + /// Holds the symbol lookup function. + final ffi.Pointer Function(String symbolName) + _lookup; + + /// The symbols are looked up in [dynamicLibrary]. + RustLibWire(ffi.DynamicLibrary dynamicLibrary) + : _lookup = dynamicLibrary.lookup; + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilderPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilderPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilderPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilderPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecretPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecretPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecretPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecretPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRefPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRefPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRefPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRefPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyIdPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyIdPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyIdPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyIdPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairErrorPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairErrorPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairErrorPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairErrorPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBufPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBufPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBufPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBufPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddressPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddressPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddressPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddressPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfoPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfoPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfoPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfoPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatusPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatusPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatusPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatusPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfoPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfoPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfoPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfoPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdatePtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdatePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdatePtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdatePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignaturePtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignaturePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignaturePtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignaturePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKeyPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKeyPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKeyPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKeyPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddrPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddrPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddrPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddrPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResultsPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResultsPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResultsPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResultsPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfoPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfoPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfoPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfoPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyErrorPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyErrorPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyErrorPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyErrorPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyErrorPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError', + ); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyErrorPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyErrorPtr = + _lookup)>>( + 'frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError', + ); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyErrorPtr + .asFunction)>(); +} diff --git a/packages/zoe_native/lib/src/rust/frb_generated.web.dart b/packages/zoe_native/lib/src/rust/frb_generated.web.dart new file mode 100644 index 00000000..0f56075a --- /dev/null +++ b/packages/zoe_native/lib/src/rust/frb_generated.web.dart @@ -0,0 +1,2074 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field + +// Static analysis wrongly picks the IO variant, thus ignore this +// ignore_for_file: argument_type_not_assignable + +import 'api/client.dart'; +import 'api/simple.dart'; +import 'api/system_test.dart'; +import 'dart:async'; +import 'dart:convert'; +import 'frb_generated.dart'; +import 'lib.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated_web.dart'; +import 'third_party/zoe_client/client.dart'; +import 'third_party/zoe_client/client/api/file_storage.dart'; +import 'third_party/zoe_client/frb_api.dart'; +import 'third_party/zoe_client/system_check.dart'; +import 'third_party/zoe_client/util.dart'; +import 'third_party/zoe_wire_protocol/keys.dart'; +import 'third_party/zoe_wire_protocol/primitives.dart'; + +abstract class RustLibApiImplPlatform extends BaseApiImpl { + RustLibApiImplPlatform({ + required super.handler, + required super.wire, + required super.generalizedFrbRustBinding, + required super.portManager, + }); + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ClientPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ClientBuilderPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ClientSecretPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_FileRefPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_KeyIdPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_KeyPairPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_KeyPairErrorPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_PathBufPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_RelayAddressPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_RelayConnectionInfoPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_RelayConnectionStatusPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_RelayInfoPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_RelayStatusUpdatePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_SignaturePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_SigningKeyPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_SocketAddrPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_SystemCheckResultsPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_TestInfoPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_VerifyErrorPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_VerifyingKeyPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_VerifyingKeyErrorPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError; + + @protected + AnyhowException dco_decode_AnyhowException(dynamic raw); + + @protected + Client + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + dynamic raw, + ); + + @protected + ClientBuilder + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + dynamic raw, + ); + + @protected + ClientSecret + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + dynamic raw, + ); + + @protected + FileRef + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + dynamic raw, + ); + + @protected + KeyId + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + dynamic raw, + ); + + @protected + KeyPair + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + dynamic raw, + ); + + @protected + KeyPairError + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + dynamic raw, + ); + + @protected + PathBuf + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + dynamic raw, + ); + + @protected + RelayAddress + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + dynamic raw, + ); + + @protected + RelayConnectionInfo + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ); + + @protected + RelayConnectionStatus + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + dynamic raw, + ); + + @protected + RelayInfo + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + dynamic raw, + ); + + @protected + RelayStatusUpdate + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + dynamic raw, + ); + + @protected + Signature + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + dynamic raw, + ); + + @protected + SigningKey + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + dynamic raw, + ); + + @protected + SocketAddr + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + dynamic raw, + ); + + @protected + SystemCheckResults + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + dynamic raw, + ); + + @protected + TestInfo + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + dynamic raw, + ); + + @protected + VerifyError + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + dynamic raw, + ); + + @protected + VerifyingKey + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + dynamic raw, + ); + + @protected + VerifyingKeyError + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + dynamic raw, + ); + + @protected + ClientBuilder + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + dynamic raw, + ); + + @protected + RelayConnectionInfo + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ); + + @protected + RelayInfo + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + dynamic raw, + ); + + @protected + RelayStatusUpdate + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + dynamic raw, + ); + + @protected + Client + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + dynamic raw, + ); + + @protected + ClientSecret + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + dynamic raw, + ); + + @protected + FileRef + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + dynamic raw, + ); + + @protected + KeyPair + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + dynamic raw, + ); + + @protected + RelayConnectionInfo + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ); + + @protected + RelayInfo + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + dynamic raw, + ); + + @protected + RelayStatusUpdate + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + dynamic raw, + ); + + @protected + Signature + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + dynamic raw, + ); + + @protected + SigningKey + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + dynamic raw, + ); + + @protected + SocketAddr + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + dynamic raw, + ); + + @protected + SystemCheckResults + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + dynamic raw, + ); + + @protected + TestInfo + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + dynamic raw, + ); + + @protected + VerifyingKey + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + dynamic raw, + ); + + @protected + Client + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + dynamic raw, + ); + + @protected + ClientBuilder + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + dynamic raw, + ); + + @protected + ClientSecret + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + dynamic raw, + ); + + @protected + FileRef + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + dynamic raw, + ); + + @protected + KeyId + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + dynamic raw, + ); + + @protected + KeyPair + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + dynamic raw, + ); + + @protected + KeyPairError + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + dynamic raw, + ); + + @protected + PathBuf + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + dynamic raw, + ); + + @protected + RelayAddress + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + dynamic raw, + ); + + @protected + RelayConnectionInfo + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ); + + @protected + RelayConnectionStatus + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + dynamic raw, + ); + + @protected + RelayInfo + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + dynamic raw, + ); + + @protected + RelayStatusUpdate + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + dynamic raw, + ); + + @protected + Signature + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + dynamic raw, + ); + + @protected + SigningKey + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + dynamic raw, + ); + + @protected + SocketAddr + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + dynamic raw, + ); + + @protected + SystemCheckResults + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + dynamic raw, + ); + + @protected + TestInfo + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + dynamic raw, + ); + + @protected + VerifyError + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + dynamic raw, + ); + + @protected + VerifyingKey + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + dynamic raw, + ); + + @protected + VerifyingKeyError + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + dynamic raw, + ); + + @protected + RustStreamSink + dco_decode_StreamSink_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults_Sse( + dynamic raw, + ); + + @protected + RustStreamSink + dco_decode_StreamSink_overall_connection_status_Sse(dynamic raw); + + @protected + String dco_decode_String(dynamic raw); + + @protected + Algorithm dco_decode_algorithm(dynamic raw); + + @protected + bool dco_decode_bool(dynamic raw); + + @protected + int dco_decode_i_32(dynamic raw); + + @protected + List + dco_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + dynamic raw, + ); + + @protected + List + dco_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + dynamic raw, + ); + + @protected + List + dco_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + dynamic raw, + ); + + @protected + List dco_decode_list_String(dynamic raw); + + @protected + List dco_decode_list_prim_u_8_loose(dynamic raw); + + @protected + Uint8List dco_decode_list_prim_u_8_strict(dynamic raw); + + @protected + List dco_decode_list_test_category(dynamic raw); + + @protected + String? dco_decode_opt_String(dynamic raw); + + @protected + OverallConnectionStatus dco_decode_overall_connection_status(dynamic raw); + + @protected + TestCategory dco_decode_test_category(dynamic raw); + + @protected + int dco_decode_u_16(dynamic raw); + + @protected + int dco_decode_u_32(dynamic raw); + + @protected + BigInt dco_decode_u_64(dynamic raw); + + @protected + int dco_decode_u_8(dynamic raw); + + @protected + U8Array32 dco_decode_u_8_array_32(dynamic raw); + + @protected + void dco_decode_unit(dynamic raw); + + @protected + BigInt dco_decode_usize(dynamic raw); + + @protected + AnyhowException sse_decode_AnyhowException(SseDeserializer deserializer); + + @protected + Client + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + SseDeserializer deserializer, + ); + + @protected + ClientBuilder + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + SseDeserializer deserializer, + ); + + @protected + ClientSecret + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + SseDeserializer deserializer, + ); + + @protected + FileRef + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + SseDeserializer deserializer, + ); + + @protected + KeyId + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + SseDeserializer deserializer, + ); + + @protected + KeyPair + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + SseDeserializer deserializer, + ); + + @protected + KeyPairError + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + SseDeserializer deserializer, + ); + + @protected + PathBuf + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + SseDeserializer deserializer, + ); + + @protected + RelayAddress + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + SseDeserializer deserializer, + ); + + @protected + RelayConnectionInfo + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ); + + @protected + RelayConnectionStatus + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + SseDeserializer deserializer, + ); + + @protected + RelayInfo + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + SseDeserializer deserializer, + ); + + @protected + RelayStatusUpdate + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + SseDeserializer deserializer, + ); + + @protected + Signature + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + SseDeserializer deserializer, + ); + + @protected + SigningKey + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SseDeserializer deserializer, + ); + + @protected + SocketAddr + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SseDeserializer deserializer, + ); + + @protected + SystemCheckResults + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SseDeserializer deserializer, + ); + + @protected + TestInfo + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + SseDeserializer deserializer, + ); + + @protected + VerifyError + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + SseDeserializer deserializer, + ); + + @protected + VerifyingKey + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + SseDeserializer deserializer, + ); + + @protected + VerifyingKeyError + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + SseDeserializer deserializer, + ); + + @protected + ClientBuilder + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + SseDeserializer deserializer, + ); + + @protected + RelayConnectionInfo + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ); + + @protected + RelayInfo + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + SseDeserializer deserializer, + ); + + @protected + RelayStatusUpdate + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + SseDeserializer deserializer, + ); + + @protected + Client + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + SseDeserializer deserializer, + ); + + @protected + ClientSecret + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + SseDeserializer deserializer, + ); + + @protected + FileRef + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + SseDeserializer deserializer, + ); + + @protected + KeyPair + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + SseDeserializer deserializer, + ); + + @protected + RelayConnectionInfo + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ); + + @protected + RelayInfo + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + SseDeserializer deserializer, + ); + + @protected + RelayStatusUpdate + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + SseDeserializer deserializer, + ); + + @protected + Signature + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + SseDeserializer deserializer, + ); + + @protected + SigningKey + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SseDeserializer deserializer, + ); + + @protected + SocketAddr + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SseDeserializer deserializer, + ); + + @protected + SystemCheckResults + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SseDeserializer deserializer, + ); + + @protected + TestInfo + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + SseDeserializer deserializer, + ); + + @protected + VerifyingKey + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + SseDeserializer deserializer, + ); + + @protected + Client + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + SseDeserializer deserializer, + ); + + @protected + ClientBuilder + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + SseDeserializer deserializer, + ); + + @protected + ClientSecret + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + SseDeserializer deserializer, + ); + + @protected + FileRef + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + SseDeserializer deserializer, + ); + + @protected + KeyId + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + SseDeserializer deserializer, + ); + + @protected + KeyPair + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + SseDeserializer deserializer, + ); + + @protected + KeyPairError + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + SseDeserializer deserializer, + ); + + @protected + PathBuf + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + SseDeserializer deserializer, + ); + + @protected + RelayAddress + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + SseDeserializer deserializer, + ); + + @protected + RelayConnectionInfo + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ); + + @protected + RelayConnectionStatus + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + SseDeserializer deserializer, + ); + + @protected + RelayInfo + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + SseDeserializer deserializer, + ); + + @protected + RelayStatusUpdate + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + SseDeserializer deserializer, + ); + + @protected + Signature + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + SseDeserializer deserializer, + ); + + @protected + SigningKey + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SseDeserializer deserializer, + ); + + @protected + SocketAddr + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SseDeserializer deserializer, + ); + + @protected + SystemCheckResults + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SseDeserializer deserializer, + ); + + @protected + TestInfo + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + SseDeserializer deserializer, + ); + + @protected + VerifyError + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + SseDeserializer deserializer, + ); + + @protected + VerifyingKey + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + SseDeserializer deserializer, + ); + + @protected + VerifyingKeyError + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + SseDeserializer deserializer, + ); + + @protected + RustStreamSink + sse_decode_StreamSink_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults_Sse( + SseDeserializer deserializer, + ); + + @protected + RustStreamSink + sse_decode_StreamSink_overall_connection_status_Sse( + SseDeserializer deserializer, + ); + + @protected + String sse_decode_String(SseDeserializer deserializer); + + @protected + Algorithm sse_decode_algorithm(SseDeserializer deserializer); + + @protected + bool sse_decode_bool(SseDeserializer deserializer); + + @protected + int sse_decode_i_32(SseDeserializer deserializer); + + @protected + List + sse_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + SseDeserializer deserializer, + ); + + @protected + List + sse_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + SseDeserializer deserializer, + ); + + @protected + List + sse_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + SseDeserializer deserializer, + ); + + @protected + List sse_decode_list_String(SseDeserializer deserializer); + + @protected + List sse_decode_list_prim_u_8_loose(SseDeserializer deserializer); + + @protected + Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer); + + @protected + List sse_decode_list_test_category( + SseDeserializer deserializer, + ); + + @protected + String? sse_decode_opt_String(SseDeserializer deserializer); + + @protected + OverallConnectionStatus sse_decode_overall_connection_status( + SseDeserializer deserializer, + ); + + @protected + TestCategory sse_decode_test_category(SseDeserializer deserializer); + + @protected + int sse_decode_u_16(SseDeserializer deserializer); + + @protected + int sse_decode_u_32(SseDeserializer deserializer); + + @protected + BigInt sse_decode_u_64(SseDeserializer deserializer); + + @protected + int sse_decode_u_8(SseDeserializer deserializer); + + @protected + U8Array32 sse_decode_u_8_array_32(SseDeserializer deserializer); + + @protected + void sse_decode_unit(SseDeserializer deserializer); + + @protected + BigInt sse_decode_usize(SseDeserializer deserializer); + + @protected + void sse_encode_AnyhowException( + AnyhowException self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + Client self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ClientBuilder self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ClientSecret self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + FileRef self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + KeyId self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + KeyPair self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + KeyPairError self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + PathBuf self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + RelayAddress self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + RelayConnectionInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + RelayConnectionStatus self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + RelayInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + RelayStatusUpdate self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + Signature self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SigningKey self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SocketAddr self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SystemCheckResults self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + TestInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + VerifyError self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + VerifyingKey self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + VerifyingKeyError self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ClientBuilder self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + RelayConnectionInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + RelayInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + RelayStatusUpdate self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + Client self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ClientSecret self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + FileRef self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + KeyPair self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + RelayConnectionInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + RelayInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + RelayStatusUpdate self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + Signature self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SigningKey self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SocketAddr self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SystemCheckResults self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + TestInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + VerifyingKey self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + Client self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ClientBuilder self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ClientSecret self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + FileRef self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + KeyId self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + KeyPair self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + KeyPairError self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + PathBuf self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + RelayAddress self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + RelayConnectionInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + RelayConnectionStatus self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + RelayInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + RelayStatusUpdate self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + Signature self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + SigningKey self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + SocketAddr self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + SystemCheckResults self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + TestInfo self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + VerifyError self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + VerifyingKey self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + VerifyingKeyError self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_StreamSink_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults_Sse( + RustStreamSink self, + SseSerializer serializer, + ); + + @protected + void sse_encode_StreamSink_overall_connection_status_Sse( + RustStreamSink self, + SseSerializer serializer, + ); + + @protected + void sse_encode_String(String self, SseSerializer serializer); + + @protected + void sse_encode_algorithm(Algorithm self, SseSerializer serializer); + + @protected + void sse_encode_bool(bool self, SseSerializer serializer); + + @protected + void sse_encode_i_32(int self, SseSerializer serializer); + + @protected + void + sse_encode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + List self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + List self, + SseSerializer serializer, + ); + + @protected + void + sse_encode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + List self, + SseSerializer serializer, + ); + + @protected + void sse_encode_list_String(List self, SseSerializer serializer); + + @protected + void sse_encode_list_prim_u_8_loose(List self, SseSerializer serializer); + + @protected + void sse_encode_list_prim_u_8_strict( + Uint8List self, + SseSerializer serializer, + ); + + @protected + void sse_encode_list_test_category( + List self, + SseSerializer serializer, + ); + + @protected + void sse_encode_opt_String(String? self, SseSerializer serializer); + + @protected + void sse_encode_overall_connection_status( + OverallConnectionStatus self, + SseSerializer serializer, + ); + + @protected + void sse_encode_test_category(TestCategory self, SseSerializer serializer); + + @protected + void sse_encode_u_16(int self, SseSerializer serializer); + + @protected + void sse_encode_u_32(int self, SseSerializer serializer); + + @protected + void sse_encode_u_64(BigInt self, SseSerializer serializer); + + @protected + void sse_encode_u_8(int self, SseSerializer serializer); + + @protected + void sse_encode_u_8_array_32(U8Array32 self, SseSerializer serializer); + + @protected + void sse_encode_unit(void self, SseSerializer serializer); + + @protected + void sse_encode_usize(BigInt self, SseSerializer serializer); +} + +// Section: wire_class + +class RustLibWire implements BaseWire { + RustLibWire.fromExternalLibrary(ExternalLibrary lib); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + ptr, + ); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + int ptr, + ) => wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + ptr, + ); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + int ptr, + ) => wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + ptr, + ); +} + +@JS('wasm_bindgen') +external RustLibWasmModule get wasmModule; + +@JS() +@anonymous +extension type RustLibWasmModule._(JSObject _) implements JSObject { + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + int ptr, + ); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + int ptr, + ); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + int ptr, + ); +} diff --git a/packages/zoe_native/lib/src/rust/lib.dart b/packages/zoe_native/lib/src/rust/lib.dart new file mode 100644 index 00000000..8eed8955 --- /dev/null +++ b/packages/zoe_native/lib/src/rust/lib.dart @@ -0,0 +1,26 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import 'frb_generated.dart'; +import 'package:collection/collection.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +// Rust type: RustOpaqueMoi> +abstract class RelayAddress implements RustOpaqueInterface {} + +// Rust type: RustOpaqueMoi> +abstract class SocketAddr implements RustOpaqueInterface {} + +class U8Array32 extends NonGrowableListView { + static const arraySize = 32; + + @internal + Uint8List get inner => _inner; + final Uint8List _inner; + + U8Array32(this._inner) : assert(_inner.length == arraySize), super(_inner); + + U8Array32.init() : this(Uint8List(arraySize)); +} diff --git a/lib/core/rust/third_party/zoe_client/client.dart b/packages/zoe_native/lib/src/rust/third_party/zoe_client/client.dart similarity index 52% rename from lib/core/rust/third_party/zoe_client/client.dart rename to packages/zoe_native/lib/src/rust/third_party/zoe_client/client.dart index d9c11cf1..eb7b6d65 100644 --- a/lib/core/rust/third_party/zoe_client/client.dart +++ b/packages/zoe_native/lib/src/rust/third_party/zoe_client/client.dart @@ -5,18 +5,39 @@ import '../../frb_generated.dart'; import '../../lib.dart'; +import '../zoe_wire_protocol/keys.dart'; +import '../zoe_wire_protocol/primitives.dart'; +import 'client/api/file_storage.dart'; import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; -// These types are ignored because they are neither used by any `pub` functions nor (for structs and enums) marked `#[frb(unignore)]`: `ClientInner` -// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `clone`, `try_from` -// These functions are ignored (category: IgnoreBecauseExplicitAttribute): `blob_client`, `signing_key` +// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `clone` // Rust type: RustOpaqueMoi> abstract class Client implements RustOpaqueInterface { + /// Add a relay server to the client + /// + /// This will attempt to connect to all addresses in the RelayAddress in random order + /// with a 10-second timeout per attempt. Only adds the relay to local state if a + /// connection succeeds. + Future addRelay({required RelayAddress address}); + /// Create a new ClientBuilder for constructing a Client static Future builder() => RustLib.instance.api.zoeClientClientClientBuilder(); + /// Get the current client secret + Future clientSecret(); + + Future clientSecretHex(); + + Future close(); + + /// Get list of all configured relays with their connection status + Future> getRelayStatus(); + + /// Check if any relays are currently connected + Future hasConnectedRelays(); + /// Check if a file exists in storage /// /// # Arguments @@ -28,6 +49,21 @@ abstract class Client implements RustOpaqueInterface { /// `true` if the file exists in storage, `false` otherwise Future hasFile({required FileRef storedInfo}); + Future idHex(); + + /// Calculate the current overall connection status + /// + /// This is computed from the current relay states, ensuring it's always accurate but makes it + /// a bit more expensive to compute. For live updates it is recommended to use `overall_status_stream` + /// instead. + Future overallStatus(); + + /// Attempt to reconnect to all failed relays + Future reconnectFailedRelays(); + + /// Remove a relay connection (offline mode only) + Future removeRelay({required VerifyingKey serverPublicKey}); + /// Retrieve a file from storage and save it to disk /// /// This method: @@ -119,48 +155,115 @@ abstract class Client implements RustOpaqueInterface { // Rust type: RustOpaqueMoi> abstract class ClientBuilder implements RustOpaqueInterface { + /// Enable or disable automatic connection to server during build + /// + /// When autoconnect is true (default for backward compatibility), the client + /// will require server information and connect immediately during build(). + /// When autoconnect is false, the client starts in offline mode and can + /// connect to relays later using add_relay(). + Future autoconnect({required bool autoconnect}); + Future build(); Future clientSecret({required ClientSecret secret}); + /// Set the storage database path (convenience method) + Future dbStorageDir({required String path}); + static Future default_() => RustLib.instance.api.zoeClientClientClientBuilderDefault(); - Future mediaStoragePath({required String mediaStoragePath}); + /// Set the encryption key for storage + Future encryptionKey({required U8Array32 key}); + + Future mediaStorageDir({required String mediaStorageDir}); Future serverInfo({ required VerifyingKey serverPublicKey, required SocketAddr serverAddr, }); + + Future servers({required List servers}); } // Rust type: RustOpaqueMoi> abstract class ClientSecret implements RustOpaqueInterface { - Future asHex(); + static Future fromHex({required String hex}) => + RustLib.instance.api.zoeClientClientClientSecretFromHex(hex: hex); - static Future fromHex({required String value}) => - RustLib.instance.api.zoeClientClientClientSecretFromHex(value: value); + /// Get the list of configured servers + Future servers(); - // HINT: Make it `#[frb(sync)]` to let it become the default constructor of Dart class. - static Future newInstance({ - required SigningKey signingKey, - required VerifyingKey serverPublicKey, - required SocketAddr serverAddr, - }) => RustLib.instance.api.zoeClientClientClientSecretNew( - signingKey: signingKey, - serverPublicKey: serverPublicKey, - serverAddr: serverAddr, - ); + Future toHex(); } -// Rust type: RustOpaqueMoi> -abstract class FileRef implements RustOpaqueInterface {} +// Rust type: RustOpaqueMoi> +abstract class RelayConnectionInfo implements RustOpaqueInterface { + RelayInfo get info; -// Rust type: RustOpaqueMoi> -abstract class PathBuf implements RustOpaqueInterface {} + RelayConnectionStatus get status; -// Rust type: RustOpaqueMoi> -abstract class SocketAddr implements RustOpaqueInterface {} + set info(RelayInfo info); + + set status(RelayConnectionStatus status); +} -// Rust type: RustOpaqueMoi> -abstract class VerifyingKey implements RustOpaqueInterface {} +// Rust type: RustOpaqueMoi> +abstract class RelayConnectionStatus implements RustOpaqueInterface {} + +// Rust type: RustOpaqueMoi> +abstract class RelayInfo implements RustOpaqueInterface { + RelayAddress get relayAddress; + + KeyId get relayId; + + set relayAddress(RelayAddress relayAddress); + + set relayId(KeyId relayId); +} + +// Rust type: RustOpaqueMoi> +abstract class RelayStatusUpdate implements RustOpaqueInterface { + RelayAddress get relayAddress; + + KeyId get relayId; + + RelayConnectionStatus get status; + + set relayAddress(RelayAddress relayAddress); + + set relayId(KeyId relayId); + + set status(RelayConnectionStatus status); +} + +/// Overall connection status for the client +class OverallConnectionStatus { + /// True if connected to at least one relay + final bool isConnected; + + /// Number of connected relays + final BigInt connectedCount; + + /// Total number of configured relays + final BigInt totalCount; + + const OverallConnectionStatus({ + required this.isConnected, + required this.connectedCount, + required this.totalCount, + }); + + @override + int get hashCode => + isConnected.hashCode ^ connectedCount.hashCode ^ totalCount.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is OverallConnectionStatus && + runtimeType == other.runtimeType && + isConnected == other.isConnected && + connectedCount == other.connectedCount && + totalCount == other.totalCount; +} diff --git a/packages/zoe_native/lib/src/rust/third_party/zoe_client/client/api/file_storage.dart b/packages/zoe_native/lib/src/rust/third_party/zoe_client/client/api/file_storage.dart new file mode 100644 index 00000000..dc66b948 --- /dev/null +++ b/packages/zoe_native/lib/src/rust/third_party/zoe_client/client/api/file_storage.dart @@ -0,0 +1,13 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../../../../frb_generated.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +// Rust type: RustOpaqueMoi> +abstract class FileRef implements RustOpaqueInterface {} + +// Rust type: RustOpaqueMoi> +abstract class PathBuf implements RustOpaqueInterface {} diff --git a/packages/zoe_native/lib/src/rust/third_party/zoe_client/client/api/relay.dart b/packages/zoe_native/lib/src/rust/third_party/zoe_client/client/api/relay.dart new file mode 100644 index 00000000..72dcc343 --- /dev/null +++ b/packages/zoe_native/lib/src/rust/third_party/zoe_client/client/api/relay.dart @@ -0,0 +1,35 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../../../../frb_generated.dart'; +import '../../../../lib.dart'; +import '../../../zoe_wire_protocol/primitives.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `fmt` +// These functions are ignored (category: IgnoreBecauseExplicitAttribute): `subscribe_to_relay_status` +// These functions have error during generation (see debug logs or enable `stop_on_error: true` for more details): `await_result`, `detach`, `overall_status_stream` + +// Rust type: RustOpaqueMoi> +abstract class RelayConnectionHandle implements RustOpaqueInterface { + RelayAddress get relayAddress; + + KeyId get relayId; + + set relayAddress(RelayAddress relayAddress); + + set relayId(KeyId relayId); + + /// Poll for the connection result (non-blocking) + /// + /// Returns: + /// - `Ok(Some(result))` if the connection attempt has completed + /// - `Ok(None)` if the connection is still in progress + /// - `Err(_)` if there was an error polling (shouldn't happen normally) + Future tryResult(); +} + +// Rust type: RustOpaqueMoi>> +abstract class Result implements RustOpaqueInterface {} diff --git a/packages/zoe_native/lib/src/rust/third_party/zoe_client/client/api/secret.dart b/packages/zoe_native/lib/src/rust/third_party/zoe_client/client/api/secret.dart new file mode 100644 index 00000000..650ba3d1 --- /dev/null +++ b/packages/zoe_native/lib/src/rust/third_party/zoe_client/client/api/secret.dart @@ -0,0 +1,10 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../../../../frb_generated.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +// Rust type: RustOpaqueMoi>> +abstract class SubscriberClientSecret implements RustOpaqueInterface {} diff --git a/packages/zoe_native/lib/src/rust/third_party/zoe_client/error.dart b/packages/zoe_native/lib/src/rust/third_party/zoe_client/error.dart new file mode 100644 index 00000000..ba9a3f82 --- /dev/null +++ b/packages/zoe_native/lib/src/rust/third_party/zoe_client/error.dart @@ -0,0 +1,10 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../../frb_generated.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +// Rust type: RustOpaqueMoi> +abstract class ClientError implements RustOpaqueInterface {} diff --git a/lib/core/rust/third_party/zoe_client/frb_api.dart b/packages/zoe_native/lib/src/rust/third_party/zoe_client/frb_api.dart similarity index 65% rename from lib/core/rust/third_party/zoe_client/frb_api.dart rename to packages/zoe_native/lib/src/rust/third_party/zoe_client/frb_api.dart index 54e4047c..ddcf5942 100644 --- a/lib/core/rust/third_party/zoe_client/frb_api.dart +++ b/packages/zoe_native/lib/src/rust/third_party/zoe_client/frb_api.dart @@ -4,6 +4,8 @@ // ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import import '../../frb_generated.dart'; +import '../../lib.dart'; +import '../zoe_wire_protocol/keys.dart'; import 'client.dart'; import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; @@ -19,6 +21,8 @@ Future socketAddrIp({required SocketAddr addr}) => Future socketAddrPort({required SocketAddr addr}) => RustLib.instance.api.zoeClientFrbApiSocketAddrPort(addr: addr); +Future frbInit() => RustLib.instance.api.zoeClientFrbApiFrbInit(); + Future createSigningKeyRandom() => RustLib.instance.api.zoeClientFrbApiCreateSigningKeyRandom(); @@ -30,5 +34,23 @@ Future signingKeyToVerifyingKey({required String signingKeyHex}) => signingKeyHex: signingKeyHex, ); -Future verifyingKeyFromHex({required String hex}) => +Future verifyingKeyFromHex({required String hex}) => RustLib.instance.api.zoeClientFrbApiVerifyingKeyFromHex(hex: hex); + +Future prepareClientForSystemsTest({ + required Client client, + required String serverAddress, + required String serverKeyHex, +}) => RustLib.instance.api.zoeClientFrbApiPrepareClientForSystemsTest( + client: client, + serverAddress: serverAddress, + serverKeyHex: serverKeyHex, +); + +Future createRelayAddressWithHostname({ + required String serverKeyHex, + required String hostname, +}) => RustLib.instance.api.zoeClientFrbApiCreateRelayAddressWithHostname( + serverKeyHex: serverKeyHex, + hostname: hostname, +); diff --git a/packages/zoe_native/lib/src/rust/third_party/zoe_client/system_check.dart b/packages/zoe_native/lib/src/rust/third_party/zoe_client/system_check.dart new file mode 100644 index 00000000..86623f57 --- /dev/null +++ b/packages/zoe_native/lib/src/rust/third_party/zoe_client/system_check.dart @@ -0,0 +1,34 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../../frb_generated.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +// Rust type: RustOpaqueMoi> +abstract class SystemCheckResults implements RustOpaqueInterface {} + +// Rust type: RustOpaqueMoi> +abstract class TestInfo implements RustOpaqueInterface {} + +/// Categories of system check tests +enum TestCategory { + /// Offline storage tests (without relay connection) + offlineStorage, + + /// Offline blob service tests (without relay connection) + offlineBlob, + + /// Server connectivity and handshake tests + connectivity, + + /// Online message storage and retrieval tests + storage, + + /// Online blob service upload/download tests + blobService, + + /// Synchronization verification tests + synchronization, +} diff --git a/packages/zoe_native/lib/src/rust/third_party/zoe_client/util.dart b/packages/zoe_native/lib/src/rust/third_party/zoe_client/util.dart new file mode 100644 index 00000000..ce26e71d --- /dev/null +++ b/packages/zoe_native/lib/src/rust/third_party/zoe_client/util.dart @@ -0,0 +1,11 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../../frb_generated.dart'; +import '../../lib.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +Future resolveToSocketAddr({required String s}) => + RustLib.instance.api.zoeClientUtilResolveToSocketAddr(s: s); diff --git a/packages/zoe_native/lib/src/rust/third_party/zoe_wire_protocol/keys.dart b/packages/zoe_native/lib/src/rust/third_party/zoe_wire_protocol/keys.dart new file mode 100644 index 00000000..1c2ed0f0 --- /dev/null +++ b/packages/zoe_native/lib/src/rust/third_party/zoe_wire_protocol/keys.dart @@ -0,0 +1,260 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../../frb_generated.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; +import 'primitives.dart'; + +// These functions are ignored because they have generic arguments: `generate_ed25519`, `generate_for_algorithm`, `generate_ml_dsa44`, `generate_ml_dsa65`, `generate_ml_dsa87`, `generate` +// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `assert_receiver_is_total_eq`, `clone`, `clone`, `clone`, `clone`, `cmp`, `eq`, `eq`, `eq`, `eq`, `eq`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `hash`, `partial_cmp`, `partial_cmp`, `source`, `try_from` + +// Rust type: RustOpaqueMoi> +abstract class KeyPair implements RustOpaqueInterface { + /// Get the algorithm for this key type + Future algorithm(); + + /// Decode a KeyPair from a PEM string. + /// + /// This method can parse PEM files created by `to_pem()`, using `parse_many` to + /// read multiple PEM blocks and automatically detecting the key type from the + /// PEM labels to reconstruct the appropriate KeyPair. + /// + /// # Arguments + /// + /// * `pem_string` - The PEM-formatted string containing key data + /// + /// # Returns + /// + /// A `KeyPair` instance reconstructed from the PEM data. + /// + /// # Examples + /// + /// ```rust + /// use zoe_wire_protocol::KeyPair; + /// use rand::rngs::OsRng; + /// + /// let original = KeyPair::generate_ed25519(&mut OsRng); + /// let pem_string = original.to_pem().unwrap(); + /// let restored = KeyPair::from_pem(&pem_string).unwrap(); + /// + /// assert_eq!(original.public_key(), restored.public_key()); + /// ``` + static Future fromPem({required String pemString}) => RustLib + .instance + .api + .zoeWireProtocolKeysKeyPairFromPem(pemString: pemString); + + Future id(); + + Future publicKey(); + + Future sign({required List message}); + + /// Encode the KeyPair to a PEM string suitable for environment variables or file storage. + /// + /// This method creates PEM blocks containing: + /// - For Ed25519: Only the private key (public key can be derived) + /// - For ML-DSA: Both private and public keys in separate PEM blocks (hash is derived from public key) + /// + /// All PEM blocks are prefixed with "ZOE" to identify them as Zoe-specific formats. + /// + /// # Returns + /// + /// A PEM-formatted string containing the key data. + /// + /// # Examples + /// + /// ```rust + /// use zoe_wire_protocol::KeyPair; + /// use rand::rngs::OsRng; + /// + /// let keypair = KeyPair::generate_ed25519(&mut OsRng); + /// let pem_string = keypair.to_pem().unwrap(); + /// + /// // Store in environment variable or file + /// std::env::set_var("MY_PRIVATE_KEY", &pem_string); + /// ``` + Future toPem(); +} + +// Rust type: RustOpaqueMoi> +abstract class KeyPairError implements RustOpaqueInterface {} + +// Rust type: RustOpaqueMoi> +abstract class Signature implements RustOpaqueInterface { + /// Encode the Signature to bytes for serialization + Future encode(); + + Future id(); +} + +// Rust type: RustOpaqueMoi> +abstract class SigningKey implements RustOpaqueInterface { + /// Sign a message with this signing key + Future sign({required List message}); +} + +// Rust type: RustOpaqueMoi> +abstract class VerifyError implements RustOpaqueInterface {} + +// Rust type: RustOpaqueMoi> +abstract class VerifyingKey implements RustOpaqueInterface { + /// Get the algorithm for this key type + /// + /// flutter_rust_bridge:opaque + Future algorithm(); + + /// Encode the VerifyingKey to bytes for serialization. + /// + /// This method serializes the key using postcard format for efficient storage + /// and transmission. The resulting bytes can be deserialized back to a + /// `VerifyingKey` using `postcard::from_bytes()`. + /// + /// # Returns + /// + /// A `Vec` containing the serialized key data. + /// + /// # Examples + /// + /// ```rust + /// use zoe_wire_protocol::{KeyPair, VerifyingKey}; + /// use rand::rngs::OsRng; + /// + /// let keypair = KeyPair::generate_ed25519(&mut OsRng); + /// let verifying_key = keypair.public_key(); + /// + /// // Serialize the key + /// let key_bytes = verifying_key.encode(); + /// + /// // Deserialize it back + /// let restored_key: VerifyingKey = postcard::from_bytes(&key_bytes).unwrap(); + /// assert_eq!(&verifying_key, &restored_key); + /// ``` + /// flutter_rust_bridge:opaque + Future encode(); + + /// flutter_rust_bridge:opaque + static Future fromHex({required String hex}) => + RustLib.instance.api.zoeWireProtocolKeysVerifyingKeyFromHex(hex: hex); + + /// Import a VerifyingKey from PEM format. + /// + /// This method parses a PEM-encoded string and deserializes it back to a + /// `VerifyingKey`. The PEM block should have the label "ZOE PUBLIC KEY". + /// + /// # Arguments + /// + /// * `pem_string` - A string containing the PEM-encoded public key + /// + /// # Returns + /// + /// A `Result` containing the decoded key or an error. + /// + /// # Examples + /// + /// ```rust + /// use zoe_wire_protocol::{KeyPair, VerifyingKey}; + /// use rand::rngs::OsRng; + /// + /// let original_keypair = KeyPair::generate_ed25519(&mut OsRng); + /// let original_key = original_keypair.public_key(); + /// let pem_string = original_key.to_pem().unwrap(); + /// + /// let restored_key = VerifyingKey::from_pem(&pem_string).unwrap(); + /// assert_eq!(original_key.encode(), restored_key.encode()); + /// ``` + /// flutter_rust_bridge:opaque + static Future fromPem({required String pemString}) => RustLib + .instance + .api + .zoeWireProtocolKeysVerifyingKeyFromPem(pemString: pemString); + + /// flutter_rust_bridge:opaque + Future id(); + + /// flutter_rust_bridge:opaque + Future toBytes(); + + /// Export the VerifyingKey to PEM format. + /// + /// This method serializes the key using postcard format and then encodes it + /// as a PEM block with the label "ZOE PUBLIC KEY". This provides a standardized + /// text format that's compatible with many cryptographic tools and libraries. + /// + /// # Returns + /// + /// A `Result` containing the PEM-encoded key or an error. + /// + /// # Examples + /// + /// ```rust + /// use zoe_wire_protocol::{KeyPair, VerifyingKey}; + /// use rand::rngs::OsRng; + /// + /// let keypair = KeyPair::generate_ed25519(&mut OsRng); + /// let verifying_key = keypair.public_key(); + /// let pem_string = verifying_key.to_pem().unwrap(); + /// println!("Public key PEM:\n{}", pem_string); + /// ``` + /// flutter_rust_bridge:opaque + Future toPem(); + + /// Verify a signature against a message using the appropriate algorithm. + /// + /// This method automatically matches the signature type with the key type + /// and returns `Ok(false)` if they don't match (rather than an error). + /// + /// # Arguments + /// + /// * `message` - The message bytes that were signed + /// * `signature` - The signature to verify + /// + /// # Returns + /// + /// * `Ok(true)` - Signature is valid for this key and message + /// * `Ok(false)` - Signature is invalid or key/signature types don't match + /// * `Err(_)` - Verification error (malformed signature, etc.) + /// + /// # Examples + /// + /// ```rust + /// use zoe_wire_protocol::{KeyPair, VerifyingKey, SigningKey}; + /// use rand::rngs::OsRng; + /// + /// # fn example() -> Result<(), Box> { + /// let keypair = KeyPair::generate_ed25519(&mut OsRng); + /// let message = b"Hello, world!"; + /// let signature = keypair.sign(message); + /// let verifying_key = keypair.public_key(); + /// + /// let is_valid = verifying_key.verify(message, &signature)?; + /// assert!(is_valid); + /// # Ok(()) + /// # } + /// ``` + /// flutter_rust_bridge:opaque + Future verify({ + required List message, + required Signature signature, + }); +} + +// Rust type: RustOpaqueMoi> +abstract class VerifyingKeyError implements RustOpaqueInterface {} + +/// Cryptographic algorithm identifier +enum Algorithm { + /// Ed25519 elliptic curve signatures + ed25519, + + /// ML-DSA-44 post-quantum signatures (TLS certificates, ~128-bit security) + mlDsa44, + + /// ML-DSA-65 post-quantum signatures (messages, ~192-bit security) + mlDsa65, + + /// ML-DSA-87 post-quantum signatures (high security, ~256-bit security) + mlDsa87, +} diff --git a/lib/core/rust/lib.dart b/packages/zoe_native/lib/src/rust/third_party/zoe_wire_protocol/primitives.dart similarity index 73% rename from lib/core/rust/lib.dart rename to packages/zoe_native/lib/src/rust/third_party/zoe_wire_protocol/primitives.dart index 64eaf406..b2efa863 100644 --- a/lib/core/rust/lib.dart +++ b/packages/zoe_native/lib/src/rust/third_party/zoe_wire_protocol/primitives.dart @@ -3,8 +3,8 @@ // ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import -import 'frb_generated.dart'; +import '../../frb_generated.dart'; import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; -// Rust type: RustOpaqueMoi> -abstract class SigningKey implements RustOpaqueInterface {} +// Rust type: RustOpaqueMoi> +abstract class KeyId implements RustOpaqueInterface {} diff --git a/packages/zoe_native/lib/src/support.dart b/packages/zoe_native/lib/src/support.dart new file mode 100644 index 00000000..663675c4 --- /dev/null +++ b/packages/zoe_native/lib/src/support.dart @@ -0,0 +1,228 @@ +import 'dart:async'; +import 'dart:io'; + +import 'package:flutter/cupertino.dart'; +import 'package:flutter/services.dart'; +import 'package:path/path.dart' as p; +import 'package:path_provider/path_provider.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:zoe_native/zoe_native.dart'; +import 'package:logging/logging.dart'; + +final _log = Logger('zoe_native::support'); + +void _logListener(LogRecord record) { + debugPrint('${record.level.name}: ${record.time}: ${record.message}'); +} + +const rustLogKey = 'RUST_LOG'; +const proxyKey = 'HTTP_PROXY'; +const bool isDevBuild = !bool.fromEnvironment('dart.vm.product'); + +// default development server - exported for use in UI +const String defaultServerAddr = 'a.dev.hellozoe.app:13918'; +const String defaultServerKey = + '00202ee21d8cc6e519ba164ca4d10c2bae101f83bfd46249f2b7bb86f9083d50ed76'; + +FlutterSecureStorage? _globalStorage; +String _globalSessionKey = 'clientSecret'; + +void initStorage({ + required String appleKeychainAppGroupName, + String? sessionKey, +}) { + if (_globalStorage != null) { + throw 'Storage already initialized'; + } + if (sessionKey != null) { + _globalSessionKey = sessionKey; + } + _log.onRecord.listen(_logListener); + + _globalStorage = FlutterSecureStorage( + aOptions: AndroidOptions( + preferencesKeyPrefix: isDevBuild ? 'dev.flutter' : null, + ), + iOptions: IOSOptions( + synchronizable: false, + accessibility: KeychainAccessibility + .first_unlock, // must have been unlocked since reboot + groupId: + appleKeychainAppGroupName, // to allow the background process to access the same store + ), + mOptions: MacOsOptions( + synchronizable: false, + accessibility: KeychainAccessibility + .first_unlock, // must have been unlocked since reboot + groupId: + appleKeychainAppGroupName, // to allow the background process to access the same store + ), + ); +} + +Completer? _appDirCompl; +Completer? _appCacheDirCompl; +Completer? _clientCompl; + +Future appDir() async { + if (_appDirCompl == null) { + Completer completer = Completer(); + completer.complete(appDirInner()); + _appDirCompl = completer; + } + return _appDirCompl!.future; +} + +Future appCacheDir() async { + if (_appCacheDirCompl == null) { + Completer completer = Completer(); + completer.complete(appCacheDirInner()); + _appCacheDirCompl = completer; + } + return _appCacheDirCompl!.future; +} + +Future appDirInner() async { + Directory appDocDir = await getApplicationSupportDirectory(); + if (isDevBuild) { + // on dev we put this into a subfolder to separate from any installed version + appDocDir = Directory(p.join(appDocDir.path, 'DEV')); + if (!await appDocDir.exists()) { + await appDocDir.create(); + } + } + return appDocDir.path; +} + +Future appCacheDirInner() async { + Directory appCacheDir = await getApplicationCacheDirectory(); + if (isDevBuild) { + // on dev we put this into a subfolder to separate from any installed version + appCacheDir = Directory(p.join(appCacheDir.path, 'DEV')); + if (!await appCacheDir.exists()) { + await appCacheDir.create(); + } + } + return appCacheDir.path; +} + +Future _writeClientSecret(String clientSecret) async { + if (_globalStorage == null) { + throw 'Secure Storage not initialized. call initStorage() first!'; + } + final storage = _globalStorage!; + await storage.write(key: _globalSessionKey, value: clientSecret); +} + +Future _readClientSecret() async { + if (_globalStorage == null) { + throw 'Secure Storage not initialized. call initStorage() first!'; + } + final storage = _globalStorage!; + final sessionKey = _globalSessionKey; + + int delayedCounter = 0; + while ((await storage.isCupertinoProtectedDataAvailable()) == false) { + if (delayedCounter > 10) { + _log.severe('Secure Store: not available after 10 seconds'); + throw 'Secure Store: not available'; + } + delayedCounter += 1; + _log.info('Secure Store: not available yet. Delaying'); + await Future.delayed(const Duration(milliseconds: 50)); + } + + _log.info('Secure Store: available. Attempting to read.'); + if (Platform.isAndroid) { + // fake read for https://github.com/mogol/flutter_secure_storage/issues/566 + _log.info('Secure Store: fake read for android'); + await storage.read(key: sessionKey); + } + _log.info('Secure Store: attempting to check if $sessionKey exists'); + String? sessionsStr; + try { + sessionsStr = await storage.read(key: sessionKey); + } on PlatformException catch (error, stack) { + if (error.code == '-25300') { + _log.severe('Ignoring read failure for missing key $sessionKey'); + } else { + _log.severe( + 'Ignoring read failure of session key $sessionKey', + error, + stack, + ); + } + } catch (error, stack) { + _log.severe( + 'Ignoring read failure of session key $sessionKey', + error, + stack, + ); + } + + return sessionsStr; +} + +Future _defaultClientBuilder({ + String? serverAddr, + String? serverKey, +}) async { + ClientBuilder builder = await ClientBuilder.default_(); + + builder.dbStorageDir(path: await appDir()); + builder.mediaStorageDir(mediaStorageDir: await appCacheDir()); + + serverAddr ??= defaultServerAddr; + serverKey ??= defaultServerKey; + + _log.info('serverAddr: $serverAddr'); + _log.info('serverKey: $serverKey'); + + // Create RelayAddress that can handle hostnames + final relayAddress = await createRelayAddressWithHostname( + serverKeyHex: serverKey, + hostname: serverAddr, + ); + + builder.servers(servers: [relayAddress]); + builder.autoconnect(autoconnect: true); + return builder; +} + +Future _loadOrGenerateClient() async { + final clientSecret = await _readClientSecret(); + final builder = await _defaultClientBuilder(); + if (clientSecret != null) { + final secret = await ClientSecret.fromHex(hex: clientSecret); + builder.clientSecret(secret: secret); + return await builder.build(); + } + final client = await builder.build(); + final clientSecretHex = await client.clientSecretHex(); + await _writeClientSecret(clientSecretHex); + return client; +} + +Future loadOrGenerateClient() async { + if (_clientCompl == null) { + Completer completer = Completer(); + completer.complete(await _loadOrGenerateClient()); + _clientCompl = completer; + } + return _clientCompl!.future; +} + +/// Resets the client by clearing stored secrets and forcing regeneration +Future resetClient() async { + _log.info('Resetting client - clearing stored secrets'); + + // Clear the stored client secret + if (_globalStorage != null) { + await _globalStorage!.delete(key: _globalSessionKey); + } + + // Reset the client completer to force regeneration + _clientCompl = null; + + _log.info('Client reset completed'); +} diff --git a/packages/zoe_native/lib/zoe_native.dart b/packages/zoe_native/lib/zoe_native.dart new file mode 100644 index 00000000..bfe40c1b --- /dev/null +++ b/packages/zoe_native/lib/zoe_native.dart @@ -0,0 +1,10 @@ +library; + +export 'src/rust/api/simple.dart'; +export 'src/rust/api/system_test.dart'; +export 'src/rust/third_party/zoe_client/client.dart'; +export 'src/rust/third_party/zoe_client/frb_api.dart'; +export 'src/rust/third_party/zoe_wire_protocol/keys.dart'; +export 'src/rust/third_party/zoe_client/util.dart'; +export 'src/support.dart'; +export 'src/rust/frb_generated.dart'; diff --git a/rust_builder/linux/CMakeLists.txt b/packages/zoe_native/linux/CMakeLists.txt similarity index 82% rename from rust_builder/linux/CMakeLists.txt rename to packages/zoe_native/linux/CMakeLists.txt index 13dc75a7..b60dd5ff 100644 --- a/rust_builder/linux/CMakeLists.txt +++ b/packages/zoe_native/linux/CMakeLists.txt @@ -4,16 +4,16 @@ cmake_minimum_required(VERSION 3.10) # Project-level configuration. -set(PROJECT_NAME "rust_lib_zoe") +set(PROJECT_NAME "zoe_native") project(${PROJECT_NAME} LANGUAGES CXX) include("../cargokit/cmake/cargokit.cmake") -apply_cargokit(${PROJECT_NAME} ../../rust rust_lib_zoe "") +apply_cargokit(${PROJECT_NAME} ../rust zoe_native "") # List of absolute paths to libraries that should be bundled with the plugin. # This list could contain prebuilt libraries, or libraries created by an # external build triggered from this build file. -set(rust_lib_zoe_bundled_libraries +set(zoe_native_bundled_libraries "${${PROJECT_NAME}_cargokit_lib}" PARENT_SCOPE ) diff --git a/rust_builder/macos/Classes/dummy_file.c b/packages/zoe_native/macos/Classes/dummy_file.c similarity index 100% rename from rust_builder/macos/Classes/dummy_file.c rename to packages/zoe_native/macos/Classes/dummy_file.c diff --git a/rust_builder/macos/rust_lib_zoe.podspec b/packages/zoe_native/macos/zoe_native.podspec similarity index 81% rename from rust_builder/macos/rust_lib_zoe.podspec rename to packages/zoe_native/macos/zoe_native.podspec index fab20677..047dd1a6 100644 --- a/rust_builder/macos/rust_lib_zoe.podspec +++ b/packages/zoe_native/macos/zoe_native.podspec @@ -1,9 +1,9 @@ # # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. -# Run `pod lib lint rust_lib_zoe.podspec` to validate before publishing. +# Run `pod lib lint zoe_native.podspec` to validate before publishing. # Pod::Spec.new do |s| - s.name = 'rust_lib_zoe' + s.name = 'zoe_native' s.version = '0.0.1' s.summary = 'A new Flutter FFI plugin project.' s.description = <<-DESC @@ -22,23 +22,26 @@ A new Flutter FFI plugin project. s.dependency 'FlutterMacOS' s.platform = :osx, '10.11' + + # Link required system frameworks + s.frameworks = 'SystemConfiguration' s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } s.swift_version = '5.0' s.script_phase = { :name => 'Build Rust library', # First argument is relative path to the `rust` folder, second is name of rust library - :script => 'sh "$PODS_TARGET_SRCROOT/../cargokit/build_pod.sh" ../../rust rust_lib_zoe', + :script => 'sh "$PODS_TARGET_SRCROOT/../cargokit/build_pod.sh" ../rust zoe_native', :execution_position => :before_compile, :input_files => ['${BUILT_PRODUCTS_DIR}/cargokit_phony'], # Let XCode know that the static library referenced in -force_load below is # created by this build step. - :output_files => ["${BUILT_PRODUCTS_DIR}/librust_lib_zoe.a"], + :output_files => ["${BUILT_PRODUCTS_DIR}/libzoe_native.a"], } s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', # Flutter.framework does not contain a i386 slice. 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386', - 'OTHER_LDFLAGS' => '-force_load ${BUILT_PRODUCTS_DIR}/librust_lib_zoe.a -lc++ -framework SystemConfiguration', + 'OTHER_LDFLAGS' => '-force_load ${BUILT_PRODUCTS_DIR}/libzoe_native.a', } end \ No newline at end of file diff --git a/packages/zoe_native/pubspec.yaml b/packages/zoe_native/pubspec.yaml new file mode 100644 index 00000000..667cf2f0 --- /dev/null +++ b/packages/zoe_native/pubspec.yaml @@ -0,0 +1,93 @@ +name: zoe_native +description: "A new Flutter FFI plugin project." +version: 0.0.1 +homepage: + +environment: + sdk: ^3.9.0 + flutter: '>=3.3.0' + +dependencies: + flutter: + sdk: flutter + flutter_rust_bridge: 2.11.1 + flutter_secure_storage: ^10.0.0-beta.4 + package_info_plus: ^8.3.1 + path: ^1.9.1 + path_provider: ^2.1.5 + plugin_platform_interface: ^2.0.2 + riverpod: ^2.6.1 + + collection: any + logging: ^1.3.0 +dev_dependencies: + ffi: ^2.1.3 + ffigen: ^13.0.0 + mocktail: ^1.0.4 + test: ^1.26.0 + flutter_test: + sdk: flutter + flutter_lints: ^5.0.0 + integration_test: + sdk: flutter + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + # This section identifies this Flutter project as a plugin project. + # The 'pluginClass' specifies the class (in Java, Kotlin, Swift, Objective-C, etc.) + # which should be registered in the plugin registry. This is required for + # using method channels. + # The Android 'package' specifies package in which the registered class is. + # This is required for using method channels on Android. + # The 'ffiPlugin' specifies that native code should be built and bundled. + # This is required for using `dart:ffi`. + # All these are used by the tooling to maintain consistency when + # adding or updating assets for this project. + # + # Please refer to README.md for a detailed explanation. + plugin: + platforms: + android: + ffiPlugin: true + ios: + ffiPlugin: true + linux: + ffiPlugin: true + macos: + ffiPlugin: true + windows: + ffiPlugin: true + + # To add assets to your plugin package, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + # + # For details regarding assets in packages, see + # https://flutter.dev/to/asset-from-package + # + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/to/resolution-aware-images + + # To add custom fonts to your plugin package, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts in packages, see + # https://flutter.dev/to/font-from-package diff --git a/rust/.gitignore b/packages/zoe_native/rust/.gitignore similarity index 100% rename from rust/.gitignore rename to packages/zoe_native/rust/.gitignore diff --git a/packages/zoe_native/rust/Cargo.toml b/packages/zoe_native/rust/Cargo.toml new file mode 100644 index 00000000..60a1d133 --- /dev/null +++ b/packages/zoe_native/rust/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "zoe_native" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["cdylib", "staticlib"] + +[dependencies] +flutter_rust_bridge = { workspace = true } +zoe-client = { workspace = true, features = ["frb-api"] } +zoe-wire-protocol = { workspace = true } +zoe-app-primitives = { workspace = true } +extend = "1.2" +async-trait = "0.1" +futures = "0.3" +tokio = "1.39.0" +chrono = { version = "0.4", features = ["serde"] } + +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(frb_expand)'] } diff --git a/packages/zoe_native/rust/cargokit.yaml b/packages/zoe_native/rust/cargokit.yaml new file mode 100644 index 00000000..7be2aa6d --- /dev/null +++ b/packages/zoe_native/rust/cargokit.yaml @@ -0,0 +1,21 @@ +# Cargokit configuration for precompiled binaries +# Precompiled binaries are used by default to provide the best user experience. +# To disable and force local compilation, create cargokit_options.yaml in your project root: +# use_precompiled_binaries: false + +precompiled_binaries: + # URL prefix where precompiled binaries are hosted + url_prefix: "https://github.com/acterglobal/zoe/releases/download/" + + # Ed25519 public key for verifying binary signatures (hex encoded) + # This will be automatically set by the CI workflow + public_key: "cc42bfb25be01668294f0cf66866b55bd311f22eca6551d508d0c6adffcff84a" + +# Optional: Cargo build configuration +cargo: + release: + toolchain: stable + extra_flags: [] + debug: + toolchain: stable + extra_flags: [] diff --git a/packages/zoe_native/rust/src/api/client.rs b/packages/zoe_native/rust/src/api/client.rs new file mode 100644 index 00000000..fabea908 --- /dev/null +++ b/packages/zoe_native/rust/src/api/client.rs @@ -0,0 +1,26 @@ +use crate::frb_generated::StreamSink; +use flutter_rust_bridge::frb; +use tokio; +use zoe_client::OverallConnectionStatus; + +use futures::StreamExt; +use zoe_client::Client; + +// TODO: overwrites here don't work because async but we need it to be in an async +// block due to needing the tokio-spawn. + +#[frb] +pub async fn overall_status_stream(client: &Client, sink: StreamSink) { + let client = client.clone(); + + tokio::spawn(async move { + let stream = client.overall_status_stream(); + futures::pin_mut!(stream); + while let Some(status) = stream.next().await { + // Send update to sink + if sink.add(status).is_err() { + break; // Sink closed, stop the task + } + } + }); +} diff --git a/packages/zoe_native/rust/src/api/mod.rs b/packages/zoe_native/rust/src/api/mod.rs new file mode 100644 index 00000000..b28e5804 --- /dev/null +++ b/packages/zoe_native/rust/src/api/mod.rs @@ -0,0 +1,3 @@ +pub mod client; +pub mod simple; +pub mod system_test; diff --git a/rust/src/api/simple.rs b/packages/zoe_native/rust/src/api/simple.rs similarity index 89% rename from rust/src/api/simple.rs rename to packages/zoe_native/rust/src/api/simple.rs index 4360c82a..308d1415 100644 --- a/rust/src/api/simple.rs +++ b/packages/zoe_native/rust/src/api/simple.rs @@ -7,4 +7,5 @@ pub fn greet(name: String) -> String { pub fn init_app() { // Default utilities - feel free to customize flutter_rust_bridge::setup_default_user_utils(); + zoe_client::frb_api::frb_init(); } diff --git a/packages/zoe_native/rust/src/api/system_test.rs b/packages/zoe_native/rust/src/api/system_test.rs new file mode 100644 index 00000000..bc0576dd --- /dev/null +++ b/packages/zoe_native/rust/src/api/system_test.rs @@ -0,0 +1,106 @@ +use crate::frb_generated::StreamSink; +use flutter_rust_bridge::frb; +use tokio; +use zoe_client::{SystemCheck, SystemCheckResults, TestCategory, TestInfo, TestResult}; + +use futures::StreamExt; +use zoe_client::Client; + +// TODO: overwrites here don't work because async but we need it to be in an async +// block due to needing the tokio-spawn. + +#[frb] +pub async fn run_system_tests(client: &Client, sink: StreamSink) { + let cl = client.clone(); + tokio::spawn(async move { + let system_check = SystemCheck::with_defaults(cl); + let runstream = system_check.run_all_stream(); + futures::pin_mut!(runstream); + while let Some(result) = runstream.next().await { + if sink.add(result).is_err() { + break; + } + } + }); +} + +// SystemCheckResults utility functions +#[frb] +pub fn system_check_results_is_success(results: &SystemCheckResults) -> bool { + results.is_success() +} + +#[frb] +pub fn system_check_results_passed_count(results: &SystemCheckResults) -> u32 { + results.passed_count() as u32 +} + +#[frb] +pub fn system_check_results_failed_count(results: &SystemCheckResults) -> u32 { + results.failed_count() as u32 +} + +#[frb] +pub fn system_check_results_total_count(results: &SystemCheckResults) -> u32 { + results.total_count() as u32 +} + +#[frb] +pub fn system_check_results_total_duration_ms(results: &SystemCheckResults) -> u64 { + results.total_duration.as_millis() as u64 +} + +#[frb] +pub fn system_check_results_get_categories(results: &SystemCheckResults) -> Vec { + results.results.keys().cloned().collect() +} + +#[frb] +pub fn system_check_results_get_tests_for_category( + results: &SystemCheckResults, + category: TestCategory, +) -> Vec { + results.results.get(&category).cloned().unwrap_or_default() +} + +#[frb] +pub fn system_check_results_category_has_failures( + results: &SystemCheckResults, + category: TestCategory, +) -> bool { + results.category_has_failures(category) +} + +// TestInfo utility functions +#[frb] +pub fn test_info_get_name(test: &TestInfo) -> String { + test.name.clone() +} + +#[frb] +pub fn test_info_get_details(test: &TestInfo) -> Vec { + test.details.clone() +} + +#[frb] +pub fn test_info_is_passed(test: &TestInfo) -> bool { + test.result.is_passed() +} + +#[frb] +pub fn test_info_is_failed(test: &TestInfo) -> bool { + test.result.is_failed() +} + +#[frb] +pub fn test_info_get_error(test: &TestInfo) -> Option { + match &test.result { + TestResult::Failed { error } => Some(error.clone()), + _ => None, + } +} + +#[frb] +pub fn test_info_duration_ms(test: &TestInfo) -> u64 { + test.duration.as_millis() as u64 +} diff --git a/packages/zoe_native/rust/src/frb_generated.rs b/packages/zoe_native/rust/src/frb_generated.rs new file mode 100644 index 00000000..499afae5 --- /dev/null +++ b/packages/zoe_native/rust/src/frb_generated.rs @@ -0,0 +1,7296 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +#![allow( + non_camel_case_types, + unused, + non_snake_case, + clippy::needless_return, + clippy::redundant_closure_call, + clippy::redundant_closure, + clippy::useless_conversion, + clippy::unit_arg, + clippy::unused_unit, + clippy::double_parens, + clippy::let_and_return, + clippy::too_many_arguments, + clippy::match_single_binding, + clippy::clone_on_copy, + clippy::let_unit_value, + clippy::deref_addrof, + clippy::explicit_auto_deref, + clippy::borrow_deref_ref, + clippy::needless_borrow +)] + +// Section: imports + +use crate::*; +use flutter_rust_bridge::for_generated::byteorder::{NativeEndian, ReadBytesExt, WriteBytesExt}; +use flutter_rust_bridge::for_generated::{transform_result_dco, Lifetimeable, Lockable}; +use flutter_rust_bridge::{Handler, IntoIntoDart}; +use zoe_client::client::api::file_storage::*; +use zoe_client::client::*; +use zoe_client::system_check::*; +use zoe_wire_protocol::keys::*; +use zoe_wire_protocol::primitives::*; + +// Section: boilerplate + +use std::{error::Error, net::SocketAddr, path::PathBuf}; +use zoe_app_primitives::connection::RelayAddress; +use zoe_client::FileRef; +use zoe_wire_protocol::keys::{KeyPair, Signature, SigningKey, VerifyingKey}; + +flutter_rust_bridge::frb_generated_boilerplate!( + default_stream_sink_codec = SseCodec, + default_rust_opaque = RustOpaqueMoi, + default_rust_auto_opaque = RustAutoOpaqueMoi, +); +pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_VERSION: &str = "2.11.1"; +pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_CONTENT_HASH: i32 = -1279430215; + +// Section: executor + +flutter_rust_bridge::frb_generated_default_handler!(); + +// Section: wire_funcs + +fn wire__zoe_client__client__ClientBuilder_autoconnect_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "ClientBuilder_autoconnect", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_autoconnect = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + zoe_client::client::ClientBuilder::autoconnect( + &mut *api_that_guard, + api_autoconnect, + ); + })?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__client__ClientBuilder_build_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "ClientBuilder_build", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( + (move || async move { + let output_ok = zoe_client::client::ClientBuilder::build(api_that).await?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__client__ClientBuilder_client_secret_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "ClientBuilder_client_secret", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_secret = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + zoe_client::client::ClientBuilder::client_secret( + &mut *api_that_guard, + api_secret, + ); + })?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__client__ClientBuilder_db_storage_dir_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "ClientBuilder_db_storage_dir", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_path = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + zoe_client::client::ClientBuilder::db_storage_dir( + &mut *api_that_guard, + api_path, + ); + })?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__client__ClientBuilder_default_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "ClientBuilder_default", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let output_ok = + Result::<_, ()>::Ok(zoe_client::client::ClientBuilder::default())?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__client__ClientBuilder_encryption_key_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "ClientBuilder_encryption_key", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_key = <[u8; 32]>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + zoe_client::client::ClientBuilder::encryption_key( + &mut *api_that_guard, + api_key, + ); + })?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__client__ClientBuilder_media_storage_dir_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "ClientBuilder_media_storage_dir", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_media_storage_dir = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + zoe_client::client::ClientBuilder::media_storage_dir( + &mut *api_that_guard, + api_media_storage_dir, + ); + })?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__client__ClientBuilder_server_info_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "ClientBuilder_server_info", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_server_public_key = ::sse_decode(&mut deserializer); + let api_server_addr = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + zoe_client::client::ClientBuilder::server_info( + &mut *api_that_guard, + api_server_public_key, + api_server_addr, + ); + })?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__client__ClientBuilder_servers_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "ClientBuilder_servers", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_servers = >::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + zoe_client::client::ClientBuilder::servers( + &mut *api_that_guard, + api_servers, + ); + })?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__client__ClientSecret_from_hex_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "ClientSecret_from_hex", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_hex = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( + (move || { + let output_ok = zoe_client::client::ClientSecret::from_hex(&api_hex)?; + Ok(output_ok) + })(), + ) + } + }, + ) +} +fn wire__zoe_client__client__ClientSecret_servers_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "ClientSecret_servers", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + zoe_client::client::ClientSecret::servers(&*api_that_guard); + })?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__client__ClientSecret_to_hex_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "ClientSecret_to_hex", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( + (move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + )], + ); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = zoe_client::client::ClientSecret::to_hex(&*api_that_guard)?; + Ok(output_ok) + })(), + ) + } + }, + ) +} +fn wire__zoe_client__client__Client_add_relay_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_add_relay", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_address = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( + (move || async move { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + )], + ); + for i in decode_indices_ { + match i { + 0 => { + api_that_guard = + Some(api_that.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = + zoe_client::client::Client::add_relay(&*api_that_guard, api_address) + .await?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__client__Client_builder_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_builder", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let output_ok = Result::<_, ()>::Ok(zoe_client::client::Client::builder())?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__client__Client_client_secret_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_client_secret", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + zoe_client::client::Client::client_secret(&*api_that_guard), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__client__Client_client_secret_hex_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_client_secret_hex", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( + (move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + )], + ); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = + zoe_client::client::Client::client_secret_hex(&*api_that_guard)?; + Ok(output_ok) + })(), + ) + } + }, + ) +} +fn wire__zoe_client__client__Client_close_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_close", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, ()>( + (move || async move { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + )], + ); + for i in decode_indices_ { + match i { + 0 => { + api_that_guard = + Some(api_that.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + zoe_client::client::Client::close(&*api_that_guard).await; + })?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__client__Client_get_relay_status_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_get_relay_status", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( + (move || async move { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + )], + ); + for i in decode_indices_ { + match i { + 0 => { + api_that_guard = + Some(api_that.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = + zoe_client::client::Client::get_relay_status(&*api_that_guard).await?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__client__Client_has_connected_relays_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_has_connected_relays", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, ()>( + (move || async move { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + )], + ); + for i in decode_indices_ { + match i { + 0 => { + api_that_guard = + Some(api_that.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + zoe_client::client::Client::has_connected_relays(&*api_that_guard) + .await, + )?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__client__Client_has_file_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_has_file", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_stored_info = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( + (move || async move { + let mut api_that_guard = None; + let mut api_stored_info_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_stored_info, + 1, + false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => { + api_that_guard = + Some(api_that.lockable_decode_async_ref().await) + } + 1 => { + api_stored_info_guard = + Some(api_stored_info.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let api_stored_info_guard = api_stored_info_guard.unwrap(); + let output_ok = zoe_client::client::Client::has_file( + &*api_that_guard, + &*api_stored_info_guard, + ) + .await?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__client__Client_id_hex_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_id_hex", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = + Result::<_, ()>::Ok(zoe_client::client::Client::id_hex(&*api_that_guard))?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__client__Client_overall_status_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_overall_status", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, ()>( + (move || async move { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + )], + ); + for i in decode_indices_ { + match i { + 0 => { + api_that_guard = + Some(api_that.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + zoe_client::client::Client::overall_status(&*api_that_guard).await, + )?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__client__Client_reconnect_failed_relays_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_reconnect_failed_relays", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( + (move || async move { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + )], + ); + for i in decode_indices_ { + match i { + 0 => { + api_that_guard = + Some(api_that.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = + zoe_client::client::Client::reconnect_failed_relays(&*api_that_guard) + .await?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__client__Client_remove_relay_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_remove_relay", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_server_public_key = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( + (move || async move { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + )], + ); + for i in decode_indices_ { + match i { + 0 => { + api_that_guard = + Some(api_that.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = zoe_client::client::Client::remove_relay( + &*api_that_guard, + api_server_public_key, + ) + .await?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__client__Client_retrieve_file_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_retrieve_file", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_file_ref = , + >>::sse_decode(&mut deserializer); + let api_output_path = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( + (move || async move { + let mut api_that_guard = None; + let mut api_file_ref_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_file_ref, + 1, + false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => { + api_that_guard = + Some(api_that.lockable_decode_async_ref().await) + } + 1 => { + api_file_ref_guard = + Some(api_file_ref.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let api_file_ref_guard = api_file_ref_guard.unwrap(); + let output_ok = zoe_client::client::Client::retrieve_file( + &*api_that_guard, + &*api_file_ref_guard, + api_output_path, + ) + .await?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__client__Client_retrieve_file_bytes_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_retrieve_file_bytes", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_file_ref = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( + (move || async move { + let mut api_that_guard = None; + let mut api_file_ref_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_file_ref, + 1, + false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => { + api_that_guard = + Some(api_that.lockable_decode_async_ref().await) + } + 1 => { + api_file_ref_guard = + Some(api_file_ref.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let api_file_ref_guard = api_file_ref_guard.unwrap(); + let output_ok = zoe_client::client::Client::retrieve_file_bytes( + &*api_that_guard, + &*api_file_ref_guard, + ) + .await?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__client__Client_store_data_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_store_data", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_data = >::sse_decode(&mut deserializer); + let api_reference_name = ::sse_decode(&mut deserializer); + let api_content_type = >::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( + (move || async move { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + )], + ); + for i in decode_indices_ { + match i { + 0 => { + api_that_guard = + Some(api_that.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = zoe_client::client::Client::store_data( + &*api_that_guard, + &api_data, + &api_reference_name, + api_content_type, + ) + .await?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__client__Client_store_file_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Client_store_file", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_file_path = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( + (move || async move { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + )], + ); + for i in decode_indices_ { + match i { + 0 => { + api_that_guard = + Some(api_that.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = + zoe_client::client::Client::store_file(&*api_that_guard, api_file_path) + .await?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__KeyPair_algorithm_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "KeyPair_algorithm", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + zoe_wire_protocol::keys::KeyPair::algorithm(&*api_that_guard), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__KeyPair_from_pem_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "KeyPair_from_pem", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_pem_string = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, KeyPairError>((move || { + let output_ok = zoe_wire_protocol::keys::KeyPair::from_pem(&api_pem_string)?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__KeyPair_id_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "KeyPair_id", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok(zoe_wire_protocol::keys::KeyPair::id( + &*api_that_guard, + ))?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__KeyPair_public_key_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "KeyPair_public_key", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + zoe_wire_protocol::keys::KeyPair::public_key(&*api_that_guard), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__KeyPair_sign_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "KeyPair_sign", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_message = >::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok(zoe_wire_protocol::keys::KeyPair::sign( + &*api_that_guard, + &api_message, + ))?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__KeyPair_to_pem_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "KeyPair_to_pem", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, KeyPairError>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = zoe_wire_protocol::keys::KeyPair::to_pem(&*api_that_guard)?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__client__RelayConnectionInfo_auto_accessor_get_info_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "RelayConnectionInfo_auto_accessor_get_info", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok(api_that_guard.info.clone())?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__zoe_client__client__RelayConnectionInfo_auto_accessor_get_status_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "RelayConnectionInfo_auto_accessor_get_status", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok(api_that_guard.status.clone())?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__zoe_client__client__RelayConnectionInfo_auto_accessor_set_info_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "RelayConnectionInfo_auto_accessor_set_info", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_info = ::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + { + api_that_guard.info = api_info; + }; + })?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__zoe_client__client__RelayConnectionInfo_auto_accessor_set_status_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "RelayConnectionInfo_auto_accessor_set_status", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_status = ::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + { + api_that_guard.status = api_status; + }; + })?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__zoe_client__client__RelayInfo_auto_accessor_get_relay_address_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "RelayInfo_auto_accessor_get_relay_address", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok(api_that_guard.relay_address.clone())?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__zoe_client__client__RelayInfo_auto_accessor_get_relay_id_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "RelayInfo_auto_accessor_get_relay_id", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok(api_that_guard.relay_id.clone())?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__zoe_client__client__RelayInfo_auto_accessor_set_relay_address_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "RelayInfo_auto_accessor_set_relay_address", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_relay_address = ::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + { + api_that_guard.relay_address = api_relay_address; + }; + })?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__zoe_client__client__RelayInfo_auto_accessor_set_relay_id_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "RelayInfo_auto_accessor_set_relay_id", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_relay_id = ::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + { + api_that_guard.relay_id = api_relay_id; + }; + })?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__zoe_client__client__RelayStatusUpdate_auto_accessor_get_relay_address_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "RelayStatusUpdate_auto_accessor_get_relay_address", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok(api_that_guard.relay_address.clone())?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__zoe_client__client__RelayStatusUpdate_auto_accessor_get_relay_id_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "RelayStatusUpdate_auto_accessor_get_relay_id", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok(api_that_guard.relay_id.clone())?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__zoe_client__client__RelayStatusUpdate_auto_accessor_get_status_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "RelayStatusUpdate_auto_accessor_get_status", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok(api_that_guard.status.clone())?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__zoe_client__client__RelayStatusUpdate_auto_accessor_set_relay_address_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "RelayStatusUpdate_auto_accessor_set_relay_address", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_relay_address = ::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + { + api_that_guard.relay_address = api_relay_address; + }; + })?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__zoe_client__client__RelayStatusUpdate_auto_accessor_set_relay_id_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "RelayStatusUpdate_auto_accessor_set_relay_id", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_relay_id = ::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + { + api_that_guard.relay_id = api_relay_id; + }; + })?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__zoe_client__client__RelayStatusUpdate_auto_accessor_set_status_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "RelayStatusUpdate_auto_accessor_set_status", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_status = ::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + { + api_that_guard.status = api_status; + }; + })?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__zoe_wire_protocol__keys__Signature_encode_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Signature_encode", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + zoe_wire_protocol::keys::Signature::encode(&*api_that_guard), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__Signature_id_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "Signature_id", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok(zoe_wire_protocol::keys::Signature::id( + &*api_that_guard, + ))?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__SigningKey_sign_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "SigningKey_sign", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_message = >::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + zoe_wire_protocol::keys::SigningKey::sign(&*api_that_guard, &api_message), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__VerifyingKey_algorithm_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "VerifyingKey_algorithm", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + zoe_wire_protocol::keys::VerifyingKey::algorithm(&*api_that_guard), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__VerifyingKey_encode_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "VerifyingKey_encode", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + zoe_wire_protocol::keys::VerifyingKey::encode(&*api_that_guard), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__VerifyingKey_from_hex_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "VerifyingKey_from_hex", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_hex = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, String>((move || { + let output_ok = zoe_wire_protocol::keys::VerifyingKey::from_hex(api_hex)?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__VerifyingKey_from_pem_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "VerifyingKey_from_pem", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_pem_string = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, VerifyingKeyError>((move || { + let output_ok = + zoe_wire_protocol::keys::VerifyingKey::from_pem(&api_pem_string)?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__VerifyingKey_id_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "VerifyingKey_id", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + zoe_wire_protocol::keys::VerifyingKey::id(&*api_that_guard), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__VerifyingKey_to_bytes_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "VerifyingKey_to_bytes", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( + (move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + )], + ); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = + zoe_wire_protocol::keys::VerifyingKey::to_bytes(&*api_that_guard)?; + Ok(output_ok) + })(), + ) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__VerifyingKey_to_pem_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "VerifyingKey_to_pem", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, VerifyingKeyError>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = + zoe_wire_protocol::keys::VerifyingKey::to_pem(&*api_that_guard)?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_wire_protocol__keys__VerifyingKey_verify_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "VerifyingKey_verify", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_message = >::sse_decode(&mut deserializer); + let api_signature = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, VerifyError>((move || { + let mut api_that_guard = None; + let mut api_signature_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_signature, + 1, + false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + 1 => { + api_signature_guard = Some(api_signature.lockable_decode_sync_ref()) + } + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let api_signature_guard = api_signature_guard.unwrap(); + let output_ok = zoe_wire_protocol::keys::VerifyingKey::verify( + &*api_that_guard, + &api_message, + &*api_signature_guard, + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__frb_api__create_relay_address_with_hostname_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "create_relay_address_with_hostname", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_server_key_hex = ::sse_decode(&mut deserializer); + let api_hostname = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, String>((move || { + let output_ok = zoe_client::frb_api::create_relay_address_with_hostname( + api_server_key_hex, + api_hostname, + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__frb_api__create_signing_key_random_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "create_signing_key_random", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let output_ok = + Result::<_, ()>::Ok(zoe_client::frb_api::create_signing_key_random())?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__frb_api__create_socket_addr_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "create_socket_addr", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_ip = ::sse_decode(&mut deserializer); + let api_port = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, String>((move || { + let output_ok = zoe_client::frb_api::create_socket_addr(api_ip, api_port)?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__frb_api__frb_init_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "frb_init", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let output_ok = Result::<_, ()>::Ok({ + zoe_client::frb_api::frb_init(); + })?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__simple__greet_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "greet", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_name = ::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let output_ok = Result::<_, ()>::Ok(crate::api::simple::greet(api_name))?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__crate__api__simple__init_app_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "init_app", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let output_ok = Result::<_, ()>::Ok({ + crate::api::simple::init_app(); + })?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__client__overall_status_stream_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "overall_status_stream", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_client = , + >>::sse_decode(&mut deserializer); + let api_sink = >::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, ()>( + (move || async move { + let mut api_client_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_client, + 0, + false, + )], + ); + for i in decode_indices_ { + match i { + 0 => { + api_client_guard = + Some(api_client.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_client_guard = api_client_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + crate::api::client::overall_status_stream(&*api_client_guard, api_sink) + .await; + })?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__frb_api__prepare_client_for_systems_test_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "prepare_client_for_systems_test", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_client = , + >>::sse_decode(&mut deserializer); + let api_server_address = ::sse_decode(&mut deserializer); + let api_server_key_hex = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, String>( + (move || async move { + let mut api_client_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_client, + 0, + false, + )], + ); + for i in decode_indices_ { + match i { + 0 => { + api_client_guard = + Some(api_client.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_client_guard = api_client_guard.unwrap(); + let output_ok = zoe_client::frb_api::prepare_client_for_systems_test( + &*api_client_guard, + api_server_address, + api_server_key_hex, + ) + .await?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__util__resolve_to_socket_addr_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "resolve_to_socket_addr", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_s = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, String>( + (move || async move { + let output_ok = zoe_client::util::resolve_to_socket_addr(&api_s).await?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__crate__api__system_test__run_system_tests_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "run_system_tests", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_client = , + >>::sse_decode(&mut deserializer); + let api_sink = >::sse_decode(&mut deserializer); + deserializer.end(); + move |context| async move { + transform_result_sse::<_, ()>( + (move || async move { + let mut api_client_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order( + vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_client, + 0, + false, + )], + ); + for i in decode_indices_ { + match i { + 0 => { + api_client_guard = + Some(api_client.lockable_decode_async_ref().await) + } + _ => unreachable!(), + } + } + let api_client_guard = api_client_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + crate::api::system_test::run_system_tests(&*api_client_guard, api_sink) + .await; + })?; + Ok(output_ok) + })() + .await, + ) + } + }, + ) +} +fn wire__zoe_client__frb_api__signing_key_from_hex_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "signing_key_from_hex", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_hex = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, String>((move || { + let output_ok = zoe_client::frb_api::signing_key_from_hex(api_hex)?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__frb_api__signing_key_to_verifying_key_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "signing_key_to_verifying_key", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_signing_key_hex = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, String>((move || { + let output_ok = + zoe_client::frb_api::signing_key_to_verifying_key(api_signing_key_hex)?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__frb_api__socket_addr_ip_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "socket_addr_ip", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_addr = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_addr_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_addr, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_addr_guard = Some(api_addr.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_addr_guard = api_addr_guard.unwrap(); + let output_ok = + Result::<_, ()>::Ok(zoe_client::frb_api::socket_addr_ip(&*api_addr_guard))?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__frb_api__socket_addr_port_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "socket_addr_port", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_addr = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_addr_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_addr, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_addr_guard = Some(api_addr.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_addr_guard = api_addr_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok(zoe_client::frb_api::socket_addr_port( + &*api_addr_guard, + ))?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__frb_api__socket_addr_to_string_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "socket_addr_to_string", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_addr = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_addr_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_addr, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_addr_guard = Some(api_addr.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_addr_guard = api_addr_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + zoe_client::frb_api::socket_addr_to_string(&*api_addr_guard), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__system_test__system_check_results_category_has_failures_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "system_check_results_category_has_failures", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_results = , + >>::sse_decode(&mut deserializer); + let api_category = + ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_results_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_results, + 0, + false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_results_guard = Some(api_results.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_results_guard = api_results_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + crate::api::system_test::system_check_results_category_has_failures( + &*api_results_guard, + api_category, + ), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__system_test__system_check_results_failed_count_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "system_check_results_failed_count", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_results = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_results_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_results, + 0, + false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_results_guard = Some(api_results.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_results_guard = api_results_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + crate::api::system_test::system_check_results_failed_count( + &*api_results_guard, + ), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__system_test__system_check_results_get_categories_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "system_check_results_get_categories", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_results = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_results_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_results, + 0, + false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_results_guard = Some(api_results.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_results_guard = api_results_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + crate::api::system_test::system_check_results_get_categories( + &*api_results_guard, + ), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__system_test__system_check_results_get_tests_for_category_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "system_check_results_get_tests_for_category", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_results = , + >>::sse_decode(&mut deserializer); + let api_category = + ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_results_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_results, + 0, + false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_results_guard = Some(api_results.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_results_guard = api_results_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + crate::api::system_test::system_check_results_get_tests_for_category( + &*api_results_guard, + api_category, + ), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__system_test__system_check_results_is_success_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "system_check_results_is_success", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_results = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_results_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_results, + 0, + false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_results_guard = Some(api_results.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_results_guard = api_results_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + crate::api::system_test::system_check_results_is_success( + &*api_results_guard, + ), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__system_test__system_check_results_passed_count_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "system_check_results_passed_count", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_results = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_results_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_results, + 0, + false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_results_guard = Some(api_results.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_results_guard = api_results_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + crate::api::system_test::system_check_results_passed_count( + &*api_results_guard, + ), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__system_test__system_check_results_total_count_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "system_check_results_total_count", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_results = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_results_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_results, + 0, + false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_results_guard = Some(api_results.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_results_guard = api_results_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + crate::api::system_test::system_check_results_total_count( + &*api_results_guard, + ), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__system_test__system_check_results_total_duration_ms_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "system_check_results_total_duration_ms", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_results = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_results_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_results, + 0, + false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_results_guard = Some(api_results.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_results_guard = api_results_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + crate::api::system_test::system_check_results_total_duration_ms( + &*api_results_guard, + ), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__system_test__test_info_duration_ms_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "test_info_duration_ms", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_test = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_test_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_test, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_test_guard = Some(api_test.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_test_guard = api_test_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + crate::api::system_test::test_info_duration_ms(&*api_test_guard), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__system_test__test_info_get_details_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "test_info_get_details", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_test = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_test_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_test, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_test_guard = Some(api_test.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_test_guard = api_test_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + crate::api::system_test::test_info_get_details(&*api_test_guard), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__system_test__test_info_get_error_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "test_info_get_error", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_test = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_test_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_test, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_test_guard = Some(api_test.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_test_guard = api_test_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + crate::api::system_test::test_info_get_error(&*api_test_guard), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__system_test__test_info_get_name_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "test_info_get_name", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_test = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_test_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_test, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_test_guard = Some(api_test.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_test_guard = api_test_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + crate::api::system_test::test_info_get_name(&*api_test_guard), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__system_test__test_info_is_failed_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "test_info_is_failed", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_test = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_test_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_test, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_test_guard = Some(api_test.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_test_guard = api_test_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + crate::api::system_test::test_info_is_failed(&*api_test_guard), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__system_test__test_info_is_passed_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "test_info_is_passed", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_test = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_test_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_test, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_test_guard = Some(api_test.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_test_guard = api_test_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok( + crate::api::system_test::test_info_is_passed(&*api_test_guard), + )?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__zoe_client__frb_api__verifying_key_from_hex_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "verifying_key_from_hex", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_hex = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, String>((move || { + let output_ok = zoe_client::frb_api::verifying_key_from_hex(api_hex)?; + Ok(output_ok) + })()) + } + }, + ) +} + +// Section: static_checks + +#[allow(clippy::unnecessary_literal_unwrap)] +const _: fn() = || { + let OverallConnectionStatus = None::.unwrap(); + let _: bool = OverallConnectionStatus.is_connected; + let _: usize = OverallConnectionStatus.connected_count; + let _: usize = OverallConnectionStatus.total_count; +}; + +// Section: related_funcs + +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); + +// Section: dart2rust + +impl SseDecode for flutter_rust_bridge::for_generated::anyhow::Error { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::anyhow::anyhow!("{}", inner); + } +} + +impl SseDecode for Client { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for ClientBuilder { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for ClientSecret { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for FileRef { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for KeyId { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for KeyPair { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for KeyPairError { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for PathBuf { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for RelayAddress { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for RelayConnectionInfo { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for RelayConnectionStatus { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for RelayInfo { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for RelayStatusUpdate { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for Signature { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for SigningKey { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for SocketAddr { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for SystemCheckResults { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for TestInfo { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for VerifyError { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for VerifyingKey { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for VerifyingKeyError { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for RustOpaqueMoi> { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode for RustOpaqueMoi> { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode for RustOpaqueMoi> { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode for RustOpaqueMoi> { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode for RustOpaqueMoi> { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi< + flutter_rust_bridge::for_generated::RustAutoOpaqueInner, + > +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode for StreamSink { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return StreamSink::deserialize(inner); + } +} + +impl SseDecode + for StreamSink< + zoe_client::client::OverallConnectionStatus, + flutter_rust_bridge::for_generated::SseCodec, + > +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return StreamSink::deserialize(inner); + } +} + +impl SseDecode for String { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = >::sse_decode(deserializer); + return String::from_utf8(inner).unwrap(); + } +} + +impl SseDecode for zoe_wire_protocol::keys::Algorithm { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return match inner { + 0 => zoe_wire_protocol::keys::Algorithm::Ed25519, + 1 => zoe_wire_protocol::keys::Algorithm::MlDsa44, + 2 => zoe_wire_protocol::keys::Algorithm::MlDsa65, + 3 => zoe_wire_protocol::keys::Algorithm::MlDsa87, + _ => unreachable!("Invalid variant for Algorithm: {}", inner), + }; + } +} + +impl SseDecode for bool { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + deserializer.cursor.read_u8().unwrap() != 0 + } +} + +impl SseDecode for i32 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + deserializer.cursor.read_i32::().unwrap() + } +} + +impl SseDecode for Vec { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut len_ = ::sse_decode(deserializer); + let mut ans_ = vec![]; + for idx_ in 0..len_ { + ans_.push(::sse_decode(deserializer)); + } + return ans_; + } +} + +impl SseDecode for Vec { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut len_ = ::sse_decode(deserializer); + let mut ans_ = vec![]; + for idx_ in 0..len_ { + ans_.push(::sse_decode(deserializer)); + } + return ans_; + } +} + +impl SseDecode for Vec { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut len_ = ::sse_decode(deserializer); + let mut ans_ = vec![]; + for idx_ in 0..len_ { + ans_.push(::sse_decode(deserializer)); + } + return ans_; + } +} + +impl SseDecode for Vec { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut len_ = ::sse_decode(deserializer); + let mut ans_ = vec![]; + for idx_ in 0..len_ { + ans_.push(::sse_decode(deserializer)); + } + return ans_; + } +} + +impl SseDecode for Vec { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut len_ = ::sse_decode(deserializer); + let mut ans_ = vec![]; + for idx_ in 0..len_ { + ans_.push(::sse_decode(deserializer)); + } + return ans_; + } +} + +impl SseDecode for Vec { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut len_ = ::sse_decode(deserializer); + let mut ans_ = vec![]; + for idx_ in 0..len_ { + ans_.push(::sse_decode( + deserializer, + )); + } + return ans_; + } +} + +impl SseDecode for Option { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + if (::sse_decode(deserializer)) { + return Some(::sse_decode(deserializer)); + } else { + return None; + } + } +} + +impl SseDecode for zoe_client::client::OverallConnectionStatus { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut var_isConnected = ::sse_decode(deserializer); + let mut var_connectedCount = ::sse_decode(deserializer); + let mut var_totalCount = ::sse_decode(deserializer); + return zoe_client::client::OverallConnectionStatus { + is_connected: var_isConnected, + connected_count: var_connectedCount, + total_count: var_totalCount, + }; + } +} + +impl SseDecode for zoe_client::system_check::TestCategory { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return match inner { + 0 => zoe_client::system_check::TestCategory::OfflineStorage, + 1 => zoe_client::system_check::TestCategory::OfflineBlob, + 2 => zoe_client::system_check::TestCategory::Connectivity, + 3 => zoe_client::system_check::TestCategory::Storage, + 4 => zoe_client::system_check::TestCategory::BlobService, + 5 => zoe_client::system_check::TestCategory::Synchronization, + _ => unreachable!("Invalid variant for TestCategory: {}", inner), + }; + } +} + +impl SseDecode for u16 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + deserializer.cursor.read_u16::().unwrap() + } +} + +impl SseDecode for u32 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + deserializer.cursor.read_u32::().unwrap() + } +} + +impl SseDecode for u64 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + deserializer.cursor.read_u64::().unwrap() + } +} + +impl SseDecode for u8 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + deserializer.cursor.read_u8().unwrap() + } +} + +impl SseDecode for [u8; 32] { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = >::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::from_vec_to_array(inner); + } +} + +impl SseDecode for () { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self {} +} + +impl SseDecode for usize { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + deserializer.cursor.read_u64::().unwrap() as _ + } +} + +fn pde_ffi_dispatcher_primary_impl( + func_id: i32, + port: flutter_rust_bridge::for_generated::MessagePort, + ptr: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len: i32, + data_len: i32, +) { + // Codec=Pde (Serialization + dispatch), see doc to use other codecs + match func_id { + 1 => wire__zoe_client__client__ClientBuilder_autoconnect_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 2 => wire__zoe_client__client__ClientBuilder_build_impl(port, ptr, rust_vec_len, data_len), + 3 => wire__zoe_client__client__ClientBuilder_client_secret_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 4 => wire__zoe_client__client__ClientBuilder_db_storage_dir_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 5 => { + wire__zoe_client__client__ClientBuilder_default_impl(port, ptr, rust_vec_len, data_len) + } + 6 => wire__zoe_client__client__ClientBuilder_encryption_key_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 7 => wire__zoe_client__client__ClientBuilder_media_storage_dir_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 8 => wire__zoe_client__client__ClientBuilder_server_info_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 9 => { + wire__zoe_client__client__ClientBuilder_servers_impl(port, ptr, rust_vec_len, data_len) + } + 10 => { + wire__zoe_client__client__ClientSecret_from_hex_impl(port, ptr, rust_vec_len, data_len) + } + 11 => { + wire__zoe_client__client__ClientSecret_servers_impl(port, ptr, rust_vec_len, data_len) + } + 12 => wire__zoe_client__client__ClientSecret_to_hex_impl(port, ptr, rust_vec_len, data_len), + 13 => wire__zoe_client__client__Client_add_relay_impl(port, ptr, rust_vec_len, data_len), + 14 => wire__zoe_client__client__Client_builder_impl(port, ptr, rust_vec_len, data_len), + 15 => { + wire__zoe_client__client__Client_client_secret_impl(port, ptr, rust_vec_len, data_len) + } + 16 => wire__zoe_client__client__Client_client_secret_hex_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 17 => wire__zoe_client__client__Client_close_impl(port, ptr, rust_vec_len, data_len), + 18 => wire__zoe_client__client__Client_get_relay_status_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 19 => wire__zoe_client__client__Client_has_connected_relays_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 20 => wire__zoe_client__client__Client_has_file_impl(port, ptr, rust_vec_len, data_len), + 21 => wire__zoe_client__client__Client_id_hex_impl(port, ptr, rust_vec_len, data_len), + 22 => { + wire__zoe_client__client__Client_overall_status_impl(port, ptr, rust_vec_len, data_len) + } + 23 => wire__zoe_client__client__Client_reconnect_failed_relays_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 24 => wire__zoe_client__client__Client_remove_relay_impl(port, ptr, rust_vec_len, data_len), + 25 => { + wire__zoe_client__client__Client_retrieve_file_impl(port, ptr, rust_vec_len, data_len) + } + 26 => wire__zoe_client__client__Client_retrieve_file_bytes_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 27 => wire__zoe_client__client__Client_store_data_impl(port, ptr, rust_vec_len, data_len), + 28 => wire__zoe_client__client__Client_store_file_impl(port, ptr, rust_vec_len, data_len), + 29 => { + wire__zoe_wire_protocol__keys__KeyPair_algorithm_impl(port, ptr, rust_vec_len, data_len) + } + 30 => { + wire__zoe_wire_protocol__keys__KeyPair_from_pem_impl(port, ptr, rust_vec_len, data_len) + } + 31 => wire__zoe_wire_protocol__keys__KeyPair_id_impl(port, ptr, rust_vec_len, data_len), + 32 => wire__zoe_wire_protocol__keys__KeyPair_public_key_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 33 => wire__zoe_wire_protocol__keys__KeyPair_sign_impl(port, ptr, rust_vec_len, data_len), + 34 => wire__zoe_wire_protocol__keys__KeyPair_to_pem_impl(port, ptr, rust_vec_len, data_len), + 49 => { + wire__zoe_wire_protocol__keys__Signature_encode_impl(port, ptr, rust_vec_len, data_len) + } + 50 => wire__zoe_wire_protocol__keys__Signature_id_impl(port, ptr, rust_vec_len, data_len), + 51 => { + wire__zoe_wire_protocol__keys__SigningKey_sign_impl(port, ptr, rust_vec_len, data_len) + } + 52 => wire__zoe_wire_protocol__keys__VerifyingKey_algorithm_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 53 => wire__zoe_wire_protocol__keys__VerifyingKey_encode_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 54 => wire__zoe_wire_protocol__keys__VerifyingKey_from_hex_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 55 => wire__zoe_wire_protocol__keys__VerifyingKey_from_pem_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 56 => { + wire__zoe_wire_protocol__keys__VerifyingKey_id_impl(port, ptr, rust_vec_len, data_len) + } + 57 => wire__zoe_wire_protocol__keys__VerifyingKey_to_bytes_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 58 => wire__zoe_wire_protocol__keys__VerifyingKey_to_pem_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 59 => wire__zoe_wire_protocol__keys__VerifyingKey_verify_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 60 => wire__zoe_client__frb_api__create_relay_address_with_hostname_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 61 => wire__zoe_client__frb_api__create_signing_key_random_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 62 => wire__zoe_client__frb_api__create_socket_addr_impl(port, ptr, rust_vec_len, data_len), + 63 => wire__zoe_client__frb_api__frb_init_impl(port, ptr, rust_vec_len, data_len), + 65 => wire__crate__api__simple__init_app_impl(port, ptr, rust_vec_len, data_len), + 66 => { + wire__crate__api__client__overall_status_stream_impl(port, ptr, rust_vec_len, data_len) + } + 67 => wire__zoe_client__frb_api__prepare_client_for_systems_test_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 68 => { + wire__zoe_client__util__resolve_to_socket_addr_impl(port, ptr, rust_vec_len, data_len) + } + 69 => { + wire__crate__api__system_test__run_system_tests_impl(port, ptr, rust_vec_len, data_len) + } + 70 => { + wire__zoe_client__frb_api__signing_key_from_hex_impl(port, ptr, rust_vec_len, data_len) + } + 71 => wire__zoe_client__frb_api__signing_key_to_verifying_key_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 72 => wire__zoe_client__frb_api__socket_addr_ip_impl(port, ptr, rust_vec_len, data_len), + 73 => wire__zoe_client__frb_api__socket_addr_port_impl(port, ptr, rust_vec_len, data_len), + 74 => { + wire__zoe_client__frb_api__socket_addr_to_string_impl(port, ptr, rust_vec_len, data_len) + } + 75 => wire__crate__api__system_test__system_check_results_category_has_failures_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 76 => wire__crate__api__system_test__system_check_results_failed_count_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 77 => wire__crate__api__system_test__system_check_results_get_categories_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 78 => wire__crate__api__system_test__system_check_results_get_tests_for_category_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 79 => wire__crate__api__system_test__system_check_results_is_success_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 80 => wire__crate__api__system_test__system_check_results_passed_count_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 81 => wire__crate__api__system_test__system_check_results_total_count_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 82 => wire__crate__api__system_test__system_check_results_total_duration_ms_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 83 => wire__crate__api__system_test__test_info_duration_ms_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 84 => wire__crate__api__system_test__test_info_get_details_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 85 => wire__crate__api__system_test__test_info_get_error_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 86 => wire__crate__api__system_test__test_info_get_name_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 87 => wire__crate__api__system_test__test_info_is_failed_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 88 => wire__crate__api__system_test__test_info_is_passed_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + 89 => wire__zoe_client__frb_api__verifying_key_from_hex_impl( + port, + ptr, + rust_vec_len, + data_len, + ), + _ => unreachable!(), + } +} + +fn pde_ffi_dispatcher_sync_impl( + func_id: i32, + ptr: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len: i32, + data_len: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + // Codec=Pde (Serialization + dispatch), see doc to use other codecs + match func_id { + 35 => wire__zoe_client__client__RelayConnectionInfo_auto_accessor_get_info_impl( + ptr, + rust_vec_len, + data_len, + ), + 36 => wire__zoe_client__client__RelayConnectionInfo_auto_accessor_get_status_impl( + ptr, + rust_vec_len, + data_len, + ), + 37 => wire__zoe_client__client__RelayConnectionInfo_auto_accessor_set_info_impl( + ptr, + rust_vec_len, + data_len, + ), + 38 => wire__zoe_client__client__RelayConnectionInfo_auto_accessor_set_status_impl( + ptr, + rust_vec_len, + data_len, + ), + 39 => wire__zoe_client__client__RelayInfo_auto_accessor_get_relay_address_impl( + ptr, + rust_vec_len, + data_len, + ), + 40 => wire__zoe_client__client__RelayInfo_auto_accessor_get_relay_id_impl( + ptr, + rust_vec_len, + data_len, + ), + 41 => wire__zoe_client__client__RelayInfo_auto_accessor_set_relay_address_impl( + ptr, + rust_vec_len, + data_len, + ), + 42 => wire__zoe_client__client__RelayInfo_auto_accessor_set_relay_id_impl( + ptr, + rust_vec_len, + data_len, + ), + 43 => wire__zoe_client__client__RelayStatusUpdate_auto_accessor_get_relay_address_impl( + ptr, + rust_vec_len, + data_len, + ), + 44 => wire__zoe_client__client__RelayStatusUpdate_auto_accessor_get_relay_id_impl( + ptr, + rust_vec_len, + data_len, + ), + 45 => wire__zoe_client__client__RelayStatusUpdate_auto_accessor_get_status_impl( + ptr, + rust_vec_len, + data_len, + ), + 46 => wire__zoe_client__client__RelayStatusUpdate_auto_accessor_set_relay_address_impl( + ptr, + rust_vec_len, + data_len, + ), + 47 => wire__zoe_client__client__RelayStatusUpdate_auto_accessor_set_relay_id_impl( + ptr, + rust_vec_len, + data_len, + ), + 48 => wire__zoe_client__client__RelayStatusUpdate_auto_accessor_set_status_impl( + ptr, + rust_vec_len, + data_len, + ), + 64 => wire__crate__api__simple__greet_impl(ptr, rust_vec_len, data_len), + _ => unreachable!(), + } +} + +// Section: rust2dart + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for Client { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for ClientBuilder { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for ClientSecret { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for FileRef { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for KeyId { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for KeyPair { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for KeyPairError { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for PathBuf { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for RelayAddress { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} + +impl flutter_rust_bridge::IntoIntoDart> for RelayConnectionInfo { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} + +impl flutter_rust_bridge::IntoIntoDart> + for RelayConnectionStatus +{ + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for RelayInfo { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for RelayStatusUpdate { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for Signature { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for SigningKey { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for SocketAddr { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} + +impl flutter_rust_bridge::IntoIntoDart> for SystemCheckResults { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for TestInfo { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for VerifyError { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for VerifyingKey { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for VerifyingKeyError { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + match self.0 { + zoe_wire_protocol::keys::Algorithm::Ed25519 => 0.into_dart(), + zoe_wire_protocol::keys::Algorithm::MlDsa44 => 1.into_dart(), + zoe_wire_protocol::keys::Algorithm::MlDsa65 => 2.into_dart(), + zoe_wire_protocol::keys::Algorithm::MlDsa87 => 3.into_dart(), + _ => unreachable!(), + } + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl flutter_rust_bridge::IntoIntoDart> + for zoe_wire_protocol::keys::Algorithm +{ + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + [ + self.0.is_connected.into_into_dart().into_dart(), + self.0.connected_count.into_into_dart().into_dart(), + self.0.total_count.into_into_dart().into_dart(), + ] + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl flutter_rust_bridge::IntoIntoDart> + for zoe_client::client::OverallConnectionStatus +{ + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + match self.0 { + zoe_client::system_check::TestCategory::OfflineStorage => 0.into_dart(), + zoe_client::system_check::TestCategory::OfflineBlob => 1.into_dart(), + zoe_client::system_check::TestCategory::Connectivity => 2.into_dart(), + zoe_client::system_check::TestCategory::Storage => 3.into_dart(), + zoe_client::system_check::TestCategory::BlobService => 4.into_dart(), + zoe_client::system_check::TestCategory::Synchronization => 5.into_dart(), + _ => unreachable!(), + } + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl flutter_rust_bridge::IntoIntoDart> + for zoe_client::system_check::TestCategory +{ + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +impl SseEncode for flutter_rust_bridge::for_generated::anyhow::Error { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode(format!("{:?}", self), serializer); + } +} + +impl SseEncode for Client { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for ClientBuilder { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for ClientSecret { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for FileRef { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for KeyId { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode( + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), + serializer, + ); + } +} + +impl SseEncode for KeyPair { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for KeyPairError { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for PathBuf { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for RelayAddress { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for RelayConnectionInfo { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for RelayConnectionStatus { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + , + >>::sse_encode( + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), + serializer, + ); + } +} + +impl SseEncode for RelayInfo { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for RelayStatusUpdate { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for Signature { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for SigningKey { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for SocketAddr { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for SystemCheckResults { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for TestInfo { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for VerifyError { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for VerifyingKey { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for VerifyingKeyError { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for RustOpaqueMoi> { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode for RustOpaqueMoi> { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode for RustOpaqueMoi> { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode for RustOpaqueMoi> { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode for RustOpaqueMoi> { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi< + flutter_rust_bridge::for_generated::RustAutoOpaqueInner, + > +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode for StreamSink { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + unimplemented!("") + } +} + +impl SseEncode + for StreamSink< + zoe_client::client::OverallConnectionStatus, + flutter_rust_bridge::for_generated::SseCodec, + > +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + unimplemented!("") + } +} + +impl SseEncode for String { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >::sse_encode(self.into_bytes(), serializer); + } +} + +impl SseEncode for zoe_wire_protocol::keys::Algorithm { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode( + match self { + zoe_wire_protocol::keys::Algorithm::Ed25519 => 0, + zoe_wire_protocol::keys::Algorithm::MlDsa44 => 1, + zoe_wire_protocol::keys::Algorithm::MlDsa65 => 2, + zoe_wire_protocol::keys::Algorithm::MlDsa87 => 3, + _ => { + unimplemented!(""); + } + }, + serializer, + ); + } +} + +impl SseEncode for bool { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + serializer.cursor.write_u8(self as _).unwrap(); + } +} + +impl SseEncode for i32 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + serializer.cursor.write_i32::(self).unwrap(); + } +} + +impl SseEncode for Vec { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode(self.len() as _, serializer); + for item in self { + ::sse_encode(item, serializer); + } + } +} + +impl SseEncode for Vec { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode(self.len() as _, serializer); + for item in self { + ::sse_encode(item, serializer); + } + } +} + +impl SseEncode for Vec { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode(self.len() as _, serializer); + for item in self { + ::sse_encode(item, serializer); + } + } +} + +impl SseEncode for Vec { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode(self.len() as _, serializer); + for item in self { + ::sse_encode(item, serializer); + } + } +} + +impl SseEncode for Vec { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode(self.len() as _, serializer); + for item in self { + ::sse_encode(item, serializer); + } + } +} + +impl SseEncode for Vec { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode(self.len() as _, serializer); + for item in self { + ::sse_encode(item, serializer); + } + } +} + +impl SseEncode for Option { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode(self.is_some(), serializer); + if let Some(value) = self { + ::sse_encode(value, serializer); + } + } +} + +impl SseEncode for zoe_client::client::OverallConnectionStatus { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode(self.is_connected, serializer); + ::sse_encode(self.connected_count, serializer); + ::sse_encode(self.total_count, serializer); + } +} + +impl SseEncode for zoe_client::system_check::TestCategory { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode( + match self { + zoe_client::system_check::TestCategory::OfflineStorage => 0, + zoe_client::system_check::TestCategory::OfflineBlob => 1, + zoe_client::system_check::TestCategory::Connectivity => 2, + zoe_client::system_check::TestCategory::Storage => 3, + zoe_client::system_check::TestCategory::BlobService => 4, + zoe_client::system_check::TestCategory::Synchronization => 5, + _ => { + unimplemented!(""); + } + }, + serializer, + ); + } +} + +impl SseEncode for u16 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + serializer.cursor.write_u16::(self).unwrap(); + } +} + +impl SseEncode for u32 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + serializer.cursor.write_u32::(self).unwrap(); + } +} + +impl SseEncode for u64 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + serializer.cursor.write_u64::(self).unwrap(); + } +} + +impl SseEncode for u8 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + serializer.cursor.write_u8(self).unwrap(); + } +} + +impl SseEncode for [u8; 32] { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >::sse_encode( + { + let boxed: Box<[_]> = Box::new(self); + boxed.into_vec() + }, + serializer, + ); + } +} + +impl SseEncode for () { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) {} +} + +impl SseEncode for usize { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + serializer + .cursor + .write_u64::(self as _) + .unwrap(); + } +} + +#[cfg(not(target_family = "wasm"))] +mod io { + // This file is automatically generated, so please do not edit it. + // @generated by `flutter_rust_bridge`@ 2.11.1. + + // Section: imports + + use super::*; + use crate::*; + use flutter_rust_bridge::for_generated::byteorder::{ + NativeEndian, ReadBytesExt, WriteBytesExt, + }; + use flutter_rust_bridge::for_generated::{transform_result_dco, Lifetimeable, Lockable}; + use flutter_rust_bridge::{Handler, IntoIntoDart}; + use zoe_client::client::api::file_storage::*; + use zoe_client::client::*; + use zoe_client::system_check::*; + use zoe_wire_protocol::keys::*; + use zoe_wire_protocol::primitives::*; + + // Section: boilerplate + + use std::{error::Error, net::SocketAddr, path::PathBuf}; + use zoe_app_primitives::connection::RelayAddress; + use zoe_client::FileRef; + use zoe_wire_protocol::keys::{KeyPair, Signature, SigningKey, VerifyingKey}; + + flutter_rust_bridge::frb_generated_boilerplate_io!(); + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_zoe_native_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } +} +#[cfg(not(target_family = "wasm"))] +pub use io::*; + +/// cbindgen:ignore +#[cfg(target_family = "wasm")] +mod web { + // This file is automatically generated, so please do not edit it. + // @generated by `flutter_rust_bridge`@ 2.11.1. + + // Section: imports + + use super::*; + use crate::*; + use flutter_rust_bridge::for_generated::byteorder::{ + NativeEndian, ReadBytesExt, WriteBytesExt, + }; + use flutter_rust_bridge::for_generated::wasm_bindgen; + use flutter_rust_bridge::for_generated::wasm_bindgen::prelude::*; + use flutter_rust_bridge::for_generated::{transform_result_dco, Lifetimeable, Lockable}; + use flutter_rust_bridge::{Handler, IntoIntoDart}; + use zoe_client::client::api::file_storage::*; + use zoe_client::client::*; + use zoe_client::system_check::*; + use zoe_wire_protocol::keys::*; + use zoe_wire_protocol::primitives::*; + + // Section: boilerplate + + use std::{error::Error, net::SocketAddr, path::PathBuf}; + use zoe_app_primitives::connection::RelayAddress; + use zoe_client::FileRef; + use zoe_wire_protocol::keys::{KeyPair, Signature, SigningKey, VerifyingKey}; + + flutter_rust_bridge::frb_generated_boilerplate_web!(); + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyId( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPair( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerKeyPairError( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayAddress( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionInfo( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayConnectionStatus( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayInfo( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerRelayStatusUpdate( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSignature( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSystemCheckResults( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTestInfo( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyError( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKeyError( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } +} +#[cfg(target_family = "wasm")] +pub use web::*; diff --git a/packages/zoe_native/rust/src/lib.rs b/packages/zoe_native/rust/src/lib.rs new file mode 100644 index 00000000..cbb071f8 --- /dev/null +++ b/packages/zoe_native/rust/src/lib.rs @@ -0,0 +1,2 @@ +pub mod api; +mod frb_generated; diff --git a/packages/zoe_native/test/providers_smoke_test.dart b/packages/zoe_native/test/providers_smoke_test.dart new file mode 100644 index 00000000..40bc37bb --- /dev/null +++ b/packages/zoe_native/test/providers_smoke_test.dart @@ -0,0 +1,271 @@ +import 'package:mocktail/mocktail.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:zoe_native/zoe_native.dart'; +import 'package:zoe_native/providers.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:riverpod/riverpod.dart'; +import 'package:zoe_native/src/rust/lib.dart'; +import 'package:flutter/services.dart'; +import 'dart:io'; + +// Surely, you can use Mockito or whatever other mocking packages +class MockRustLibApi extends Mock implements RustLibApi {} + +class MockClientBuilder extends Mock implements ClientBuilder {} + +class MockClient extends Mock implements Client {} + +class MockClientSecret extends Mock implements ClientSecret {} + +class MockVerifyingKey extends Mock implements VerifyingKey {} + +class MockSocketAddr extends Mock { + @override + int get hashCode => 0; + + @override + bool operator ==(Object other) => identical(this, other); +} + +class MockRelayAddress extends Mock implements RelayAddress {} + +// Fake classes for fallback values +class FakeVerifyingKey extends Fake implements VerifyingKey {} + +class FakeSocketAddr extends Fake implements SocketAddr {} + +class FakeClientSecret extends Fake implements ClientSecret {} + +class FakeRelayAddress extends Fake implements RelayAddress {} + +Future main() async { + // this ensures the dart types are fine and we can mock + // the API without any issues + final mockApi = MockRustLibApi(); + + setUpAll(() { + // Initialize Flutter test bindings to avoid ServicesBinding errors + TestWidgetsFlutterBinding.ensureInitialized(); + + // Mock path_provider plugin + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler( + const MethodChannel('plugins.flutter.io/path_provider'), + (MethodCall methodCall) async { + switch (methodCall.method) { + case 'getApplicationSupportDirectory': + // Create a proper temporary directory that exists + final tempDir = Directory.systemTemp.createTempSync( + 'zoe_test_', + ); + return tempDir.path; + case 'getApplicationCacheDirectory': + // Create a proper temporary cache directory that exists + final tempDir = Directory.systemTemp.createTempSync( + 'zoe_cache_', + ); + return tempDir.path; + default: + return null; + } + }, + ); + + // Register fallback values for mocktail + registerFallbackValue(FakeVerifyingKey()); + registerFallbackValue(FakeSocketAddr()); + registerFallbackValue(FakeClientSecret()); + registerFallbackValue(FakeRelayAddress()); + + RustLib.initMock(api: mockApi); + initStorage( + appleKeychainAppGroupName: 'app.zoe.flutter', + sessionKey: 'clientSecret', // Use consistent key for testing + ); + }); + + setUp(() { + FlutterSecureStorage.setMockInitialValues({ + 'clientSecret': + '00201f12f22a1ed75a2e12462c8c106121db49a779d1bd2fb9c96a881835c068f09c', + }); + }); + + test('can mock Rust calls', () async { + final builder = MockClientBuilder(); + final client = MockClient(); + final clientSecret = MockClientSecret(); + final verifyingKey = MockVerifyingKey(); + // final socketAddr = MockSocketAddr(); // Not directly used, but needed for mocking + + // Mock ClientBuilder.default_() + when( + () => mockApi.zoeClientClientClientBuilderDefault(), + ).thenAnswer((_) async => builder); + + // Mock ClientSecret.fromHex() + when( + () => mockApi.zoeClientClientClientSecretFromHex(hex: any(named: 'hex')), + ).thenAnswer((_) async => clientSecret); + + // Mock VerifyingKey.fromHex() + when( + () => mockApi.zoeWireProtocolKeysVerifyingKeyFromHex( + hex: any(named: 'hex'), + ), + ).thenAnswer((_) async => verifyingKey); + + // Mock resolveToSocketAddr() + when( + () => mockApi.zoeClientUtilResolveToSocketAddr(s: any(named: 's')), + ).thenAnswer((_) async => FakeSocketAddr()); + + // Mock createRelayAddressWithHostname() + when( + () => mockApi.zoeClientFrbApiCreateRelayAddressWithHostname( + serverKeyHex: any(named: 'serverKeyHex'), + hostname: any(named: 'hostname'), + ), + ).thenAnswer((_) async => FakeRelayAddress()); + + // Mock builder methods + when( + () => builder.dbStorageDir(path: any(named: 'path')), + ).thenAnswer((_) async {}); + when( + () => builder.mediaStorageDir( + mediaStorageDir: any(named: 'mediaStorageDir'), + ), + ).thenAnswer((_) async {}); + when( + () => builder.serverInfo( + serverPublicKey: any(named: 'serverPublicKey'), + serverAddr: any(named: 'serverAddr'), + ), + ).thenAnswer((_) async {}); + when( + () => builder.clientSecret(secret: any(named: 'secret')), + ).thenAnswer((_) async {}); + when( + () => builder.servers(servers: any(named: 'servers')), + ).thenAnswer((_) async {}); + when( + () => builder.autoconnect(autoconnect: any(named: 'autoconnect')), + ).thenAnswer((_) async {}); + when(() => builder.build()).thenAnswer((_) async => client); + + // Mock client methods + when(() => client.clientSecretHex()).thenAnswer( + (_) async => + '00201f12f22a1ed75a2e12462c8c106121db49a779d1bd2fb9c96a881835c068f09c', + ); + + // Create a ProviderContainer for this test. + // DO NOT share ProviderContainers between tests. + final container = ProviderContainer(); + final cl = await container.read(clientProvider.future); + + // Verify the mocks were called as expected + verify(() => mockApi.zoeClientClientClientBuilderDefault()).called(1); + verify(() => builder.dbStorageDir(path: any(named: 'path'))).called(1); + verify( + () => builder.mediaStorageDir( + mediaStorageDir: any(named: 'mediaStorageDir'), + ), + ).called(1); + verify( + () => mockApi.zoeClientClientClientSecretFromHex(hex: any(named: 'hex')), + ).called(1); + verify( + () => mockApi.zoeClientFrbApiCreateRelayAddressWithHostname( + serverKeyHex: any(named: 'serverKeyHex'), + hostname: any(named: 'hostname'), + ), + ).called(1); + verify(() => builder.clientSecret(secret: any(named: 'secret'))).called(1); + verify(() => builder.build()).called(1); + + expect(cl, equals(client)); + + // Clean up the container + container.dispose(); + }); + + test('can mock Rust calls for new client generation', () async { + // Reset the mock API to clear any previous interactions + reset(mockApi); + + // Set up secure storage without existing client secret for this specific test + FlutterSecureStorage.setMockInitialValues({}); + + final builder = MockClientBuilder(); + final client = MockClient(); + final verifyingKey = MockVerifyingKey(); + // final socketAddr = MockSocketAddr(); // Not directly used, but needed for mocking + + // Mock ClientBuilder.default_() + when( + () => mockApi.zoeClientClientClientBuilderDefault(), + ).thenAnswer((_) async => builder); + + // Mock VerifyingKey.fromHex() + when( + () => mockApi.zoeWireProtocolKeysVerifyingKeyFromHex( + hex: any(named: 'hex'), + ), + ).thenAnswer((_) async => verifyingKey); + + // Mock resolveToSocketAddr() + when( + () => mockApi.zoeClientUtilResolveToSocketAddr(s: any(named: 's')), + ).thenAnswer((_) async => FakeSocketAddr()); + + // Mock createRelayAddressWithHostname() + when( + () => mockApi.zoeClientFrbApiCreateRelayAddressWithHostname( + serverKeyHex: any(named: 'serverKeyHex'), + hostname: any(named: 'hostname'), + ), + ).thenAnswer((_) async => FakeRelayAddress()); + + // Mock builder methods + when( + () => builder.dbStorageDir(path: any(named: 'path')), + ).thenAnswer((_) async {}); + when( + () => builder.mediaStorageDir( + mediaStorageDir: any(named: 'mediaStorageDir'), + ), + ).thenAnswer((_) async {}); + when( + () => builder.serverInfo( + serverPublicKey: any(named: 'serverPublicKey'), + serverAddr: any(named: 'serverAddr'), + ), + ).thenAnswer((_) async {}); + when( + () => builder.servers(servers: any(named: 'servers')), + ).thenAnswer((_) async {}); + when( + () => builder.autoconnect(autoconnect: any(named: 'autoconnect')), + ).thenAnswer((_) async {}); + when(() => builder.build()).thenAnswer((_) async => client); + + // Mock client methods for new client generation + when( + () => client.clientSecretHex(), + ).thenAnswer((_) async => 'new_generated_secret_hex'); + + // Create a ProviderContainer for this test. + final container = ProviderContainer(); + final cl = await container.read(clientProvider.future); + + // Since there's caching in loadOrGenerateClient(), this test may reuse the client from the first test + // The important thing is that the provider works and returns a client + expect(cl, isNotNull); + expect(cl, isA()); + + // Clean up the container + container.dispose(); + }); +} diff --git a/packages/zoe_native/test/smoke_test.dart b/packages/zoe_native/test/smoke_test.dart new file mode 100644 index 00000000..20a56492 --- /dev/null +++ b/packages/zoe_native/test/smoke_test.dart @@ -0,0 +1,23 @@ +import 'package:mocktail/mocktail.dart'; +import 'package:test/test.dart'; +import 'package:zoe_native/zoe_native.dart'; + +// Surely, you can use Mockito or whatever other mocking packages +class MockRustLibApi extends Mock implements RustLibApi {} + +class MockClientBuilder extends Mock implements ClientBuilder {} + +Future main() async { + // this ensures the dart types are fine and we ca mock + // the API without any issues + final mockApi = MockRustLibApi(); + when( + () => mockApi.zoeClientClientClientBuilder(), + ).thenAnswer((_) async => MockClientBuilder()); + + RustLib.initMock(api: mockApi); + + test('can mock Rust calls', () async { + await Client.builder(); + }); +} diff --git a/packages/zoe_native/test_driver/integration_test.dart b/packages/zoe_native/test_driver/integration_test.dart new file mode 100644 index 00000000..b38629cc --- /dev/null +++ b/packages/zoe_native/test_driver/integration_test.dart @@ -0,0 +1,3 @@ +import 'package:integration_test/integration_test_driver.dart'; + +Future main() => integrationDriver(); diff --git a/rust_builder/windows/.gitignore b/packages/zoe_native/windows/.gitignore similarity index 100% rename from rust_builder/windows/.gitignore rename to packages/zoe_native/windows/.gitignore diff --git a/rust_builder/windows/CMakeLists.txt b/packages/zoe_native/windows/CMakeLists.txt similarity index 82% rename from rust_builder/windows/CMakeLists.txt rename to packages/zoe_native/windows/CMakeLists.txt index b1dacdfc..41c7b51d 100644 --- a/rust_builder/windows/CMakeLists.txt +++ b/packages/zoe_native/windows/CMakeLists.txt @@ -5,16 +5,16 @@ cmake_minimum_required(VERSION 3.14) # Project-level configuration. -set(PROJECT_NAME "rust_lib_zoe") +set(PROJECT_NAME "zoe_native") project(${PROJECT_NAME} LANGUAGES CXX) include("../cargokit/cmake/cargokit.cmake") -apply_cargokit(${PROJECT_NAME} ../../../../../../rust rust_lib_zoe "") +apply_cargokit(${PROJECT_NAME} ../rust zoe_native "") # List of absolute paths to libraries that should be bundled with the plugin. # This list could contain prebuilt libraries, or libraries created by an # external build triggered from this build file. -set(rust_lib_zoe_bundled_libraries +set(zoe_native_bundled_libraries "${${PROJECT_NAME}_cargokit_lib}" PARENT_SCOPE ) diff --git a/pubspec.lock b/pubspec.lock index 4863e4e3..333fd355 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -393,6 +393,54 @@ packages: url: "https://pub.dev" source: hosted version: "2.11.1" + flutter_secure_storage: + dependency: transitive + description: + name: flutter_secure_storage + sha256: f7eceb0bc6f4fd0441e29d43cab9ac2a1c5ffd7ea7b64075136b718c46954874 + url: "https://pub.dev" + source: hosted + version: "10.0.0-beta.4" + flutter_secure_storage_darwin: + dependency: transitive + description: + name: flutter_secure_storage_darwin + sha256: f226f2a572bed96bc6542198ebaec227150786e34311d455a7e2d3d06d951845 + url: "https://pub.dev" + source: hosted + version: "0.1.0" + flutter_secure_storage_linux: + dependency: transitive + description: + name: flutter_secure_storage_linux + sha256: "9b4b73127e857cd3117d43a70fa3dddadb6e0b253be62e6a6ab85caa0742182c" + url: "https://pub.dev" + source: hosted + version: "2.0.1" + flutter_secure_storage_platform_interface: + dependency: transitive + description: + name: flutter_secure_storage_platform_interface + sha256: "8ceea1223bee3c6ac1a22dabd8feefc550e4729b3675de4b5900f55afcb435d6" + url: "https://pub.dev" + source: hosted + version: "2.0.1" + flutter_secure_storage_web: + dependency: transitive + description: + name: flutter_secure_storage_web + sha256: "4c3f233e739545c6cb09286eeec1cc4744138372b985113acc904f7263bef517" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + flutter_secure_storage_windows: + dependency: transitive + description: + name: flutter_secure_storage_windows + sha256: ff32af20f70a8d0e59b2938fc92de35b54a74671041c814275afd80e27df9f21 + url: "https://pub.dev" + source: hosted + version: "4.0.0" flutter_shaders: dependency: transitive description: @@ -845,13 +893,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.6.1" - rust_lib_zoe: - dependency: "direct main" - description: - path: rust_builder - relative: true - source: path - version: "0.0.1" share_plus: dependency: "direct main" description: @@ -1217,6 +1258,13 @@ packages: url: "https://pub.dev" source: hosted version: "6.5.0" + zoe_native: + dependency: "direct main" + description: + path: "packages/zoe_native" + relative: true + source: path + version: "0.0.1" sdks: - dart: ">=3.8.1 <4.0.0" + dart: ">=3.9.0 <4.0.0" flutter: ">=3.29.0" diff --git a/pubspec.yaml b/pubspec.yaml index 716cf655..fcc6ad43 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -34,8 +34,8 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.8 - rust_lib_zoe: - path: rust_builder + zoe_native: + path: packages/zoe_native flutter_rust_bridge: 2.11.1 # State management diff --git a/rust/Cargo.toml b/rust/Cargo.toml deleted file mode 100644 index b5806301..00000000 --- a/rust/Cargo.toml +++ /dev/null @@ -1,19 +0,0 @@ -[package] -name = "rust_lib_zoe" -version = "0.1.0" -edition = "2021" - -[lib] -crate-type = ["cdylib", "staticlib"] - -[dependencies] -flutter_rust_bridge = "=2.11.1" - -[dependencies.zoe-client] -# path = "../../zoeyr/crates/client" -features = ["frb-api"] -git = "https://github.com/acterglobal/zoe-relay.git" -branch = "main" - -[lints.rust] -unexpected_cfgs = { level = "warn", check-cfg = ['cfg(frb_expand)'] } diff --git a/rust/src/api/mod.rs b/rust/src/api/mod.rs deleted file mode 100644 index b252f36b..00000000 --- a/rust/src/api/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod simple; diff --git a/rust/src/frb_generated.rs b/rust/src/frb_generated.rs deleted file mode 100644 index 7ed0c10a..00000000 --- a/rust/src/frb_generated.rs +++ /dev/null @@ -1,2140 +0,0 @@ -// This file is automatically generated, so please do not edit it. -// @generated by `flutter_rust_bridge`@ 2.11.1. - -#![allow( - non_camel_case_types, - unused, - non_snake_case, - clippy::needless_return, - clippy::redundant_closure_call, - clippy::redundant_closure, - clippy::useless_conversion, - clippy::unit_arg, - clippy::unused_unit, - clippy::double_parens, - clippy::let_and_return, - clippy::too_many_arguments, - clippy::match_single_binding, - clippy::clone_on_copy, - clippy::let_unit_value, - clippy::deref_addrof, - clippy::explicit_auto_deref, - clippy::borrow_deref_ref, - clippy::needless_borrow -)] - -// Section: imports - -use crate::*; -use flutter_rust_bridge::for_generated::byteorder::{NativeEndian, ReadBytesExt, WriteBytesExt}; -use flutter_rust_bridge::for_generated::{transform_result_dco, Lifetimeable, Lockable}; -use flutter_rust_bridge::{Handler, IntoIntoDart}; -use zoe_client::client::*; - -// Section: boilerplate - -flutter_rust_bridge::frb_generated_boilerplate!( - default_stream_sink_codec = SseCodec, - default_rust_opaque = RustOpaqueMoi, - default_rust_auto_opaque = RustAutoOpaqueMoi, -); -pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_VERSION: &str = "2.11.1"; -pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_CONTENT_HASH: i32 = 1257752319; - -// Section: executor - -flutter_rust_bridge::frb_generated_default_handler!(); - -// Section: wire_funcs - -fn wire__zoe_client__client__ClientBuilder_build_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "ClientBuilder_build", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_that = ::sse_decode(&mut deserializer); - deserializer.end(); - move |context| async move { - transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( - (move || async move { - let output_ok = zoe_client::client::ClientBuilder::build(api_that).await?; - Ok(output_ok) - })() - .await, - ) - } - }, - ) -} -fn wire__zoe_client__client__ClientBuilder_client_secret_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "ClientBuilder_client_secret", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_that = , - >>::sse_decode(&mut deserializer); - let api_secret = ::sse_decode(&mut deserializer); - deserializer.end(); - move |context| { - transform_result_sse::<_, ()>((move || { - let mut api_that_guard = None; - let decode_indices_ = - flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ - flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_that, 0, true, - ), - ]); - for i in decode_indices_ { - match i { - 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), - _ => unreachable!(), - } - } - let mut api_that_guard = api_that_guard.unwrap(); - let output_ok = Result::<_, ()>::Ok({ - zoe_client::client::ClientBuilder::client_secret( - &mut *api_that_guard, - api_secret, - ); - })?; - Ok(output_ok) - })()) - } - }, - ) -} -fn wire__zoe_client__client__ClientBuilder_default_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "ClientBuilder_default", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - deserializer.end(); - move |context| { - transform_result_sse::<_, ()>((move || { - let output_ok = - Result::<_, ()>::Ok(zoe_client::client::ClientBuilder::default())?; - Ok(output_ok) - })()) - } - }, - ) -} -fn wire__zoe_client__client__ClientBuilder_media_storage_path_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "ClientBuilder_media_storage_path", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_that = , - >>::sse_decode(&mut deserializer); - let api_media_storage_path = ::sse_decode(&mut deserializer); - deserializer.end(); - move |context| { - transform_result_sse::<_, ()>((move || { - let mut api_that_guard = None; - let decode_indices_ = - flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ - flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_that, 0, true, - ), - ]); - for i in decode_indices_ { - match i { - 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), - _ => unreachable!(), - } - } - let mut api_that_guard = api_that_guard.unwrap(); - let output_ok = Result::<_, ()>::Ok({ - zoe_client::client::ClientBuilder::media_storage_path( - &mut *api_that_guard, - api_media_storage_path, - ); - })?; - Ok(output_ok) - })()) - } - }, - ) -} -fn wire__zoe_client__client__ClientBuilder_server_info_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "ClientBuilder_server_info", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_that = , - >>::sse_decode(&mut deserializer); - let api_server_public_key = ::sse_decode(&mut deserializer); - let api_server_addr = ::sse_decode(&mut deserializer); - deserializer.end(); - move |context| { - transform_result_sse::<_, ()>((move || { - let mut api_that_guard = None; - let decode_indices_ = - flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ - flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_that, 0, true, - ), - ]); - for i in decode_indices_ { - match i { - 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), - _ => unreachable!(), - } - } - let mut api_that_guard = api_that_guard.unwrap(); - let output_ok = Result::<_, ()>::Ok({ - zoe_client::client::ClientBuilder::server_info( - &mut *api_that_guard, - api_server_public_key, - api_server_addr, - ); - })?; - Ok(output_ok) - })()) - } - }, - ) -} -fn wire__zoe_client__client__ClientSecret_as_hex_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "ClientSecret_as_hex", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_that = , - >>::sse_decode(&mut deserializer); - deserializer.end(); - move |context| { - transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( - (move || { - let mut api_that_guard = None; - let decode_indices_ = - flutter_rust_bridge::for_generated::lockable_compute_decode_order( - vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_that, 0, false, - )], - ); - for i in decode_indices_ { - match i { - 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), - _ => unreachable!(), - } - } - let api_that_guard = api_that_guard.unwrap(); - let output_ok = zoe_client::client::ClientSecret::as_hex(&*api_that_guard)?; - Ok(output_ok) - })(), - ) - } - }, - ) -} -fn wire__zoe_client__client__ClientSecret_from_hex_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "ClientSecret_from_hex", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_value = ::sse_decode(&mut deserializer); - deserializer.end(); - move |context| { - transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( - (move || { - let output_ok = zoe_client::client::ClientSecret::from_hex(api_value)?; - Ok(output_ok) - })(), - ) - } - }, - ) -} -fn wire__zoe_client__client__ClientSecret_new_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "ClientSecret_new", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_signing_key = ::sse_decode(&mut deserializer); - let api_server_public_key = ::sse_decode(&mut deserializer); - let api_server_addr = ::sse_decode(&mut deserializer); - deserializer.end(); - move |context| { - transform_result_sse::<_, ()>((move || { - let output_ok = Result::<_, ()>::Ok(zoe_client::client::ClientSecret::new( - api_signing_key, - api_server_public_key, - api_server_addr, - ))?; - Ok(output_ok) - })()) - } - }, - ) -} -fn wire__zoe_client__client__Client_builder_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "Client_builder", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - deserializer.end(); - move |context| { - transform_result_sse::<_, ()>((move || { - let output_ok = Result::<_, ()>::Ok(zoe_client::client::Client::builder())?; - Ok(output_ok) - })()) - } - }, - ) -} -fn wire__zoe_client__client__Client_has_file_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "Client_has_file", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_that = , - >>::sse_decode(&mut deserializer); - let api_stored_info = , - >>::sse_decode(&mut deserializer); - deserializer.end(); - move |context| async move { - transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( - (move || async move { - let mut api_that_guard = None; - let mut api_stored_info_guard = None; - let decode_indices_ = - flutter_rust_bridge::for_generated::lockable_compute_decode_order( - vec![ - flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_that, 0, false, - ), - flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_stored_info, - 1, - false, - ), - ], - ); - for i in decode_indices_ { - match i { - 0 => { - api_that_guard = - Some(api_that.lockable_decode_async_ref().await) - } - 1 => { - api_stored_info_guard = - Some(api_stored_info.lockable_decode_async_ref().await) - } - _ => unreachable!(), - } - } - let api_that_guard = api_that_guard.unwrap(); - let api_stored_info_guard = api_stored_info_guard.unwrap(); - let output_ok = zoe_client::client::Client::has_file( - &*api_that_guard, - &*api_stored_info_guard, - ) - .await?; - Ok(output_ok) - })() - .await, - ) - } - }, - ) -} -fn wire__zoe_client__client__Client_retrieve_file_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "Client_retrieve_file", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_that = , - >>::sse_decode(&mut deserializer); - let api_file_ref = , - >>::sse_decode(&mut deserializer); - let api_output_path = ::sse_decode(&mut deserializer); - deserializer.end(); - move |context| async move { - transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( - (move || async move { - let mut api_that_guard = None; - let mut api_file_ref_guard = None; - let decode_indices_ = - flutter_rust_bridge::for_generated::lockable_compute_decode_order( - vec![ - flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_that, 0, false, - ), - flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_file_ref, - 1, - false, - ), - ], - ); - for i in decode_indices_ { - match i { - 0 => { - api_that_guard = - Some(api_that.lockable_decode_async_ref().await) - } - 1 => { - api_file_ref_guard = - Some(api_file_ref.lockable_decode_async_ref().await) - } - _ => unreachable!(), - } - } - let api_that_guard = api_that_guard.unwrap(); - let api_file_ref_guard = api_file_ref_guard.unwrap(); - let output_ok = zoe_client::client::Client::retrieve_file( - &*api_that_guard, - &*api_file_ref_guard, - api_output_path, - ) - .await?; - Ok(output_ok) - })() - .await, - ) - } - }, - ) -} -fn wire__zoe_client__client__Client_retrieve_file_bytes_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "Client_retrieve_file_bytes", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_that = , - >>::sse_decode(&mut deserializer); - let api_file_ref = , - >>::sse_decode(&mut deserializer); - deserializer.end(); - move |context| async move { - transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( - (move || async move { - let mut api_that_guard = None; - let mut api_file_ref_guard = None; - let decode_indices_ = - flutter_rust_bridge::for_generated::lockable_compute_decode_order( - vec![ - flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_that, 0, false, - ), - flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_file_ref, - 1, - false, - ), - ], - ); - for i in decode_indices_ { - match i { - 0 => { - api_that_guard = - Some(api_that.lockable_decode_async_ref().await) - } - 1 => { - api_file_ref_guard = - Some(api_file_ref.lockable_decode_async_ref().await) - } - _ => unreachable!(), - } - } - let api_that_guard = api_that_guard.unwrap(); - let api_file_ref_guard = api_file_ref_guard.unwrap(); - let output_ok = zoe_client::client::Client::retrieve_file_bytes( - &*api_that_guard, - &*api_file_ref_guard, - ) - .await?; - Ok(output_ok) - })() - .await, - ) - } - }, - ) -} -fn wire__zoe_client__client__Client_store_data_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "Client_store_data", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_that = , - >>::sse_decode(&mut deserializer); - let api_data = >::sse_decode(&mut deserializer); - let api_reference_name = ::sse_decode(&mut deserializer); - let api_content_type = >::sse_decode(&mut deserializer); - deserializer.end(); - move |context| async move { - transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( - (move || async move { - let mut api_that_guard = None; - let decode_indices_ = - flutter_rust_bridge::for_generated::lockable_compute_decode_order( - vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_that, 0, false, - )], - ); - for i in decode_indices_ { - match i { - 0 => { - api_that_guard = - Some(api_that.lockable_decode_async_ref().await) - } - _ => unreachable!(), - } - } - let api_that_guard = api_that_guard.unwrap(); - let output_ok = zoe_client::client::Client::store_data( - &*api_that_guard, - &api_data, - &api_reference_name, - api_content_type, - ) - .await?; - Ok(output_ok) - })() - .await, - ) - } - }, - ) -} -fn wire__zoe_client__client__Client_store_file_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "Client_store_file", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_that = , - >>::sse_decode(&mut deserializer); - let api_file_path = ::sse_decode(&mut deserializer); - deserializer.end(); - move |context| async move { - transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>( - (move || async move { - let mut api_that_guard = None; - let decode_indices_ = - flutter_rust_bridge::for_generated::lockable_compute_decode_order( - vec![flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_that, 0, false, - )], - ); - for i in decode_indices_ { - match i { - 0 => { - api_that_guard = - Some(api_that.lockable_decode_async_ref().await) - } - _ => unreachable!(), - } - } - let api_that_guard = api_that_guard.unwrap(); - let output_ok = - zoe_client::client::Client::store_file(&*api_that_guard, api_file_path) - .await?; - Ok(output_ok) - })() - .await, - ) - } - }, - ) -} -fn wire__zoe_client__frb_api__create_signing_key_random_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "create_signing_key_random", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - deserializer.end(); - move |context| { - transform_result_sse::<_, ()>((move || { - let output_ok = - Result::<_, ()>::Ok(zoe_client::frb_api::create_signing_key_random())?; - Ok(output_ok) - })()) - } - }, - ) -} -fn wire__zoe_client__frb_api__create_socket_addr_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "create_socket_addr", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_ip = ::sse_decode(&mut deserializer); - let api_port = ::sse_decode(&mut deserializer); - deserializer.end(); - move |context| { - transform_result_sse::<_, String>((move || { - let output_ok = zoe_client::frb_api::create_socket_addr(api_ip, api_port)?; - Ok(output_ok) - })()) - } - }, - ) -} -fn wire__crate__api__simple__greet_impl( - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "greet", - port: None, - mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_name = ::sse_decode(&mut deserializer); - deserializer.end(); - transform_result_sse::<_, ()>((move || { - let output_ok = Result::<_, ()>::Ok(crate::api::simple::greet(api_name))?; - Ok(output_ok) - })()) - }, - ) -} -fn wire__crate__api__simple__init_app_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "init_app", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - deserializer.end(); - move |context| { - transform_result_sse::<_, ()>((move || { - let output_ok = Result::<_, ()>::Ok({ - crate::api::simple::init_app(); - })?; - Ok(output_ok) - })()) - } - }, - ) -} -fn wire__zoe_client__frb_api__signing_key_from_hex_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "signing_key_from_hex", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_hex = ::sse_decode(&mut deserializer); - deserializer.end(); - move |context| { - transform_result_sse::<_, String>((move || { - let output_ok = zoe_client::frb_api::signing_key_from_hex(api_hex)?; - Ok(output_ok) - })()) - } - }, - ) -} -fn wire__zoe_client__frb_api__signing_key_to_verifying_key_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "signing_key_to_verifying_key", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_signing_key_hex = ::sse_decode(&mut deserializer); - deserializer.end(); - move |context| { - transform_result_sse::<_, String>((move || { - let output_ok = - zoe_client::frb_api::signing_key_to_verifying_key(api_signing_key_hex)?; - Ok(output_ok) - })()) - } - }, - ) -} -fn wire__zoe_client__frb_api__socket_addr_ip_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "socket_addr_ip", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_addr = , - >>::sse_decode(&mut deserializer); - deserializer.end(); - move |context| { - transform_result_sse::<_, ()>((move || { - let mut api_addr_guard = None; - let decode_indices_ = - flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ - flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_addr, 0, false, - ), - ]); - for i in decode_indices_ { - match i { - 0 => api_addr_guard = Some(api_addr.lockable_decode_sync_ref()), - _ => unreachable!(), - } - } - let api_addr_guard = api_addr_guard.unwrap(); - let output_ok = - Result::<_, ()>::Ok(zoe_client::frb_api::socket_addr_ip(&*api_addr_guard))?; - Ok(output_ok) - })()) - } - }, - ) -} -fn wire__zoe_client__frb_api__socket_addr_port_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "socket_addr_port", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_addr = , - >>::sse_decode(&mut deserializer); - deserializer.end(); - move |context| { - transform_result_sse::<_, ()>((move || { - let mut api_addr_guard = None; - let decode_indices_ = - flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ - flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_addr, 0, false, - ), - ]); - for i in decode_indices_ { - match i { - 0 => api_addr_guard = Some(api_addr.lockable_decode_sync_ref()), - _ => unreachable!(), - } - } - let api_addr_guard = api_addr_guard.unwrap(); - let output_ok = Result::<_, ()>::Ok(zoe_client::frb_api::socket_addr_port( - &*api_addr_guard, - ))?; - Ok(output_ok) - })()) - } - }, - ) -} -fn wire__zoe_client__frb_api__socket_addr_to_string_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "socket_addr_to_string", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_addr = , - >>::sse_decode(&mut deserializer); - deserializer.end(); - move |context| { - transform_result_sse::<_, ()>((move || { - let mut api_addr_guard = None; - let decode_indices_ = - flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ - flutter_rust_bridge::for_generated::LockableOrderInfo::new( - &api_addr, 0, false, - ), - ]); - for i in decode_indices_ { - match i { - 0 => api_addr_guard = Some(api_addr.lockable_decode_sync_ref()), - _ => unreachable!(), - } - } - let api_addr_guard = api_addr_guard.unwrap(); - let output_ok = Result::<_, ()>::Ok( - zoe_client::frb_api::socket_addr_to_string(&*api_addr_guard), - )?; - Ok(output_ok) - })()) - } - }, - ) -} -fn wire__zoe_client__frb_api__verifying_key_from_hex_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, - ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len_: i32, - data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( - flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "verifying_key_from_hex", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, - }, - move || { - let message = unsafe { - flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( - ptr_, - rust_vec_len_, - data_len_, - ) - }; - let mut deserializer = - flutter_rust_bridge::for_generated::SseDeserializer::new(message); - let api_hex = ::sse_decode(&mut deserializer); - deserializer.end(); - move |context| { - transform_result_sse::<_, String>((move || { - let output_ok = zoe_client::frb_api::verifying_key_from_hex(api_hex)?; - Ok(output_ok) - })()) - } - }, - ) -} - -// Section: related_funcs - -flutter_rust_bridge::frb_generated_moi_arc_impl_value!( - flutter_rust_bridge::for_generated::RustAutoOpaqueInner -); -flutter_rust_bridge::frb_generated_moi_arc_impl_value!( - flutter_rust_bridge::for_generated::RustAutoOpaqueInner -); -flutter_rust_bridge::frb_generated_moi_arc_impl_value!( - flutter_rust_bridge::for_generated::RustAutoOpaqueInner -); -flutter_rust_bridge::frb_generated_moi_arc_impl_value!( - flutter_rust_bridge::for_generated::RustAutoOpaqueInner -); -flutter_rust_bridge::frb_generated_moi_arc_impl_value!( - flutter_rust_bridge::for_generated::RustAutoOpaqueInner -); -flutter_rust_bridge::frb_generated_moi_arc_impl_value!( - flutter_rust_bridge::for_generated::RustAutoOpaqueInner -); -flutter_rust_bridge::frb_generated_moi_arc_impl_value!( - flutter_rust_bridge::for_generated::RustAutoOpaqueInner -); -flutter_rust_bridge::frb_generated_moi_arc_impl_value!( - flutter_rust_bridge::for_generated::RustAutoOpaqueInner -); - -// Section: dart2rust - -impl SseDecode for flutter_rust_bridge::for_generated::anyhow::Error { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = ::sse_decode(deserializer); - return flutter_rust_bridge::for_generated::anyhow::anyhow!("{}", inner); - } -} - -impl SseDecode for Client { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = , - >>::sse_decode(deserializer); - return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); - } -} - -impl SseDecode for ClientBuilder { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = , - >>::sse_decode(deserializer); - return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); - } -} - -impl SseDecode for ClientSecret { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = , - >>::sse_decode(deserializer); - return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); - } -} - -impl SseDecode for FileRef { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = , - >>::sse_decode(deserializer); - return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); - } -} - -impl SseDecode for PathBuf { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = , - >>::sse_decode(deserializer); - return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); - } -} - -impl SseDecode for SigningKey { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = , - >>::sse_decode(deserializer); - return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); - } -} - -impl SseDecode for SocketAddr { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = , - >>::sse_decode(deserializer); - return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); - } -} - -impl SseDecode for VerifyingKey { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = , - >>::sse_decode(deserializer); - return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); - } -} - -impl SseDecode for RustOpaqueMoi> { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = ::sse_decode(deserializer); - return decode_rust_opaque_moi(inner); - } -} - -impl SseDecode - for RustOpaqueMoi> -{ - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = ::sse_decode(deserializer); - return decode_rust_opaque_moi(inner); - } -} - -impl SseDecode - for RustOpaqueMoi> -{ - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = ::sse_decode(deserializer); - return decode_rust_opaque_moi(inner); - } -} - -impl SseDecode for RustOpaqueMoi> { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = ::sse_decode(deserializer); - return decode_rust_opaque_moi(inner); - } -} - -impl SseDecode for RustOpaqueMoi> { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = ::sse_decode(deserializer); - return decode_rust_opaque_moi(inner); - } -} - -impl SseDecode - for RustOpaqueMoi> -{ - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = ::sse_decode(deserializer); - return decode_rust_opaque_moi(inner); - } -} - -impl SseDecode - for RustOpaqueMoi> -{ - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = ::sse_decode(deserializer); - return decode_rust_opaque_moi(inner); - } -} - -impl SseDecode - for RustOpaqueMoi> -{ - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = ::sse_decode(deserializer); - return decode_rust_opaque_moi(inner); - } -} - -impl SseDecode for String { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = >::sse_decode(deserializer); - return String::from_utf8(inner).unwrap(); - } -} - -impl SseDecode for bool { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - deserializer.cursor.read_u8().unwrap() != 0 - } -} - -impl SseDecode for Vec { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut len_ = ::sse_decode(deserializer); - let mut ans_ = vec![]; - for idx_ in 0..len_ { - ans_.push(::sse_decode(deserializer)); - } - return ans_; - } -} - -impl SseDecode for Option { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - if (::sse_decode(deserializer)) { - return Some(::sse_decode(deserializer)); - } else { - return None; - } - } -} - -impl SseDecode for u16 { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - deserializer.cursor.read_u16::().unwrap() - } -} - -impl SseDecode for u8 { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - deserializer.cursor.read_u8().unwrap() - } -} - -impl SseDecode for () { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self {} -} - -impl SseDecode for usize { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - deserializer.cursor.read_u64::().unwrap() as _ - } -} - -impl SseDecode for i32 { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - deserializer.cursor.read_i32::().unwrap() - } -} - -fn pde_ffi_dispatcher_primary_impl( - func_id: i32, - port: flutter_rust_bridge::for_generated::MessagePort, - ptr: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len: i32, - data_len: i32, -) { - // Codec=Pde (Serialization + dispatch), see doc to use other codecs - match func_id { - 1 => wire__zoe_client__client__ClientBuilder_build_impl(port, ptr, rust_vec_len, data_len), - 2 => wire__zoe_client__client__ClientBuilder_client_secret_impl( - port, - ptr, - rust_vec_len, - data_len, - ), - 3 => { - wire__zoe_client__client__ClientBuilder_default_impl(port, ptr, rust_vec_len, data_len) - } - 4 => wire__zoe_client__client__ClientBuilder_media_storage_path_impl( - port, - ptr, - rust_vec_len, - data_len, - ), - 5 => wire__zoe_client__client__ClientBuilder_server_info_impl( - port, - ptr, - rust_vec_len, - data_len, - ), - 6 => wire__zoe_client__client__ClientSecret_as_hex_impl(port, ptr, rust_vec_len, data_len), - 7 => { - wire__zoe_client__client__ClientSecret_from_hex_impl(port, ptr, rust_vec_len, data_len) - } - 8 => wire__zoe_client__client__ClientSecret_new_impl(port, ptr, rust_vec_len, data_len), - 9 => wire__zoe_client__client__Client_builder_impl(port, ptr, rust_vec_len, data_len), - 10 => wire__zoe_client__client__Client_has_file_impl(port, ptr, rust_vec_len, data_len), - 11 => { - wire__zoe_client__client__Client_retrieve_file_impl(port, ptr, rust_vec_len, data_len) - } - 12 => wire__zoe_client__client__Client_retrieve_file_bytes_impl( - port, - ptr, - rust_vec_len, - data_len, - ), - 13 => wire__zoe_client__client__Client_store_data_impl(port, ptr, rust_vec_len, data_len), - 14 => wire__zoe_client__client__Client_store_file_impl(port, ptr, rust_vec_len, data_len), - 15 => wire__zoe_client__frb_api__create_signing_key_random_impl( - port, - ptr, - rust_vec_len, - data_len, - ), - 16 => wire__zoe_client__frb_api__create_socket_addr_impl(port, ptr, rust_vec_len, data_len), - 18 => wire__crate__api__simple__init_app_impl(port, ptr, rust_vec_len, data_len), - 19 => { - wire__zoe_client__frb_api__signing_key_from_hex_impl(port, ptr, rust_vec_len, data_len) - } - 20 => wire__zoe_client__frb_api__signing_key_to_verifying_key_impl( - port, - ptr, - rust_vec_len, - data_len, - ), - 21 => wire__zoe_client__frb_api__socket_addr_ip_impl(port, ptr, rust_vec_len, data_len), - 22 => wire__zoe_client__frb_api__socket_addr_port_impl(port, ptr, rust_vec_len, data_len), - 23 => { - wire__zoe_client__frb_api__socket_addr_to_string_impl(port, ptr, rust_vec_len, data_len) - } - 24 => wire__zoe_client__frb_api__verifying_key_from_hex_impl( - port, - ptr, - rust_vec_len, - data_len, - ), - _ => unreachable!(), - } -} - -fn pde_ffi_dispatcher_sync_impl( - func_id: i32, - ptr: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, - rust_vec_len: i32, - data_len: i32, -) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { - // Codec=Pde (Serialization + dispatch), see doc to use other codecs - match func_id { - 17 => wire__crate__api__simple__greet_impl(ptr, rust_vec_len, data_len), - _ => unreachable!(), - } -} - -// Section: rust2dart - -// Codec=Dco (DartCObject based), see doc to use other codecs -impl flutter_rust_bridge::IntoDart for FrbWrapper { - fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { - flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) - .into_dart() - } -} -impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} - -impl flutter_rust_bridge::IntoIntoDart> for Client { - fn into_into_dart(self) -> FrbWrapper { - self.into() - } -} - -// Codec=Dco (DartCObject based), see doc to use other codecs -impl flutter_rust_bridge::IntoDart for FrbWrapper { - fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { - flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) - .into_dart() - } -} -impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} - -impl flutter_rust_bridge::IntoIntoDart> for ClientBuilder { - fn into_into_dart(self) -> FrbWrapper { - self.into() - } -} - -// Codec=Dco (DartCObject based), see doc to use other codecs -impl flutter_rust_bridge::IntoDart for FrbWrapper { - fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { - flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) - .into_dart() - } -} -impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} - -impl flutter_rust_bridge::IntoIntoDart> for ClientSecret { - fn into_into_dart(self) -> FrbWrapper { - self.into() - } -} - -// Codec=Dco (DartCObject based), see doc to use other codecs -impl flutter_rust_bridge::IntoDart for FrbWrapper { - fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { - flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) - .into_dart() - } -} -impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} - -impl flutter_rust_bridge::IntoIntoDart> for FileRef { - fn into_into_dart(self) -> FrbWrapper { - self.into() - } -} - -// Codec=Dco (DartCObject based), see doc to use other codecs -impl flutter_rust_bridge::IntoDart for FrbWrapper { - fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { - flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) - .into_dart() - } -} -impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} - -impl flutter_rust_bridge::IntoIntoDart> for PathBuf { - fn into_into_dart(self) -> FrbWrapper { - self.into() - } -} - -// Codec=Dco (DartCObject based), see doc to use other codecs -impl flutter_rust_bridge::IntoDart for FrbWrapper { - fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { - flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) - .into_dart() - } -} -impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} - -impl flutter_rust_bridge::IntoIntoDart> for SigningKey { - fn into_into_dart(self) -> FrbWrapper { - self.into() - } -} - -// Codec=Dco (DartCObject based), see doc to use other codecs -impl flutter_rust_bridge::IntoDart for FrbWrapper { - fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { - flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) - .into_dart() - } -} -impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} - -impl flutter_rust_bridge::IntoIntoDart> for SocketAddr { - fn into_into_dart(self) -> FrbWrapper { - self.into() - } -} - -// Codec=Dco (DartCObject based), see doc to use other codecs -impl flutter_rust_bridge::IntoDart for FrbWrapper { - fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { - flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) - .into_dart() - } -} -impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} - -impl flutter_rust_bridge::IntoIntoDart> for VerifyingKey { - fn into_into_dart(self) -> FrbWrapper { - self.into() - } -} - -impl SseEncode for flutter_rust_bridge::for_generated::anyhow::Error { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - ::sse_encode(format!("{:?}", self), serializer); - } -} - -impl SseEncode for Client { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); - } -} - -impl SseEncode for ClientBuilder { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); - } -} - -impl SseEncode for ClientSecret { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); - } -} - -impl SseEncode for FileRef { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); - } -} - -impl SseEncode for PathBuf { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); - } -} - -impl SseEncode for SigningKey { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); - } -} - -impl SseEncode for SocketAddr { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); - } -} - -impl SseEncode for VerifyingKey { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); - } -} - -impl SseEncode for RustOpaqueMoi> { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - let (ptr, size) = self.sse_encode_raw(); - ::sse_encode(ptr, serializer); - ::sse_encode(size, serializer); - } -} - -impl SseEncode - for RustOpaqueMoi> -{ - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - let (ptr, size) = self.sse_encode_raw(); - ::sse_encode(ptr, serializer); - ::sse_encode(size, serializer); - } -} - -impl SseEncode - for RustOpaqueMoi> -{ - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - let (ptr, size) = self.sse_encode_raw(); - ::sse_encode(ptr, serializer); - ::sse_encode(size, serializer); - } -} - -impl SseEncode for RustOpaqueMoi> { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - let (ptr, size) = self.sse_encode_raw(); - ::sse_encode(ptr, serializer); - ::sse_encode(size, serializer); - } -} - -impl SseEncode for RustOpaqueMoi> { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - let (ptr, size) = self.sse_encode_raw(); - ::sse_encode(ptr, serializer); - ::sse_encode(size, serializer); - } -} - -impl SseEncode - for RustOpaqueMoi> -{ - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - let (ptr, size) = self.sse_encode_raw(); - ::sse_encode(ptr, serializer); - ::sse_encode(size, serializer); - } -} - -impl SseEncode - for RustOpaqueMoi> -{ - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - let (ptr, size) = self.sse_encode_raw(); - ::sse_encode(ptr, serializer); - ::sse_encode(size, serializer); - } -} - -impl SseEncode - for RustOpaqueMoi> -{ - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - let (ptr, size) = self.sse_encode_raw(); - ::sse_encode(ptr, serializer); - ::sse_encode(size, serializer); - } -} - -impl SseEncode for String { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - >::sse_encode(self.into_bytes(), serializer); - } -} - -impl SseEncode for bool { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - serializer.cursor.write_u8(self as _).unwrap(); - } -} - -impl SseEncode for Vec { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - ::sse_encode(self.len() as _, serializer); - for item in self { - ::sse_encode(item, serializer); - } - } -} - -impl SseEncode for Option { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - ::sse_encode(self.is_some(), serializer); - if let Some(value) = self { - ::sse_encode(value, serializer); - } - } -} - -impl SseEncode for u16 { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - serializer.cursor.write_u16::(self).unwrap(); - } -} - -impl SseEncode for u8 { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - serializer.cursor.write_u8(self).unwrap(); - } -} - -impl SseEncode for () { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) {} -} - -impl SseEncode for usize { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - serializer - .cursor - .write_u64::(self as _) - .unwrap(); - } -} - -impl SseEncode for i32 { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - serializer.cursor.write_i32::(self).unwrap(); - } -} - -#[cfg(not(target_family = "wasm"))] -mod io { - // This file is automatically generated, so please do not edit it. - // @generated by `flutter_rust_bridge`@ 2.11.1. - - // Section: imports - - use super::*; - use crate::*; - use flutter_rust_bridge::for_generated::byteorder::{ - NativeEndian, ReadBytesExt, WriteBytesExt, - }; - use flutter_rust_bridge::for_generated::{transform_result_dco, Lifetimeable, Lockable}; - use flutter_rust_bridge::{Handler, IntoIntoDart}; - use zoe_client::client::*; - - // Section: boilerplate - - flutter_rust_bridge::frb_generated_boilerplate_io!(); - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_zoe_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } -} -#[cfg(not(target_family = "wasm"))] -pub use io::*; - -/// cbindgen:ignore -#[cfg(target_family = "wasm")] -mod web { - // This file is automatically generated, so please do not edit it. - // @generated by `flutter_rust_bridge`@ 2.11.1. - - // Section: imports - - use super::*; - use crate::*; - use flutter_rust_bridge::for_generated::byteorder::{ - NativeEndian, ReadBytesExt, WriteBytesExt, - }; - use flutter_rust_bridge::for_generated::wasm_bindgen; - use flutter_rust_bridge::for_generated::wasm_bindgen::prelude::*; - use flutter_rust_bridge::for_generated::{transform_result_dco, Lifetimeable, Lockable}; - use flutter_rust_bridge::{Handler, IntoIntoDart}; - use zoe_client::client::*; - - // Section: boilerplate - - flutter_rust_bridge::frb_generated_boilerplate_web!(); - - #[wasm_bindgen] - pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClient( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientBuilder( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerClientSecret( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerFileRef( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPathBuf( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSigningKey( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerSocketAddr( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVerifyingKey( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } -} -#[cfg(target_family = "wasm")] -pub use web::*; diff --git a/rust/src/lib.rs b/rust/src/lib.rs deleted file mode 100644 index c51b2555..00000000 --- a/rust/src/lib.rs +++ /dev/null @@ -1,10 +0,0 @@ -pub mod api; -mod frb_generated; - -// Re-export all the types that FRB needs at the crate root -// This ensures they're available through `use crate::*;` in the generated code -pub use zoe_client::{FileRef, SigningKey, VerifyingKey}; -pub use std::net::SocketAddr; -pub use std::path::PathBuf; -// Note: Don't re-export Path as it's !Sized and FRB can't handle it -// Use PathBuf instead in function signatures diff --git a/rust_builder/README.md b/rust_builder/README.md deleted file mode 100644 index 922615f9..00000000 --- a/rust_builder/README.md +++ /dev/null @@ -1 +0,0 @@ -Please ignore this folder, which is just glue to build Rust with Flutter. \ No newline at end of file diff --git a/rust_builder/android/settings.gradle b/rust_builder/android/settings.gradle deleted file mode 100644 index df1a71d9..00000000 --- a/rust_builder/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'rust_lib_zoe' diff --git a/rust_builder/pubspec.yaml b/rust_builder/pubspec.yaml deleted file mode 100644 index 8aae6db5..00000000 --- a/rust_builder/pubspec.yaml +++ /dev/null @@ -1,34 +0,0 @@ -name: rust_lib_zoe -description: "Utility to build Rust code" -version: 0.0.1 -publish_to: none - -environment: - sdk: '>=3.3.0 <4.0.0' - flutter: '>=3.3.0' - -dependencies: - flutter: - sdk: flutter - plugin_platform_interface: ^2.0.2 - -dev_dependencies: - ffi: ^2.0.2 - ffigen: ^11.0.0 - flutter_test: - sdk: flutter - flutter_lints: ^2.0.0 - -flutter: - plugin: - platforms: - android: - ffiPlugin: true - ios: - ffiPlugin: true - linux: - ffiPlugin: true - macos: - ffiPlugin: true - windows: - ffiPlugin: true diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 2f1a9394..3726ce67 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -19,6 +20,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("EmojiPickerFlutterPluginCApi")); FileSelectorWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("FileSelectorWindows")); + FlutterSecureStorageWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); SharePlusWindowsPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi")); UrlLauncherWindowsRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index f5cfad84..d81cf08e 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -6,12 +6,13 @@ list(APPEND FLUTTER_PLUGIN_LIST audioplayers_windows emoji_picker_flutter file_selector_windows + flutter_secure_storage_windows share_plus url_launcher_windows ) list(APPEND FLUTTER_FFI_PLUGIN_LIST - rust_lib_zoe + zoe_native ) set(PLUGIN_BUNDLED_LIBRARIES)