diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 17190acea6..61865c20e7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -184,11 +184,14 @@ jobs: - frb_example--pure_dart_pde - frb_example--dart_build_rs - frb_example--deliberate_bad + - frb_example--integrate_third_party - frb_example--flutter_via_create - frb_example--flutter_via_integrate exclude: - { image: windows-2019, package: frb_example--deliberate_bad } - { image: macos-11, package: frb_example--deliberate_bad } + - { image: windows-2019, package: frb_example--integrate_third_party } + - { image: macos-11, package: frb_example--integrate_third_party } - { image: windows-2019, package: frb_example--flutter_via_integrate } - { image: macos-11, package: frb_example--flutter_via_integrate } @@ -871,6 +874,10 @@ jobs: - image: ubuntu-latest platform: linux package: frb_example--gallery + # only slightly test `integrate_third_party`, since the main point is not this + - image: ubuntu-latest + platform: linux + package: frb_example--integrate_third_party steps: # setup diff --git a/Cargo.toml b/Cargo.toml index 52bd56b171..07c6a8418b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,7 @@ exclude = [ "frb_example/gallery/rust", "frb_example/pure_dart/rust", "frb_example/pure_dart_pde/rust", + "frb_example/integrate_third_party/rust", ] resolver = "2" diff --git a/frb_example/integrate_third_party/.gitignore b/frb_example/integrate_third_party/.gitignore new file mode 100644 index 0000000000..29a3a5017f --- /dev/null +++ b/frb_example/integrate_third_party/.gitignore @@ -0,0 +1,43 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# 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 +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/frb_example/integrate_third_party/.metadata b/frb_example/integrate_third_party/.metadata new file mode 100644 index 0000000000..8ca14df433 --- /dev/null +++ b/frb_example/integrate_third_party/.metadata @@ -0,0 +1,45 @@ +# 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: "5dcb86f68f239346676ceb1ed1ea385bd215fba1" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + - platform: android + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + - platform: ios + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + - platform: linux + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + - platform: macos + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + - platform: web + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + - platform: windows + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + + # 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/frb_example/integrate_third_party/README.md b/frb_example/integrate_third_party/README.md new file mode 100644 index 0000000000..b98c35edd8 --- /dev/null +++ b/frb_example/integrate_third_party/README.md @@ -0,0 +1,3 @@ +# frb_example_integrate_third_party + +Demo and in-tree tests about automatically scanning third party Rust crates. diff --git a/frb_example/integrate_third_party/analysis_options.yaml b/frb_example/integrate_third_party/analysis_options.yaml new file mode 100644 index 0000000000..eabb6ff20b --- /dev/null +++ b/frb_example/integrate_third_party/analysis_options.yaml @@ -0,0 +1,7 @@ +analyzer: + exclude: + - rust/target/**.dart # contains dumped debug info, instead of normal code + +linter: + rules: + - unawaited_futures diff --git a/frb_example/integrate_third_party/android/.gitignore b/frb_example/integrate_third_party/android/.gitignore new file mode 100644 index 0000000000..6f568019d3 --- /dev/null +++ b/frb_example/integrate_third_party/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/frb_example/integrate_third_party/android/app/build.gradle b/frb_example/integrate_third_party/android/app/build.gradle new file mode 100644 index 0000000000..158f0ece9a --- /dev/null +++ b/frb_example/integrate_third_party/android/app/build.gradle @@ -0,0 +1,58 @@ +plugins { + id "com.android.application" + id "kotlin-android" + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id "dev.flutter.flutter-gradle-plugin" +} + +def localProperties = new Properties() +def localPropertiesFile = rootProject.file("local.properties") +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader("UTF-8") { reader -> + localProperties.load(reader) + } +} + +def flutterVersionCode = localProperties.getProperty("flutter.versionCode") +if (flutterVersionCode == null) { + flutterVersionCode = "1" +} + +def flutterVersionName = localProperties.getProperty("flutter.versionName") +if (flutterVersionName == null) { + flutterVersionName = "1.0" +} + +android { + namespace = "com.example.frb_example_integrate_third_party" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.frb_example_integrate_third_party" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutterVersionCode.toInteger() + versionName = flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.debug + } + } +} + +flutter { + source = "../.." +} diff --git a/frb_example/integrate_third_party/android/app/src/debug/AndroidManifest.xml b/frb_example/integrate_third_party/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000000..399f6981d5 --- /dev/null +++ b/frb_example/integrate_third_party/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/frb_example/integrate_third_party/android/app/src/main/AndroidManifest.xml b/frb_example/integrate_third_party/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..3ec9d9948a --- /dev/null +++ b/frb_example/integrate_third_party/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/frb_example/integrate_third_party/android/app/src/main/kotlin/com/example/frb_example_integrate_third_party/MainActivity.kt b/frb_example/integrate_third_party/android/app/src/main/kotlin/com/example/frb_example_integrate_third_party/MainActivity.kt new file mode 100644 index 0000000000..996786ec6f --- /dev/null +++ b/frb_example/integrate_third_party/android/app/src/main/kotlin/com/example/frb_example_integrate_third_party/MainActivity.kt @@ -0,0 +1,5 @@ +package com.example.frb_example_integrate_third_party + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() diff --git a/frb_example/integrate_third_party/android/app/src/main/res/drawable-v21/launch_background.xml b/frb_example/integrate_third_party/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000000..f74085f3f6 --- /dev/null +++ b/frb_example/integrate_third_party/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/frb_example/integrate_third_party/android/app/src/main/res/drawable/launch_background.xml b/frb_example/integrate_third_party/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000000..304732f884 --- /dev/null +++ b/frb_example/integrate_third_party/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/frb_example/integrate_third_party/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/frb_example/integrate_third_party/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000..db77bb4b7b Binary files /dev/null and b/frb_example/integrate_third_party/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/frb_example/integrate_third_party/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/frb_example/integrate_third_party/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000..17987b79bb Binary files /dev/null and b/frb_example/integrate_third_party/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/frb_example/integrate_third_party/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/frb_example/integrate_third_party/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000..09d4391482 Binary files /dev/null and b/frb_example/integrate_third_party/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/frb_example/integrate_third_party/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/frb_example/integrate_third_party/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000..d5f1c8d34e Binary files /dev/null and b/frb_example/integrate_third_party/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/frb_example/integrate_third_party/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/frb_example/integrate_third_party/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000..4d6372eebd Binary files /dev/null and b/frb_example/integrate_third_party/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/frb_example/integrate_third_party/android/app/src/main/res/values-night/styles.xml b/frb_example/integrate_third_party/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000000..06952be745 --- /dev/null +++ b/frb_example/integrate_third_party/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/frb_example/integrate_third_party/android/app/src/main/res/values/styles.xml b/frb_example/integrate_third_party/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000000..cb1ef88056 --- /dev/null +++ b/frb_example/integrate_third_party/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/frb_example/integrate_third_party/android/app/src/profile/AndroidManifest.xml b/frb_example/integrate_third_party/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000000..399f6981d5 --- /dev/null +++ b/frb_example/integrate_third_party/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/frb_example/integrate_third_party/android/build.gradle b/frb_example/integrate_third_party/android/build.gradle new file mode 100644 index 0000000000..d2ffbffa4c --- /dev/null +++ b/frb_example/integrate_third_party/android/build.gradle @@ -0,0 +1,18 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = "../build" +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/frb_example/integrate_third_party/android/gradle.properties b/frb_example/integrate_third_party/android/gradle.properties new file mode 100644 index 0000000000..3b5b324f6e --- /dev/null +++ b/frb_example/integrate_third_party/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true +android.enableJetifier=true diff --git a/frb_example/integrate_third_party/android/gradle/wrapper/gradle-wrapper.properties b/frb_example/integrate_third_party/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000..e1ca574ef0 --- /dev/null +++ b/frb_example/integrate_third_party/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip diff --git a/frb_example/integrate_third_party/android/settings.gradle b/frb_example/integrate_third_party/android/settings.gradle new file mode 100644 index 0000000000..536165d35a --- /dev/null +++ b/frb_example/integrate_third_party/android/settings.gradle @@ -0,0 +1,25 @@ +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + }() + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.3.0" apply false + id "org.jetbrains.kotlin.android" version "1.7.10" apply false +} + +include ":app" diff --git a/frb_example/integrate_third_party/flutter_rust_bridge.yaml b/frb_example/integrate_third_party/flutter_rust_bridge.yaml new file mode 100644 index 0000000000..0e284789b5 --- /dev/null +++ b/frb_example/integrate_third_party/flutter_rust_bridge.yaml @@ -0,0 +1,5 @@ +rust_root: rust/ +rust_input: crate::api,web-audio-api +dart_output: lib/src/rust +dump_all: true +local: true diff --git a/frb_example/integrate_third_party/integration_test/simple_test.dart b/frb_example/integrate_third_party/integration_test/simple_test.dart new file mode 100644 index 0000000000..133a147c7f --- /dev/null +++ b/frb_example/integrate_third_party/integration_test/simple_test.dart @@ -0,0 +1,38 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:frb_example_integrate_third_party/src/rust/frb_generated.dart'; +import 'package:integration_test/integration_test.dart'; + +void main() { + IntegrationTestWidgetsFlutterBinding.ensureInitialized(); + setUpAll(() async => await RustLib.init()); + + test('empty test', () {}); + + // TODO + // test('demo usage', () async { + // final context = AudioContext( + // options: const AudioContextOptions( + // latencyHint: AudioContextLatencyCategory.balanced(), + // sinkId: '', + // renderSizeHint: AudioContextRenderSizeCategory.Default, + // ), + // ); + // + // final buffer = + // await context.decodeAudioDataSync(inputPath: 'samples/major-scale.ogg'); + // + // final src = await context.createBufferSource(); + // src.setBuffer(buffer); + // src.setLoop(true); + // + // final biquad = context.createBiquadFilter(); + // biquad.frequencyValue = 125; + // + // await src.conect(biquad); + // await biquad.conect(await context.destination()); + // + // await src.start(); + // + // await Future.delayed(const Duration(seconds: 4)); + // }); +} diff --git a/frb_example/integrate_third_party/ios/.gitignore b/frb_example/integrate_third_party/ios/.gitignore new file mode 100644 index 0000000000..7a7f9873ad --- /dev/null +++ b/frb_example/integrate_third_party/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/frb_example/integrate_third_party/ios/Flutter/AppFrameworkInfo.plist b/frb_example/integrate_third_party/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000000..7c56964006 --- /dev/null +++ b/frb_example/integrate_third_party/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 12.0 + + diff --git a/frb_example/integrate_third_party/ios/Flutter/Debug.xcconfig b/frb_example/integrate_third_party/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000000..ec97fc6f30 --- /dev/null +++ b/frb_example/integrate_third_party/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/frb_example/integrate_third_party/ios/Flutter/Release.xcconfig b/frb_example/integrate_third_party/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000000..c4855bfe20 --- /dev/null +++ b/frb_example/integrate_third_party/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/frb_example/integrate_third_party/ios/Podfile b/frb_example/integrate_third_party/ios/Podfile new file mode 100644 index 0000000000..d97f17e223 --- /dev/null +++ b/frb_example/integrate_third_party/ios/Podfile @@ -0,0 +1,44 @@ +# Uncomment this line to define a global platform for your project +# platform :ios, '12.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + end +end diff --git a/frb_example/integrate_third_party/ios/Runner.xcodeproj/project.pbxproj b/frb_example/integrate_third_party/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..2a74ace8f5 --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,616 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.frbExampleIntegrateThirdParty; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.frbExampleIntegrateThirdParty.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.frbExampleIntegrateThirdParty.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.frbExampleIntegrateThirdParty.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.frbExampleIntegrateThirdParty; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.frbExampleIntegrateThirdParty; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/frb_example/integrate_third_party/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/frb_example/integrate_third_party/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..919434a625 --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/frb_example/integrate_third_party/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/frb_example/integrate_third_party/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000000..18d981003d --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/frb_example/integrate_third_party/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/frb_example/integrate_third_party/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000000..f9b0d7c5ea --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/frb_example/integrate_third_party/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/frb_example/integrate_third_party/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000000..8e3ca5dfe1 --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frb_example/integrate_third_party/ios/Runner.xcworkspace/contents.xcworkspacedata b/frb_example/integrate_third_party/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..1d526a16ed --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/frb_example/integrate_third_party/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/frb_example/integrate_third_party/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000000..18d981003d --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/frb_example/integrate_third_party/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/frb_example/integrate_third_party/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000000..f9b0d7c5ea --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/frb_example/integrate_third_party/ios/Runner/AppDelegate.swift b/frb_example/integrate_third_party/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000000..9074fee929 --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Flutter +import UIKit + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..d36b1fab2d --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000..dc9ada4725 Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000000..7353c41ecf Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000000..797d452e45 Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000..6ed2d933e1 Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000000..4cd7b0099c Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000..fe730945a0 Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000000..321773cd85 Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 0000000000..797d452e45 Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000..502f463a9b Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000..0ec3034392 Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000..0ec3034392 Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000..e9f5fea27c Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000..84ac32ae7d Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 0000000000..8953cba090 Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000000..0467bf12aa Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000000..0bedcf2fd4 --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000000..9da19eacad Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000..9da19eacad Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000..9da19eacad Binary files /dev/null and b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000000..89c2725b70 --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/frb_example/integrate_third_party/ios/Runner/Base.lproj/LaunchScreen.storyboard b/frb_example/integrate_third_party/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000000..f2e259c7c9 --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frb_example/integrate_third_party/ios/Runner/Base.lproj/Main.storyboard b/frb_example/integrate_third_party/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000000..f3c28516fb --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frb_example/integrate_third_party/ios/Runner/Info.plist b/frb_example/integrate_third_party/ios/Runner/Info.plist new file mode 100644 index 0000000000..0e3ca8fcbe --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Frb Example Integrate Third Party + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + frb_example_integrate_third_party + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/frb_example/integrate_third_party/ios/Runner/Runner-Bridging-Header.h b/frb_example/integrate_third_party/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000000..308a2a560b --- /dev/null +++ b/frb_example/integrate_third_party/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/frb_example/integrate_third_party/ios/RunnerTests/RunnerTests.swift b/frb_example/integrate_third_party/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000000..86a7c3b1b6 --- /dev/null +++ b/frb_example/integrate_third_party/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/frb_example/integrate_third_party/lib/main.dart b/frb_example/integrate_third_party/lib/main.dart new file mode 100644 index 0000000000..357ece0e1a --- /dev/null +++ b/frb_example/integrate_third_party/lib/main.dart @@ -0,0 +1 @@ +Future main() async {} diff --git a/frb_example/integrate_third_party/lib/src/rust/api/override_web_audio_api.dart b/frb_example/integrate_third_party/lib/src/rust/api/override_web_audio_api.dart new file mode 100644 index 0000000000..888c8a4fa0 --- /dev/null +++ b/frb_example/integrate_third_party/lib/src/rust/api/override_web_audio_api.dart @@ -0,0 +1,9 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../frb_generated.dart'; +import '../third_party/web_audio_api.dart'; +import '../third_party/web_audio_api/context.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; diff --git a/frb_example/integrate_third_party/lib/src/rust/api/simple.dart b/frb_example/integrate_third_party/lib/src/rust/api/simple.dart new file mode 100644 index 0000000000..a38422e8bb --- /dev/null +++ b/frb_example/integrate_third_party/lib/src/rust/api/simple.dart @@ -0,0 +1,31 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +// 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'; + +Future f({required DummyStruct a}) => + RustLib.instance.api.crateApiSimpleF(a: a); + +// Rust type: RustOpaqueMoi> +@sealed +class DummyStruct extends RustOpaque { + // Not to be used by end users + DummyStruct.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + DummyStruct.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_DummyStruct, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_DummyStruct, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_DummyStructPtr, + ); +} diff --git a/frb_example/integrate_third_party/lib/src/rust/frb_generated.dart b/frb_example/integrate_third_party/lib/src/rust/frb_generated.dart new file mode 100644 index 0000000000..fb5edd418e --- /dev/null +++ b/frb_example/integrate_third_party/lib/src/rust/frb_generated.dart @@ -0,0 +1,9854 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +// 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/override_web_audio_api.dart'; +import 'api/simple.dart'; +import 'dart:async'; +import 'dart:convert'; +import 'frb_generated.io.dart' if (dart.library.html) 'frb_generated.web.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; +import 'third_party/web_audio_api.dart'; +import 'third_party/web_audio_api/context.dart'; +import 'third_party/web_audio_api/media_devices.dart'; +import 'third_party/web_audio_api/media_recorder.dart'; +import 'third_party/web_audio_api/media_streams.dart'; +import 'third_party/web_audio_api/node.dart'; +import 'third_party/web_audio_api/worklet.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, + }) async { + await instance.initImpl( + api: api, + handler: handler, + externalLibrary: externalLibrary, + ); + } + + /// 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.0.0-dev.37'; + + @override + int get rustContentHash => -597242817; + + static const kDefaultExternalLibraryLoaderConfig = + ExternalLibraryLoaderConfig( + stem: 'rust_lib_frb_example_integrate_third_party', + ioDirectory: 'rust/target/release/', + webPrefix: 'pkg/', + ); +} + +abstract class RustLibApi extends BaseApi { + Future + crateApiOverrideWebAudioApiAudioContextFrbOverrideDecodeAudioDataSync( + {required AudioContext that, required String inputPath}); + + Future + crateApiOverrideWebAudioApiAudioContextFrbOverrideOutputLatency( + {required AudioContext that}); + + Future crateApiSimpleF({required DummyStruct a}); + + Future crateApiSimpleInitApp(); + + Future webAudioApiAudioBufferDuration({required AudioBuffer that}); + + Future webAudioApiAudioBufferFrom( + {required List samples, required double sampleRate}); + + Future webAudioApiAudioBufferGetChannelData( + {required AudioBuffer that, required BigInt channelNumber}); + + Future webAudioApiAudioBufferGetChannelDataMut( + {required AudioBuffer that, required BigInt channelNumber}); + + Future webAudioApiAudioBufferLength({required AudioBuffer that}); + + Future webAudioApiAudioBufferNew( + {required AudioBufferOptions options}); + + Future webAudioApiAudioBufferNumberOfChannels( + {required AudioBuffer that}); + + Future webAudioApiAudioBufferSampleRate({required AudioBuffer that}); + + Future webAudioApiAudioParamAutomationRate( + {required AudioParam that}); + + Future webAudioApiAudioParamCancelAndHoldAtTime( + {required AudioParam that, required double cancelTime}); + + Future webAudioApiAudioParamCancelScheduledValues( + {required AudioParam that, required double cancelTime}); + + Future webAudioApiAudioParamDefaultValue({required AudioParam that}); + + Future webAudioApiAudioParamExponentialRampToValueAtTime( + {required AudioParam that, + required double value, + required double endTime}); + + Future webAudioApiAudioParamLinearRampToValueAtTime( + {required AudioParam that, + required double value, + required double endTime}); + + Future webAudioApiAudioParamMaxValue({required AudioParam that}); + + Future webAudioApiAudioParamMinValue({required AudioParam that}); + + Future webAudioApiAudioParamSetAutomationRate( + {required AudioParam that, required AutomationRate value}); + + Future webAudioApiAudioParamSetTargetAtTime( + {required AudioParam that, + required double value, + required double startTime, + required double timeConstant}); + + Future webAudioApiAudioParamSetValue( + {required AudioParam that, required double value}); + + Future webAudioApiAudioParamSetValueAtTime( + {required AudioParam that, + required double value, + required double startTime}); + + Future webAudioApiAudioParamSetValueCurveAtTime( + {required AudioParam that, + required List values, + required double startTime, + required double duration}); + + Future webAudioApiAudioParamValue({required AudioParam that}); + + AudioBuffer webAudioApiAudioProcessingEventGetInputBuffer( + {required AudioProcessingEvent that}); + + AudioBuffer webAudioApiAudioProcessingEventGetOutputBuffer( + {required AudioProcessingEvent that}); + + double webAudioApiAudioProcessingEventGetPlaybackTime( + {required AudioProcessingEvent that}); + + void webAudioApiAudioProcessingEventSetInputBuffer( + {required AudioProcessingEvent that, required AudioBuffer inputBuffer}); + + void webAudioApiAudioProcessingEventSetOutputBuffer( + {required AudioProcessingEvent that, required AudioBuffer outputBuffer}); + + void webAudioApiAudioProcessingEventSetPlaybackTime( + {required AudioProcessingEvent that, required double playbackTime}); + + double webAudioApiAudioRenderCapacityEventGetAverageLoad( + {required AudioRenderCapacityEvent that}); + + Event webAudioApiAudioRenderCapacityEventGetEvent( + {required AudioRenderCapacityEvent that}); + + double webAudioApiAudioRenderCapacityEventGetPeakLoad( + {required AudioRenderCapacityEvent that}); + + double webAudioApiAudioRenderCapacityEventGetTimestamp( + {required AudioRenderCapacityEvent that}); + + double webAudioApiAudioRenderCapacityEventGetUnderrunRatio( + {required AudioRenderCapacityEvent that}); + + void webAudioApiAudioRenderCapacityEventSetAverageLoad( + {required AudioRenderCapacityEvent that, required double averageLoad}); + + void webAudioApiAudioRenderCapacityEventSetEvent( + {required AudioRenderCapacityEvent that, required Event event}); + + void webAudioApiAudioRenderCapacityEventSetPeakLoad( + {required AudioRenderCapacityEvent that, required double peakLoad}); + + void webAudioApiAudioRenderCapacityEventSetTimestamp( + {required AudioRenderCapacityEvent that, required double timestamp}); + + void webAudioApiAudioRenderCapacityEventSetUnderrunRatio( + {required AudioRenderCapacityEvent that, required double underrunRatio}); + + Future webAudioApiAudioRenderCapacityClearOnupdate( + {required AudioRenderCapacity that}); + + Future webAudioApiAudioRenderCapacityStart( + {required AudioRenderCapacity that, + required AudioRenderCapacityOptions options}); + + Future webAudioApiAudioRenderCapacityStop( + {required AudioRenderCapacity that}); + + Event webAudioApiOfflineAudioCompletionEventGetEvent( + {required OfflineAudioCompletionEvent that}); + + AudioBuffer webAudioApiOfflineAudioCompletionEventGetRenderedBuffer( + {required OfflineAudioCompletionEvent that}); + + void webAudioApiOfflineAudioCompletionEventSetEvent( + {required OfflineAudioCompletionEvent that, required Event event}); + + void webAudioApiOfflineAudioCompletionEventSetRenderedBuffer( + {required OfflineAudioCompletionEvent that, + required AudioBuffer renderedBuffer}); + + Future webAudioApiContextAudioContextBaseLatency( + {required AudioContext that}); + + Future webAudioApiContextAudioContextClearOnsinkchange( + {required AudioContext that}); + + Future webAudioApiContextAudioContextClose( + {required AudioContext that}); + + Future webAudioApiContextAudioContextCloseSync( + {required AudioContext that}); + + Future + webAudioApiContextAudioContextCreateMediaStreamDestination( + {required AudioContext that}); + + Future + webAudioApiContextAudioContextCreateMediaStreamSource( + {required AudioContext that, required MediaStream media}); + + Future + webAudioApiContextAudioContextCreateMediaStreamTrackSource( + {required AudioContext that, required MediaStreamTrack media}); + + AudioContext webAudioApiContextAudioContextNew( + {required AudioContextOptions options}); + + Future webAudioApiContextAudioContextOutputLatency( + {required AudioContext that}); + + Future webAudioApiContextAudioContextRenderCapacity( + {required AudioContext that}); + + Future webAudioApiContextAudioContextResumeSync( + {required AudioContext that}); + + Future webAudioApiContextAudioContextSinkId( + {required AudioContext that}); + + Future webAudioApiContextAudioContextSuspend( + {required AudioContext that}); + + Future webAudioApiContextAudioContextSuspendSync( + {required AudioContext that}); + + Future webAudioApiContextConcreteBaseAudioContextMarkCycleBreaker( + {required ConcreteBaseAudioContext that, + required AudioContextRegistration reg}); + + Future webAudioApiContextOfflineAudioContextClearOncomplete( + {required OfflineAudioContext that}); + + Future webAudioApiContextOfflineAudioContextLength( + {required OfflineAudioContext that}); + + Future webAudioApiContextOfflineAudioContextNew( + {required BigInt numberOfChannels, + required BigInt length, + required double sampleRate}); + + Future webAudioApiContextOfflineAudioContextResume( + {required OfflineAudioContext that}); + + Future webAudioApiContextOfflineAudioContextStartRendering( + {required OfflineAudioContext that}); + + Future webAudioApiContextOfflineAudioContextStartRenderingSync( + {required OfflineAudioContext that}); + + Future webAudioApiContextOfflineAudioContextSuspend( + {required OfflineAudioContext that, required double suspendTime}); + + Future webAudioApiMediaDevicesGetUserMediaSync( + {required MediaStreamConstraints constraints}); + + Uint8List webAudioApiMediaRecorderBlobEventGetBlob({required BlobEvent that}); + + Event webAudioApiMediaRecorderBlobEventGetEvent({required BlobEvent that}); + + double webAudioApiMediaRecorderBlobEventGetTimecode( + {required BlobEvent that}); + + void webAudioApiMediaRecorderBlobEventSetBlob( + {required BlobEvent that, required Uint8List blob}); + + void webAudioApiMediaRecorderBlobEventSetEvent( + {required BlobEvent that, required Event event}); + + void webAudioApiMediaRecorderBlobEventSetTimecode( + {required BlobEvent that, required double timecode}); + + Future webAudioApiMediaRecorderMediaRecorderClearOndataavailable( + {required MediaRecorder that}); + + Future webAudioApiMediaRecorderMediaRecorderClearOnerror( + {required MediaRecorder that}); + + Future webAudioApiMediaRecorderMediaRecorderClearOnstop( + {required MediaRecorder that}); + + Future webAudioApiMediaRecorderMediaRecorderNew( + {required MediaStream stream}); + + Future webAudioApiMediaRecorderMediaRecorderStart( + {required MediaRecorder that}); + + Future webAudioApiMediaRecorderMediaRecorderStop( + {required MediaRecorder that}); + + Future webAudioApiMediaStreamsMediaStreamTrackClose( + {required MediaStreamTrack that}); + + Future + webAudioApiMediaStreamsMediaStreamTrackReadyState( + {required MediaStreamTrack that}); + + Future webAudioApiMediaStreamsMediaStreamFromTracks( + {required List tracks}); + + Future webAudioApiMediaStreamsMediaStreamGetTracks( + {required MediaStream that}); + + Future webAudioApiNodeAnalyserNodeFftSize( + {required AnalyserNode that}); + + Future webAudioApiNodeAnalyserNodeFrequencyBinCount( + {required AnalyserNode that}); + + Future webAudioApiNodeAnalyserNodeMaxDecibels( + {required AnalyserNode that}); + + Future webAudioApiNodeAnalyserNodeMinDecibels( + {required AnalyserNode that}); + + Future webAudioApiNodeAnalyserNodeSetFftSize( + {required AnalyserNode that, required BigInt fftSize}); + + Future webAudioApiNodeAnalyserNodeSetMaxDecibels( + {required AnalyserNode that, required double value}); + + Future webAudioApiNodeAnalyserNodeSetMinDecibels( + {required AnalyserNode that, required double value}); + + Future webAudioApiNodeAnalyserNodeSetSmoothingTimeConstant( + {required AnalyserNode that, required double value}); + + Future webAudioApiNodeAnalyserNodeSmoothingTimeConstant( + {required AnalyserNode that}); + + Future webAudioApiNodeAudioBufferSourceNodeDetune( + {required AudioBufferSourceNode that}); + + Future webAudioApiNodeAudioBufferSourceNodeLoop( + {required AudioBufferSourceNode that}); + + Future webAudioApiNodeAudioBufferSourceNodeLoopEnd( + {required AudioBufferSourceNode that}); + + Future webAudioApiNodeAudioBufferSourceNodeLoopStart( + {required AudioBufferSourceNode that}); + + Future webAudioApiNodeAudioBufferSourceNodePlaybackRate( + {required AudioBufferSourceNode that}); + + Future webAudioApiNodeAudioBufferSourceNodePosition( + {required AudioBufferSourceNode that}); + + Future webAudioApiNodeAudioBufferSourceNodeSetBuffer( + {required AudioBufferSourceNode that, required AudioBuffer audioBuffer}); + + Future webAudioApiNodeAudioBufferSourceNodeSetLoop( + {required AudioBufferSourceNode that, required bool value}); + + Future webAudioApiNodeAudioBufferSourceNodeSetLoopEnd( + {required AudioBufferSourceNode that, required double value}); + + Future webAudioApiNodeAudioBufferSourceNodeSetLoopStart( + {required AudioBufferSourceNode that, required double value}); + + Future webAudioApiNodeAudioBufferSourceNodeStartAtWithOffset( + {required AudioBufferSourceNode that, + required double start, + required double offset}); + + Future webAudioApiNodeAudioBufferSourceNodeStartAtWithOffsetAndDuration( + {required AudioBufferSourceNode that, + required double start, + required double offset, + required double duration}); + + Future webAudioApiNodeAudioDestinationNodeMaxChannelCount( + {required AudioDestinationNode that}); + + Future webAudioApiNodeBiquadFilterNodeDetune( + {required BiquadFilterNode that}); + + Future webAudioApiNodeBiquadFilterNodeFrequency( + {required BiquadFilterNode that}); + + Future webAudioApiNodeBiquadFilterNodeGain( + {required BiquadFilterNode that}); + + Future webAudioApiNodeBiquadFilterNodeQ( + {required BiquadFilterNode that}); + + Future webAudioApiNodeBiquadFilterNodeSetType( + {required BiquadFilterNode that, required BiquadFilterType type}); + + Future webAudioApiNodeBiquadFilterNodeType( + {required BiquadFilterNode that}); + + Future webAudioApiNodeConstantSourceNodeOffset( + {required ConstantSourceNode that}); + + Future webAudioApiNodeConvolverNodeNormalize( + {required ConvolverNode that}); + + Future webAudioApiNodeConvolverNodeSetBuffer( + {required ConvolverNode that, required AudioBuffer buffer}); + + Future webAudioApiNodeConvolverNodeSetNormalize( + {required ConvolverNode that, required bool value}); + + Future webAudioApiNodeDelayNodeDelayTime({required DelayNode that}); + + Future webAudioApiNodeDynamicsCompressorNodeAttack( + {required DynamicsCompressorNode that}); + + Future webAudioApiNodeDynamicsCompressorNodeKnee( + {required DynamicsCompressorNode that}); + + Future webAudioApiNodeDynamicsCompressorNodeRatio( + {required DynamicsCompressorNode that}); + + Future webAudioApiNodeDynamicsCompressorNodeReduction( + {required DynamicsCompressorNode that}); + + Future webAudioApiNodeDynamicsCompressorNodeRelease( + {required DynamicsCompressorNode that}); + + Future webAudioApiNodeDynamicsCompressorNodeThreshold( + {required DynamicsCompressorNode that}); + + Future webAudioApiNodeGainNodeGain({required GainNode that}); + + Future webAudioApiNodeMediaStreamAudioDestinationNodeStream( + {required MediaStreamAudioDestinationNode that}); + + Future webAudioApiNodeOscillatorNodeDetune( + {required OscillatorNode that}); + + Future webAudioApiNodeOscillatorNodeFrequency( + {required OscillatorNode that}); + + Future webAudioApiNodeOscillatorNodeSetPeriodicWave( + {required OscillatorNode that, required PeriodicWave periodicWave}); + + Future webAudioApiNodeOscillatorNodeSetType( + {required OscillatorNode that, required OscillatorType type}); + + Future webAudioApiNodeOscillatorNodeType( + {required OscillatorNode that}); + + Future webAudioApiNodePannerNodeConeInnerAngle( + {required PannerNode that}); + + Future webAudioApiNodePannerNodeConeOuterAngle( + {required PannerNode that}); + + Future webAudioApiNodePannerNodeConeOuterGain( + {required PannerNode that}); + + Future webAudioApiNodePannerNodeDistanceModel( + {required PannerNode that}); + + Future webAudioApiNodePannerNodeMaxDistance( + {required PannerNode that}); + + Future webAudioApiNodePannerNodeOrientationX( + {required PannerNode that}); + + Future webAudioApiNodePannerNodeOrientationY( + {required PannerNode that}); + + Future webAudioApiNodePannerNodeOrientationZ( + {required PannerNode that}); + + Future webAudioApiNodePannerNodePanningModel( + {required PannerNode that}); + + Future webAudioApiNodePannerNodePositionX({required PannerNode that}); + + Future webAudioApiNodePannerNodePositionY({required PannerNode that}); + + Future webAudioApiNodePannerNodePositionZ({required PannerNode that}); + + Future webAudioApiNodePannerNodeRefDistance( + {required PannerNode that}); + + Future webAudioApiNodePannerNodeRolloffFactor( + {required PannerNode that}); + + Future webAudioApiNodePannerNodeSetConeInnerAngle( + {required PannerNode that, required double value}); + + Future webAudioApiNodePannerNodeSetConeOuterAngle( + {required PannerNode that, required double value}); + + Future webAudioApiNodePannerNodeSetConeOuterGain( + {required PannerNode that, required double value}); + + Future webAudioApiNodePannerNodeSetDistanceModel( + {required PannerNode that, required DistanceModelType value}); + + Future webAudioApiNodePannerNodeSetMaxDistance( + {required PannerNode that, required double value}); + + Future webAudioApiNodePannerNodeSetOrientation( + {required PannerNode that, + required double x, + required double y, + required double z}); + + Future webAudioApiNodePannerNodeSetPanningModel( + {required PannerNode that, required PanningModelType value}); + + Future webAudioApiNodePannerNodeSetPosition( + {required PannerNode that, + required double x, + required double y, + required double z}); + + Future webAudioApiNodePannerNodeSetRefDistance( + {required PannerNode that, required double value}); + + Future webAudioApiNodePannerNodeSetRolloffFactor( + {required PannerNode that, required double value}); + + Future webAudioApiNodeScriptProcessorNodeBufferSize( + {required ScriptProcessorNode that}); + + Future webAudioApiNodeScriptProcessorNodeClearOnaudioprocess( + {required ScriptProcessorNode that}); + + Future webAudioApiNodeStereoPannerNodePan( + {required StereoPannerNode that}); + + Future webAudioApiNodeWaveShaperNodeOversample( + {required WaveShaperNode that}); + + Future webAudioApiNodeWaveShaperNodeSetCurve( + {required WaveShaperNode that, required List curve}); + + Future webAudioApiNodeWaveShaperNodeSetOversample( + {required WaveShaperNode that, required OverSampleType oversample}); + + Future webAudioApiWorkletAudioWorkletNodeChannelConfig( + {required AudioWorkletNode that}); + + Future webAudioApiWorkletAudioWorkletNodeChannelCount( + {required AudioWorkletNode that}); + + Future webAudioApiWorkletAudioWorkletNodeChannelCountMode( + {required AudioWorkletNode that}); + + Future + webAudioApiWorkletAudioWorkletNodeChannelInterpretation( + {required AudioWorkletNode that}); + + Future webAudioApiWorkletAudioWorkletNodeClearOnprocessorerror( + {required AudioWorkletNode that}); + + Future webAudioApiWorkletAudioWorkletNodeContext( + {required AudioWorkletNode that}); + + Future webAudioApiWorkletAudioWorkletNodeDisconnect( + {required AudioWorkletNode that}); + + Future webAudioApiWorkletAudioWorkletNodeDisconnectOutput( + {required AudioWorkletNode that, required BigInt output}); + + Future webAudioApiWorkletAudioWorkletNodeNumberOfInputs( + {required AudioWorkletNode that}); + + Future webAudioApiWorkletAudioWorkletNodeNumberOfOutputs( + {required AudioWorkletNode that}); + + Future webAudioApiWorkletAudioWorkletNodeParameters( + {required AudioWorkletNode that}); + + Future webAudioApiWorkletAudioWorkletNodeRegistration( + {required AudioWorkletNode that}); + + Future webAudioApiWorkletAudioWorkletNodeSetChannelCount( + {required AudioWorkletNode that, required BigInt v}); + + Future webAudioApiWorkletAudioWorkletNodeSetChannelCountMode( + {required AudioWorkletNode that, required ChannelCountMode v}); + + Future webAudioApiWorkletAudioWorkletNodeSetChannelInterpretation( + {required AudioWorkletNode that, required ChannelInterpretation v}); + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AnalyserNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AnalyserNode; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_AnalyserNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioBuffer; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioBuffer; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_AudioBufferPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioBufferSourceNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioBufferSourceNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioBufferSourceNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioContext; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioContext; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_AudioContextPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioContextRegistration; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioContextRegistration; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioContextRegistrationPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioDestinationNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioDestinationNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioDestinationNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioParam; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioParam; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_AudioParamPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioProcessingEvent; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioProcessingEvent; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioProcessingEventPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioRenderCapacity; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioRenderCapacity; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioRenderCapacityPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioRenderCapacityEvent; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioRenderCapacityEvent; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioRenderCapacityEventPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioWorkletNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioWorkletNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioWorkletNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_BiquadFilterNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_BiquadFilterNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_BiquadFilterNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_BlobEvent; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_BlobEvent; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_BlobEventPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_ConcreteBaseAudioContext; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_ConcreteBaseAudioContext; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ConcreteBaseAudioContextPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_ConstantSourceNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_ConstantSourceNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ConstantSourceNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_ConvolverNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_ConvolverNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ConvolverNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_DelayNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_DelayNode; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_DelayNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_DummyStruct; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_DummyStruct; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_DummyStructPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_DynamicsCompressorNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_DynamicsCompressorNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_DynamicsCompressorNodePtr; + + RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_Event; + + RustArcDecrementStrongCountFnType get rust_arc_decrement_strong_count_Event; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_EventPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_GainNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_GainNode; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_GainNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_MediaRecorder; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_MediaRecorder; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaRecorderPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_MediaStream; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_MediaStream; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_MediaStreamPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_MediaStreamAudioDestinationNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_MediaStreamAudioDestinationNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamAudioDestinationNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_MediaStreamAudioSourceNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_MediaStreamAudioSourceNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamAudioSourceNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_MediaStreamConstraints; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_MediaStreamConstraints; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamConstraintsPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_MediaStreamTrack; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_MediaStreamTrack; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamTrackPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_MediaStreamTrackAudioSourceNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_MediaStreamTrackAudioSourceNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamTrackAudioSourceNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_OfflineAudioCompletionEvent; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_OfflineAudioCompletionEvent; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_OfflineAudioCompletionEventPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_OfflineAudioContext; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_OfflineAudioContext; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_OfflineAudioContextPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_OscillatorNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_OscillatorNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_OscillatorNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_PannerNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_PannerNode; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_PannerNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_PeriodicWave; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_PeriodicWave; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_PeriodicWavePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_ScriptProcessorNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_ScriptProcessorNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ScriptProcessorNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_StereoPannerNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_StereoPannerNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_StereoPannerNodePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_WaveShaperNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_WaveShaperNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_WaveShaperNodePtr; +} + +class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { + RustLibApiImpl({ + required super.handler, + required super.wire, + required super.generalizedFrbRustBinding, + required super.portManager, + }); + + @override + Future + crateApiOverrideWebAudioApiAudioContextFrbOverrideDecodeAudioDataSync( + {required AudioContext that, required String inputPath}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + sse_encode_String(inputPath, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 1, port: port_); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer, + decodeErrorData: sse_decode_AnyhowException, + ), + constMeta: + kCrateApiOverrideWebAudioApiAudioContextFrbOverrideDecodeAudioDataSyncConstMeta, + argValues: [that, inputPath], + apiImpl: this, + )); + } + + TaskConstMeta + get kCrateApiOverrideWebAudioApiAudioContextFrbOverrideDecodeAudioDataSyncConstMeta => + const TaskConstMeta( + debugName: "AudioContext_frb_override_decode_audio_data_sync", + argNames: ["that", "inputPath"], + ); + + @override + Future + crateApiOverrideWebAudioApiAudioContextFrbOverrideOutputLatency( + {required AudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 2, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_String, + decodeErrorData: null, + ), + constMeta: + kCrateApiOverrideWebAudioApiAudioContextFrbOverrideOutputLatencyConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kCrateApiOverrideWebAudioApiAudioContextFrbOverrideOutputLatencyConstMeta => + const TaskConstMeta( + debugName: "AudioContext_frb_override_output_latency", + argNames: ["that"], + ); + + @override + Future crateApiSimpleF({required DummyStruct a}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + a, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 3, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kCrateApiSimpleFConstMeta, + argValues: [a], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiSimpleFConstMeta => const TaskConstMeta( + debugName: "f", + argNames: ["a"], + ); + + @override + Future crateApiSimpleInitApp() { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 4, 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 webAudioApiAudioBufferDuration({required AudioBuffer that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 5, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioBufferDurationConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioBufferDurationConstMeta => + const TaskConstMeta( + debugName: "AudioBuffer_duration", + argNames: ["that"], + ); + + @override + Future webAudioApiAudioBufferFrom( + {required List samples, required double sampleRate}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_list_list_prim_f_32_strict(samples, serializer); + sse_encode_f_32(sampleRate, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 6, port: port_); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioBufferFromConstMeta, + argValues: [samples, sampleRate], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioBufferFromConstMeta => const TaskConstMeta( + debugName: "AudioBuffer_from", + argNames: ["samples", "sampleRate"], + ); + + @override + Future webAudioApiAudioBufferGetChannelData( + {required AudioBuffer that, required BigInt channelNumber}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + that, serializer); + sse_encode_usize(channelNumber, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 7, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioBufferGetChannelDataConstMeta, + argValues: [that, channelNumber], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioBufferGetChannelDataConstMeta => + const TaskConstMeta( + debugName: "AudioBuffer_get_channel_data", + argNames: ["that", "channelNumber"], + ); + + @override + Future webAudioApiAudioBufferGetChannelDataMut( + {required AudioBuffer that, required BigInt channelNumber}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + that, serializer); + sse_encode_usize(channelNumber, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 8, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioBufferGetChannelDataMutConstMeta, + argValues: [that, channelNumber], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioBufferGetChannelDataMutConstMeta => + const TaskConstMeta( + debugName: "AudioBuffer_get_channel_data_mut", + argNames: ["that", "channelNumber"], + ); + + @override + Future webAudioApiAudioBufferLength({required AudioBuffer that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 9, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_usize, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioBufferLengthConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioBufferLengthConstMeta => + const TaskConstMeta( + debugName: "AudioBuffer_length", + argNames: ["that"], + ); + + @override + Future webAudioApiAudioBufferNew( + {required AudioBufferOptions options}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_box_autoadd_audio_buffer_options(options, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 10, port: port_); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioBufferNewConstMeta, + argValues: [options], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioBufferNewConstMeta => const TaskConstMeta( + debugName: "AudioBuffer_new", + argNames: ["options"], + ); + + @override + Future webAudioApiAudioBufferNumberOfChannels( + {required AudioBuffer that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 11, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_usize, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioBufferNumberOfChannelsConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioBufferNumberOfChannelsConstMeta => + const TaskConstMeta( + debugName: "AudioBuffer_number_of_channels", + argNames: ["that"], + ); + + @override + Future webAudioApiAudioBufferSampleRate({required AudioBuffer that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 12, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_32, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioBufferSampleRateConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioBufferSampleRateConstMeta => + const TaskConstMeta( + debugName: "AudioBuffer_sample_rate", + argNames: ["that"], + ); + + @override + Future webAudioApiAudioParamAutomationRate( + {required AudioParam that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 13, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_automation_rate, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioParamAutomationRateConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioParamAutomationRateConstMeta => + const TaskConstMeta( + debugName: "AudioParam_automation_rate", + argNames: ["that"], + ); + + @override + Future webAudioApiAudioParamCancelAndHoldAtTime( + {required AudioParam that, required double cancelTime}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + that, serializer); + sse_encode_f_64(cancelTime, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 14, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioParamCancelAndHoldAtTimeConstMeta, + argValues: [that, cancelTime], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioParamCancelAndHoldAtTimeConstMeta => + const TaskConstMeta( + debugName: "AudioParam_cancel_and_hold_at_time", + argNames: ["that", "cancelTime"], + ); + + @override + Future webAudioApiAudioParamCancelScheduledValues( + {required AudioParam that, required double cancelTime}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + that, serializer); + sse_encode_f_64(cancelTime, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 15, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioParamCancelScheduledValuesConstMeta, + argValues: [that, cancelTime], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioParamCancelScheduledValuesConstMeta => + const TaskConstMeta( + debugName: "AudioParam_cancel_scheduled_values", + argNames: ["that", "cancelTime"], + ); + + @override + Future webAudioApiAudioParamDefaultValue({required AudioParam that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 16, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_32, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioParamDefaultValueConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioParamDefaultValueConstMeta => + const TaskConstMeta( + debugName: "AudioParam_default_value", + argNames: ["that"], + ); + + @override + Future webAudioApiAudioParamExponentialRampToValueAtTime( + {required AudioParam that, + required double value, + required double endTime}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + that, serializer); + sse_encode_f_32(value, serializer); + sse_encode_f_64(endTime, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 17, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioParamExponentialRampToValueAtTimeConstMeta, + argValues: [that, value, endTime], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiAudioParamExponentialRampToValueAtTimeConstMeta => + const TaskConstMeta( + debugName: "AudioParam_exponential_ramp_to_value_at_time", + argNames: ["that", "value", "endTime"], + ); + + @override + Future webAudioApiAudioParamLinearRampToValueAtTime( + {required AudioParam that, + required double value, + required double endTime}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + that, serializer); + sse_encode_f_32(value, serializer); + sse_encode_f_64(endTime, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 18, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioParamLinearRampToValueAtTimeConstMeta, + argValues: [that, value, endTime], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioParamLinearRampToValueAtTimeConstMeta => + const TaskConstMeta( + debugName: "AudioParam_linear_ramp_to_value_at_time", + argNames: ["that", "value", "endTime"], + ); + + @override + Future webAudioApiAudioParamMaxValue({required AudioParam that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 19, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_32, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioParamMaxValueConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioParamMaxValueConstMeta => + const TaskConstMeta( + debugName: "AudioParam_max_value", + argNames: ["that"], + ); + + @override + Future webAudioApiAudioParamMinValue({required AudioParam that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 20, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_32, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioParamMinValueConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioParamMinValueConstMeta => + const TaskConstMeta( + debugName: "AudioParam_min_value", + argNames: ["that"], + ); + + @override + Future webAudioApiAudioParamSetAutomationRate( + {required AudioParam that, required AutomationRate value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + that, serializer); + sse_encode_automation_rate(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 21, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioParamSetAutomationRateConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioParamSetAutomationRateConstMeta => + const TaskConstMeta( + debugName: "AudioParam_set_automation_rate", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiAudioParamSetTargetAtTime( + {required AudioParam that, + required double value, + required double startTime, + required double timeConstant}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + that, serializer); + sse_encode_f_32(value, serializer); + sse_encode_f_64(startTime, serializer); + sse_encode_f_64(timeConstant, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 22, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioParamSetTargetAtTimeConstMeta, + argValues: [that, value, startTime, timeConstant], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioParamSetTargetAtTimeConstMeta => + const TaskConstMeta( + debugName: "AudioParam_set_target_at_time", + argNames: ["that", "value", "startTime", "timeConstant"], + ); + + @override + Future webAudioApiAudioParamSetValue( + {required AudioParam that, required double value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + that, serializer); + sse_encode_f_32(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 23, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioParamSetValueConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioParamSetValueConstMeta => + const TaskConstMeta( + debugName: "AudioParam_set_value", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiAudioParamSetValueAtTime( + {required AudioParam that, + required double value, + required double startTime}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + that, serializer); + sse_encode_f_32(value, serializer); + sse_encode_f_64(startTime, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 24, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioParamSetValueAtTimeConstMeta, + argValues: [that, value, startTime], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioParamSetValueAtTimeConstMeta => + const TaskConstMeta( + debugName: "AudioParam_set_value_at_time", + argNames: ["that", "value", "startTime"], + ); + + @override + Future webAudioApiAudioParamSetValueCurveAtTime( + {required AudioParam that, + required List values, + required double startTime, + required double duration}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + that, serializer); + sse_encode_list_prim_f_32_loose(values, serializer); + sse_encode_f_64(startTime, serializer); + sse_encode_f_64(duration, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 25, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioParamSetValueCurveAtTimeConstMeta, + argValues: [that, values, startTime, duration], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioParamSetValueCurveAtTimeConstMeta => + const TaskConstMeta( + debugName: "AudioParam_set_value_curve_at_time", + argNames: ["that", "values", "startTime", "duration"], + ); + + @override + Future webAudioApiAudioParamValue({required AudioParam that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 26, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_32, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioParamValueConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioParamValueConstMeta => const TaskConstMeta( + debugName: "AudioParam_value", + argNames: ["that"], + ); + + @override + AudioBuffer webAudioApiAudioProcessingEventGetInputBuffer( + {required AudioProcessingEvent that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 27)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioProcessingEventGetInputBufferConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioProcessingEventGetInputBufferConstMeta => + const TaskConstMeta( + debugName: "AudioProcessingEvent_get_input_buffer", + argNames: ["that"], + ); + + @override + AudioBuffer webAudioApiAudioProcessingEventGetOutputBuffer( + {required AudioProcessingEvent that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 28)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioProcessingEventGetOutputBufferConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioProcessingEventGetOutputBufferConstMeta => + const TaskConstMeta( + debugName: "AudioProcessingEvent_get_output_buffer", + argNames: ["that"], + ); + + @override + double webAudioApiAudioProcessingEventGetPlaybackTime( + {required AudioProcessingEvent that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 29)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioProcessingEventGetPlaybackTimeConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioProcessingEventGetPlaybackTimeConstMeta => + const TaskConstMeta( + debugName: "AudioProcessingEvent_get_playback_time", + argNames: ["that"], + ); + + @override + void webAudioApiAudioProcessingEventSetInputBuffer( + {required AudioProcessingEvent that, required AudioBuffer inputBuffer}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + that, serializer); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + inputBuffer, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 30)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioProcessingEventSetInputBufferConstMeta, + argValues: [that, inputBuffer], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioProcessingEventSetInputBufferConstMeta => + const TaskConstMeta( + debugName: "AudioProcessingEvent_set_input_buffer", + argNames: ["that", "inputBuffer"], + ); + + @override + void webAudioApiAudioProcessingEventSetOutputBuffer( + {required AudioProcessingEvent that, required AudioBuffer outputBuffer}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + that, serializer); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + outputBuffer, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 31)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioProcessingEventSetOutputBufferConstMeta, + argValues: [that, outputBuffer], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioProcessingEventSetOutputBufferConstMeta => + const TaskConstMeta( + debugName: "AudioProcessingEvent_set_output_buffer", + argNames: ["that", "outputBuffer"], + ); + + @override + void webAudioApiAudioProcessingEventSetPlaybackTime( + {required AudioProcessingEvent that, required double playbackTime}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + that, serializer); + sse_encode_f_64(playbackTime, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 32)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioProcessingEventSetPlaybackTimeConstMeta, + argValues: [that, playbackTime], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioProcessingEventSetPlaybackTimeConstMeta => + const TaskConstMeta( + debugName: "AudioProcessingEvent_set_playback_time", + argNames: ["that", "playbackTime"], + ); + + @override + double webAudioApiAudioRenderCapacityEventGetAverageLoad( + {required AudioRenderCapacityEvent that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 33)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioRenderCapacityEventGetAverageLoadConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiAudioRenderCapacityEventGetAverageLoadConstMeta => + const TaskConstMeta( + debugName: "AudioRenderCapacityEvent_get_average_load", + argNames: ["that"], + ); + + @override + Event webAudioApiAudioRenderCapacityEventGetEvent( + {required AudioRenderCapacityEvent that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 34)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioRenderCapacityEventGetEventConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioRenderCapacityEventGetEventConstMeta => + const TaskConstMeta( + debugName: "AudioRenderCapacityEvent_get_event", + argNames: ["that"], + ); + + @override + double webAudioApiAudioRenderCapacityEventGetPeakLoad( + {required AudioRenderCapacityEvent that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 35)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioRenderCapacityEventGetPeakLoadConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioRenderCapacityEventGetPeakLoadConstMeta => + const TaskConstMeta( + debugName: "AudioRenderCapacityEvent_get_peak_load", + argNames: ["that"], + ); + + @override + double webAudioApiAudioRenderCapacityEventGetTimestamp( + {required AudioRenderCapacityEvent that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 36)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioRenderCapacityEventGetTimestampConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioRenderCapacityEventGetTimestampConstMeta => + const TaskConstMeta( + debugName: "AudioRenderCapacityEvent_get_timestamp", + argNames: ["that"], + ); + + @override + double webAudioApiAudioRenderCapacityEventGetUnderrunRatio( + {required AudioRenderCapacityEvent that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 37)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioRenderCapacityEventGetUnderrunRatioConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiAudioRenderCapacityEventGetUnderrunRatioConstMeta => + const TaskConstMeta( + debugName: "AudioRenderCapacityEvent_get_underrun_ratio", + argNames: ["that"], + ); + + @override + void webAudioApiAudioRenderCapacityEventSetAverageLoad( + {required AudioRenderCapacityEvent that, required double averageLoad}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + that, serializer); + sse_encode_f_64(averageLoad, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 38)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioRenderCapacityEventSetAverageLoadConstMeta, + argValues: [that, averageLoad], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiAudioRenderCapacityEventSetAverageLoadConstMeta => + const TaskConstMeta( + debugName: "AudioRenderCapacityEvent_set_average_load", + argNames: ["that", "averageLoad"], + ); + + @override + void webAudioApiAudioRenderCapacityEventSetEvent( + {required AudioRenderCapacityEvent that, required Event event}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + that, serializer); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + event, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 39)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioRenderCapacityEventSetEventConstMeta, + argValues: [that, event], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioRenderCapacityEventSetEventConstMeta => + const TaskConstMeta( + debugName: "AudioRenderCapacityEvent_set_event", + argNames: ["that", "event"], + ); + + @override + void webAudioApiAudioRenderCapacityEventSetPeakLoad( + {required AudioRenderCapacityEvent that, required double peakLoad}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + that, serializer); + sse_encode_f_64(peakLoad, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 40)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioRenderCapacityEventSetPeakLoadConstMeta, + argValues: [that, peakLoad], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioRenderCapacityEventSetPeakLoadConstMeta => + const TaskConstMeta( + debugName: "AudioRenderCapacityEvent_set_peak_load", + argNames: ["that", "peakLoad"], + ); + + @override + void webAudioApiAudioRenderCapacityEventSetTimestamp( + {required AudioRenderCapacityEvent that, required double timestamp}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + that, serializer); + sse_encode_f_64(timestamp, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 41)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioRenderCapacityEventSetTimestampConstMeta, + argValues: [that, timestamp], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioRenderCapacityEventSetTimestampConstMeta => + const TaskConstMeta( + debugName: "AudioRenderCapacityEvent_set_timestamp", + argNames: ["that", "timestamp"], + ); + + @override + void webAudioApiAudioRenderCapacityEventSetUnderrunRatio( + {required AudioRenderCapacityEvent that, required double underrunRatio}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + that, serializer); + sse_encode_f_64(underrunRatio, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 42)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioRenderCapacityEventSetUnderrunRatioConstMeta, + argValues: [that, underrunRatio], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiAudioRenderCapacityEventSetUnderrunRatioConstMeta => + const TaskConstMeta( + debugName: "AudioRenderCapacityEvent_set_underrun_ratio", + argNames: ["that", "underrunRatio"], + ); + + @override + Future webAudioApiAudioRenderCapacityClearOnupdate( + {required AudioRenderCapacity that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 43, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioRenderCapacityClearOnupdateConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioRenderCapacityClearOnupdateConstMeta => + const TaskConstMeta( + debugName: "AudioRenderCapacity_clear_onupdate", + argNames: ["that"], + ); + + @override + Future webAudioApiAudioRenderCapacityStart( + {required AudioRenderCapacity that, + required AudioRenderCapacityOptions options}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + that, serializer); + sse_encode_box_autoadd_audio_render_capacity_options( + options, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 44, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioRenderCapacityStartConstMeta, + argValues: [that, options], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioRenderCapacityStartConstMeta => + const TaskConstMeta( + debugName: "AudioRenderCapacity_start", + argNames: ["that", "options"], + ); + + @override + Future webAudioApiAudioRenderCapacityStop( + {required AudioRenderCapacity that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 45, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiAudioRenderCapacityStopConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiAudioRenderCapacityStopConstMeta => + const TaskConstMeta( + debugName: "AudioRenderCapacity_stop", + argNames: ["that"], + ); + + @override + Event webAudioApiOfflineAudioCompletionEventGetEvent( + {required OfflineAudioCompletionEvent that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 46)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent, + decodeErrorData: null, + ), + constMeta: kWebAudioApiOfflineAudioCompletionEventGetEventConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiOfflineAudioCompletionEventGetEventConstMeta => + const TaskConstMeta( + debugName: "OfflineAudioCompletionEvent_get_event", + argNames: ["that"], + ); + + @override + AudioBuffer webAudioApiOfflineAudioCompletionEventGetRenderedBuffer( + {required OfflineAudioCompletionEvent that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 47)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiOfflineAudioCompletionEventGetRenderedBufferConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiOfflineAudioCompletionEventGetRenderedBufferConstMeta => + const TaskConstMeta( + debugName: "OfflineAudioCompletionEvent_get_rendered_buffer", + argNames: ["that"], + ); + + @override + void webAudioApiOfflineAudioCompletionEventSetEvent( + {required OfflineAudioCompletionEvent that, required Event event}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + that, serializer); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + event, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 48)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiOfflineAudioCompletionEventSetEventConstMeta, + argValues: [that, event], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiOfflineAudioCompletionEventSetEventConstMeta => + const TaskConstMeta( + debugName: "OfflineAudioCompletionEvent_set_event", + argNames: ["that", "event"], + ); + + @override + void webAudioApiOfflineAudioCompletionEventSetRenderedBuffer( + {required OfflineAudioCompletionEvent that, + required AudioBuffer renderedBuffer}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + that, serializer); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + renderedBuffer, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 49)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiOfflineAudioCompletionEventSetRenderedBufferConstMeta, + argValues: [that, renderedBuffer], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiOfflineAudioCompletionEventSetRenderedBufferConstMeta => + const TaskConstMeta( + debugName: "OfflineAudioCompletionEvent_set_rendered_buffer", + argNames: ["that", "renderedBuffer"], + ); + + @override + Future webAudioApiContextAudioContextBaseLatency( + {required AudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 50, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextAudioContextBaseLatencyConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextAudioContextBaseLatencyConstMeta => + const TaskConstMeta( + debugName: "AudioContext_base_latency", + argNames: ["that"], + ); + + @override + Future webAudioApiContextAudioContextClearOnsinkchange( + {required AudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 51, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextAudioContextClearOnsinkchangeConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextAudioContextClearOnsinkchangeConstMeta => + const TaskConstMeta( + debugName: "AudioContext_clear_onsinkchange", + argNames: ["that"], + ); + + @override + Future webAudioApiContextAudioContextClose( + {required AudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 52, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextAudioContextCloseConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextAudioContextCloseConstMeta => + const TaskConstMeta( + debugName: "AudioContext_close", + argNames: ["that"], + ); + + @override + Future webAudioApiContextAudioContextCloseSync( + {required AudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 53, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextAudioContextCloseSyncConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextAudioContextCloseSyncConstMeta => + const TaskConstMeta( + debugName: "AudioContext_close_sync", + argNames: ["that"], + ); + + @override + Future + webAudioApiContextAudioContextCreateMediaStreamDestination( + {required AudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 54, port: port_); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiContextAudioContextCreateMediaStreamDestinationConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiContextAudioContextCreateMediaStreamDestinationConstMeta => + const TaskConstMeta( + debugName: "AudioContext_create_media_stream_destination", + argNames: ["that"], + ); + + @override + Future + webAudioApiContextAudioContextCreateMediaStreamSource( + {required AudioContext that, required MediaStream media}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + media, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 55, port: port_); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiContextAudioContextCreateMediaStreamSourceConstMeta, + argValues: [that, media], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiContextAudioContextCreateMediaStreamSourceConstMeta => + const TaskConstMeta( + debugName: "AudioContext_create_media_stream_source", + argNames: ["that", "media"], + ); + + @override + Future + webAudioApiContextAudioContextCreateMediaStreamTrackSource( + {required AudioContext that, required MediaStreamTrack media}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + media, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 56, port: port_); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiContextAudioContextCreateMediaStreamTrackSourceConstMeta, + argValues: [that, media], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiContextAudioContextCreateMediaStreamTrackSourceConstMeta => + const TaskConstMeta( + debugName: "AudioContext_create_media_stream_track_source", + argNames: ["that", "media"], + ); + + @override + AudioContext webAudioApiContextAudioContextNew( + {required AudioContextOptions options}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_box_autoadd_audio_context_options(options, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 57)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextAudioContextNewConstMeta, + argValues: [options], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextAudioContextNewConstMeta => + const TaskConstMeta( + debugName: "AudioContext_new", + argNames: ["options"], + ); + + @override + Future webAudioApiContextAudioContextOutputLatency( + {required AudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 58, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextAudioContextOutputLatencyConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextAudioContextOutputLatencyConstMeta => + const TaskConstMeta( + debugName: "AudioContext_output_latency", + argNames: ["that"], + ); + + @override + Future webAudioApiContextAudioContextRenderCapacity( + {required AudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 59, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextAudioContextRenderCapacityConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextAudioContextRenderCapacityConstMeta => + const TaskConstMeta( + debugName: "AudioContext_render_capacity", + argNames: ["that"], + ); + + @override + Future webAudioApiContextAudioContextResumeSync( + {required AudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 60, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextAudioContextResumeSyncConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextAudioContextResumeSyncConstMeta => + const TaskConstMeta( + debugName: "AudioContext_resume_sync", + argNames: ["that"], + ); + + @override + Future webAudioApiContextAudioContextSinkId( + {required AudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 61, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_String, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextAudioContextSinkIdConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextAudioContextSinkIdConstMeta => + const TaskConstMeta( + debugName: "AudioContext_sink_id", + argNames: ["that"], + ); + + @override + Future webAudioApiContextAudioContextSuspend( + {required AudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 62, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextAudioContextSuspendConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextAudioContextSuspendConstMeta => + const TaskConstMeta( + debugName: "AudioContext_suspend", + argNames: ["that"], + ); + + @override + Future webAudioApiContextAudioContextSuspendSync( + {required AudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 63, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextAudioContextSuspendSyncConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextAudioContextSuspendSyncConstMeta => + const TaskConstMeta( + debugName: "AudioContext_suspend_sync", + argNames: ["that"], + ); + + @override + Future webAudioApiContextConcreteBaseAudioContextMarkCycleBreaker( + {required ConcreteBaseAudioContext that, + required AudioContextRegistration reg}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + that, serializer); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + reg, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 64, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiContextConcreteBaseAudioContextMarkCycleBreakerConstMeta, + argValues: [that, reg], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiContextConcreteBaseAudioContextMarkCycleBreakerConstMeta => + const TaskConstMeta( + debugName: "ConcreteBaseAudioContext_mark_cycle_breaker", + argNames: ["that", "reg"], + ); + + @override + Future webAudioApiContextOfflineAudioContextClearOncomplete( + {required OfflineAudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 65, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextOfflineAudioContextClearOncompleteConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiContextOfflineAudioContextClearOncompleteConstMeta => + const TaskConstMeta( + debugName: "OfflineAudioContext_clear_oncomplete", + argNames: ["that"], + ); + + @override + Future webAudioApiContextOfflineAudioContextLength( + {required OfflineAudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 66, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_usize, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextOfflineAudioContextLengthConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextOfflineAudioContextLengthConstMeta => + const TaskConstMeta( + debugName: "OfflineAudioContext_length", + argNames: ["that"], + ); + + @override + Future webAudioApiContextOfflineAudioContextNew( + {required BigInt numberOfChannels, + required BigInt length, + required double sampleRate}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_usize(numberOfChannels, serializer); + sse_encode_usize(length, serializer); + sse_encode_f_32(sampleRate, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 67, port: port_); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextOfflineAudioContextNewConstMeta, + argValues: [numberOfChannels, length, sampleRate], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextOfflineAudioContextNewConstMeta => + const TaskConstMeta( + debugName: "OfflineAudioContext_new", + argNames: ["numberOfChannels", "length", "sampleRate"], + ); + + @override + Future webAudioApiContextOfflineAudioContextResume( + {required OfflineAudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 68, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextOfflineAudioContextResumeConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextOfflineAudioContextResumeConstMeta => + const TaskConstMeta( + debugName: "OfflineAudioContext_resume", + argNames: ["that"], + ); + + @override + Future webAudioApiContextOfflineAudioContextStartRendering( + {required OfflineAudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 69, port: port_); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextOfflineAudioContextStartRenderingConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiContextOfflineAudioContextStartRenderingConstMeta => + const TaskConstMeta( + debugName: "OfflineAudioContext_start_rendering", + argNames: ["that"], + ); + + @override + Future webAudioApiContextOfflineAudioContextStartRenderingSync( + {required OfflineAudioContext that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 70, port: port_); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiContextOfflineAudioContextStartRenderingSyncConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiContextOfflineAudioContextStartRenderingSyncConstMeta => + const TaskConstMeta( + debugName: "OfflineAudioContext_start_rendering_sync", + argNames: ["that"], + ); + + @override + Future webAudioApiContextOfflineAudioContextSuspend( + {required OfflineAudioContext that, required double suspendTime}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + that, serializer); + sse_encode_f_64(suspendTime, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 71, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiContextOfflineAudioContextSuspendConstMeta, + argValues: [that, suspendTime], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiContextOfflineAudioContextSuspendConstMeta => + const TaskConstMeta( + debugName: "OfflineAudioContext_suspend", + argNames: ["that", "suspendTime"], + ); + + @override + Future webAudioApiMediaDevicesGetUserMediaSync( + {required MediaStreamConstraints constraints}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + constraints, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 72, port: port_); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaDevicesGetUserMediaSyncConstMeta, + argValues: [constraints], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiMediaDevicesGetUserMediaSyncConstMeta => + const TaskConstMeta( + debugName: "get_user_media_sync", + argNames: ["constraints"], + ); + + @override + Uint8List webAudioApiMediaRecorderBlobEventGetBlob( + {required BlobEvent that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 73)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_list_prim_u_8_strict, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaRecorderBlobEventGetBlobConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiMediaRecorderBlobEventGetBlobConstMeta => + const TaskConstMeta( + debugName: "BlobEvent_get_blob", + argNames: ["that"], + ); + + @override + Event webAudioApiMediaRecorderBlobEventGetEvent({required BlobEvent that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 74)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaRecorderBlobEventGetEventConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiMediaRecorderBlobEventGetEventConstMeta => + const TaskConstMeta( + debugName: "BlobEvent_get_event", + argNames: ["that"], + ); + + @override + double webAudioApiMediaRecorderBlobEventGetTimecode( + {required BlobEvent that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 75)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaRecorderBlobEventGetTimecodeConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiMediaRecorderBlobEventGetTimecodeConstMeta => + const TaskConstMeta( + debugName: "BlobEvent_get_timecode", + argNames: ["that"], + ); + + @override + void webAudioApiMediaRecorderBlobEventSetBlob( + {required BlobEvent that, required Uint8List blob}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + that, serializer); + sse_encode_list_prim_u_8_strict(blob, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 76)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaRecorderBlobEventSetBlobConstMeta, + argValues: [that, blob], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiMediaRecorderBlobEventSetBlobConstMeta => + const TaskConstMeta( + debugName: "BlobEvent_set_blob", + argNames: ["that", "blob"], + ); + + @override + void webAudioApiMediaRecorderBlobEventSetEvent( + {required BlobEvent that, required Event event}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + that, serializer); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + event, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 77)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaRecorderBlobEventSetEventConstMeta, + argValues: [that, event], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiMediaRecorderBlobEventSetEventConstMeta => + const TaskConstMeta( + debugName: "BlobEvent_set_event", + argNames: ["that", "event"], + ); + + @override + void webAudioApiMediaRecorderBlobEventSetTimecode( + {required BlobEvent that, required double timecode}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + that, serializer); + sse_encode_f_64(timecode, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 78)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaRecorderBlobEventSetTimecodeConstMeta, + argValues: [that, timecode], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiMediaRecorderBlobEventSetTimecodeConstMeta => + const TaskConstMeta( + debugName: "BlobEvent_set_timecode", + argNames: ["that", "timecode"], + ); + + @override + Future webAudioApiMediaRecorderMediaRecorderClearOndataavailable( + {required MediaRecorder that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 79, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiMediaRecorderMediaRecorderClearOndataavailableConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiMediaRecorderMediaRecorderClearOndataavailableConstMeta => + const TaskConstMeta( + debugName: "MediaRecorder_clear_ondataavailable", + argNames: ["that"], + ); + + @override + Future webAudioApiMediaRecorderMediaRecorderClearOnerror( + {required MediaRecorder that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 80, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaRecorderMediaRecorderClearOnerrorConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiMediaRecorderMediaRecorderClearOnerrorConstMeta => + const TaskConstMeta( + debugName: "MediaRecorder_clear_onerror", + argNames: ["that"], + ); + + @override + Future webAudioApiMediaRecorderMediaRecorderClearOnstop( + {required MediaRecorder that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 81, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaRecorderMediaRecorderClearOnstopConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiMediaRecorderMediaRecorderClearOnstopConstMeta => + const TaskConstMeta( + debugName: "MediaRecorder_clear_onstop", + argNames: ["that"], + ); + + @override + Future webAudioApiMediaRecorderMediaRecorderNew( + {required MediaStream stream}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + stream, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 82, port: port_); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaRecorderMediaRecorderNewConstMeta, + argValues: [stream], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiMediaRecorderMediaRecorderNewConstMeta => + const TaskConstMeta( + debugName: "MediaRecorder_new", + argNames: ["stream"], + ); + + @override + Future webAudioApiMediaRecorderMediaRecorderStart( + {required MediaRecorder that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 83, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaRecorderMediaRecorderStartConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiMediaRecorderMediaRecorderStartConstMeta => + const TaskConstMeta( + debugName: "MediaRecorder_start", + argNames: ["that"], + ); + + @override + Future webAudioApiMediaRecorderMediaRecorderStop( + {required MediaRecorder that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 84, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaRecorderMediaRecorderStopConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiMediaRecorderMediaRecorderStopConstMeta => + const TaskConstMeta( + debugName: "MediaRecorder_stop", + argNames: ["that"], + ); + + @override + Future webAudioApiMediaStreamsMediaStreamTrackClose( + {required MediaStreamTrack that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 85, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaStreamsMediaStreamTrackCloseConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiMediaStreamsMediaStreamTrackCloseConstMeta => + const TaskConstMeta( + debugName: "MediaStreamTrack_close", + argNames: ["that"], + ); + + @override + Future + webAudioApiMediaStreamsMediaStreamTrackReadyState( + {required MediaStreamTrack that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 86, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_media_stream_track_state, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaStreamsMediaStreamTrackReadyStateConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiMediaStreamsMediaStreamTrackReadyStateConstMeta => + const TaskConstMeta( + debugName: "MediaStreamTrack_ready_state", + argNames: ["that"], + ); + + @override + Future webAudioApiMediaStreamsMediaStreamFromTracks( + {required List tracks}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + tracks, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 87, port: port_); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaStreamsMediaStreamFromTracksConstMeta, + argValues: [tracks], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiMediaStreamsMediaStreamFromTracksConstMeta => + const TaskConstMeta( + debugName: "MediaStream_from_tracks", + argNames: ["tracks"], + ); + + @override + Future webAudioApiMediaStreamsMediaStreamGetTracks( + {required MediaStream that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 88, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiMediaStreamsMediaStreamGetTracksConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiMediaStreamsMediaStreamGetTracksConstMeta => + const TaskConstMeta( + debugName: "MediaStream_get_tracks", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeAnalyserNodeFftSize( + {required AnalyserNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 89, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_usize, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAnalyserNodeFftSizeConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAnalyserNodeFftSizeConstMeta => + const TaskConstMeta( + debugName: "AnalyserNode_fft_size", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeAnalyserNodeFrequencyBinCount( + {required AnalyserNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 90, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_usize, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAnalyserNodeFrequencyBinCountConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAnalyserNodeFrequencyBinCountConstMeta => + const TaskConstMeta( + debugName: "AnalyserNode_frequency_bin_count", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeAnalyserNodeMaxDecibels( + {required AnalyserNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 91, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAnalyserNodeMaxDecibelsConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAnalyserNodeMaxDecibelsConstMeta => + const TaskConstMeta( + debugName: "AnalyserNode_max_decibels", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeAnalyserNodeMinDecibels( + {required AnalyserNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 92, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAnalyserNodeMinDecibelsConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAnalyserNodeMinDecibelsConstMeta => + const TaskConstMeta( + debugName: "AnalyserNode_min_decibels", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeAnalyserNodeSetFftSize( + {required AnalyserNode that, required BigInt fftSize}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + that, serializer); + sse_encode_usize(fftSize, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 93, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAnalyserNodeSetFftSizeConstMeta, + argValues: [that, fftSize], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAnalyserNodeSetFftSizeConstMeta => + const TaskConstMeta( + debugName: "AnalyserNode_set_fft_size", + argNames: ["that", "fftSize"], + ); + + @override + Future webAudioApiNodeAnalyserNodeSetMaxDecibels( + {required AnalyserNode that, required double value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + that, serializer); + sse_encode_f_64(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 94, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAnalyserNodeSetMaxDecibelsConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAnalyserNodeSetMaxDecibelsConstMeta => + const TaskConstMeta( + debugName: "AnalyserNode_set_max_decibels", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodeAnalyserNodeSetMinDecibels( + {required AnalyserNode that, required double value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + that, serializer); + sse_encode_f_64(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 95, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAnalyserNodeSetMinDecibelsConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAnalyserNodeSetMinDecibelsConstMeta => + const TaskConstMeta( + debugName: "AnalyserNode_set_min_decibels", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodeAnalyserNodeSetSmoothingTimeConstant( + {required AnalyserNode that, required double value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + that, serializer); + sse_encode_f_64(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 96, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAnalyserNodeSetSmoothingTimeConstantConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiNodeAnalyserNodeSetSmoothingTimeConstantConstMeta => + const TaskConstMeta( + debugName: "AnalyserNode_set_smoothing_time_constant", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodeAnalyserNodeSmoothingTimeConstant( + {required AnalyserNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 97, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAnalyserNodeSmoothingTimeConstantConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiNodeAnalyserNodeSmoothingTimeConstantConstMeta => + const TaskConstMeta( + debugName: "AnalyserNode_smoothing_time_constant", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeAudioBufferSourceNodeDetune( + {required AudioBufferSourceNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 98, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAudioBufferSourceNodeDetuneConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAudioBufferSourceNodeDetuneConstMeta => + const TaskConstMeta( + debugName: "AudioBufferSourceNode_detune", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeAudioBufferSourceNodeLoop( + {required AudioBufferSourceNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 99, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_bool, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAudioBufferSourceNodeLoopConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAudioBufferSourceNodeLoopConstMeta => + const TaskConstMeta( + debugName: "AudioBufferSourceNode_loop_", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeAudioBufferSourceNodeLoopEnd( + {required AudioBufferSourceNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 100, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAudioBufferSourceNodeLoopEndConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAudioBufferSourceNodeLoopEndConstMeta => + const TaskConstMeta( + debugName: "AudioBufferSourceNode_loop_end", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeAudioBufferSourceNodeLoopStart( + {required AudioBufferSourceNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 101, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAudioBufferSourceNodeLoopStartConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAudioBufferSourceNodeLoopStartConstMeta => + const TaskConstMeta( + debugName: "AudioBufferSourceNode_loop_start", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeAudioBufferSourceNodePlaybackRate( + {required AudioBufferSourceNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 102, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAudioBufferSourceNodePlaybackRateConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiNodeAudioBufferSourceNodePlaybackRateConstMeta => + const TaskConstMeta( + debugName: "AudioBufferSourceNode_playback_rate", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeAudioBufferSourceNodePosition( + {required AudioBufferSourceNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 103, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAudioBufferSourceNodePositionConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAudioBufferSourceNodePositionConstMeta => + const TaskConstMeta( + debugName: "AudioBufferSourceNode_position", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeAudioBufferSourceNodeSetBuffer( + {required AudioBufferSourceNode that, required AudioBuffer audioBuffer}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + that, serializer); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + audioBuffer, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 104, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAudioBufferSourceNodeSetBufferConstMeta, + argValues: [that, audioBuffer], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAudioBufferSourceNodeSetBufferConstMeta => + const TaskConstMeta( + debugName: "AudioBufferSourceNode_set_buffer", + argNames: ["that", "audioBuffer"], + ); + + @override + Future webAudioApiNodeAudioBufferSourceNodeSetLoop( + {required AudioBufferSourceNode that, required bool value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + that, serializer); + sse_encode_bool(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 105, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAudioBufferSourceNodeSetLoopConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAudioBufferSourceNodeSetLoopConstMeta => + const TaskConstMeta( + debugName: "AudioBufferSourceNode_set_loop", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodeAudioBufferSourceNodeSetLoopEnd( + {required AudioBufferSourceNode that, required double value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + that, serializer); + sse_encode_f_64(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 106, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAudioBufferSourceNodeSetLoopEndConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeAudioBufferSourceNodeSetLoopEndConstMeta => + const TaskConstMeta( + debugName: "AudioBufferSourceNode_set_loop_end", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodeAudioBufferSourceNodeSetLoopStart( + {required AudioBufferSourceNode that, required double value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + that, serializer); + sse_encode_f_64(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 107, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAudioBufferSourceNodeSetLoopStartConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiNodeAudioBufferSourceNodeSetLoopStartConstMeta => + const TaskConstMeta( + debugName: "AudioBufferSourceNode_set_loop_start", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodeAudioBufferSourceNodeStartAtWithOffset( + {required AudioBufferSourceNode that, + required double start, + required double offset}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + that, serializer); + sse_encode_f_64(start, serializer); + sse_encode_f_64(offset, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 108, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiNodeAudioBufferSourceNodeStartAtWithOffsetConstMeta, + argValues: [that, start, offset], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiNodeAudioBufferSourceNodeStartAtWithOffsetConstMeta => + const TaskConstMeta( + debugName: "AudioBufferSourceNode_start_at_with_offset", + argNames: ["that", "start", "offset"], + ); + + @override + Future webAudioApiNodeAudioBufferSourceNodeStartAtWithOffsetAndDuration( + {required AudioBufferSourceNode that, + required double start, + required double offset, + required double duration}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + that, serializer); + sse_encode_f_64(start, serializer); + sse_encode_f_64(offset, serializer); + sse_encode_f_64(duration, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 109, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiNodeAudioBufferSourceNodeStartAtWithOffsetAndDurationConstMeta, + argValues: [that, start, offset, duration], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiNodeAudioBufferSourceNodeStartAtWithOffsetAndDurationConstMeta => + const TaskConstMeta( + debugName: + "AudioBufferSourceNode_start_at_with_offset_and_duration", + argNames: ["that", "start", "offset", "duration"], + ); + + @override + Future webAudioApiNodeAudioDestinationNodeMaxChannelCount( + {required AudioDestinationNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 110, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_usize, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeAudioDestinationNodeMaxChannelCountConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiNodeAudioDestinationNodeMaxChannelCountConstMeta => + const TaskConstMeta( + debugName: "AudioDestinationNode_max_channel_count", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeBiquadFilterNodeDetune( + {required BiquadFilterNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 111, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeBiquadFilterNodeDetuneConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeBiquadFilterNodeDetuneConstMeta => + const TaskConstMeta( + debugName: "BiquadFilterNode_detune", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeBiquadFilterNodeFrequency( + {required BiquadFilterNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 112, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeBiquadFilterNodeFrequencyConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeBiquadFilterNodeFrequencyConstMeta => + const TaskConstMeta( + debugName: "BiquadFilterNode_frequency", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeBiquadFilterNodeGain( + {required BiquadFilterNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 113, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeBiquadFilterNodeGainConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeBiquadFilterNodeGainConstMeta => + const TaskConstMeta( + debugName: "BiquadFilterNode_gain", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeBiquadFilterNodeQ( + {required BiquadFilterNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 114, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeBiquadFilterNodeQConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeBiquadFilterNodeQConstMeta => + const TaskConstMeta( + debugName: "BiquadFilterNode_q", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeBiquadFilterNodeSetType( + {required BiquadFilterNode that, required BiquadFilterType type}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + that, serializer); + sse_encode_biquad_filter_type(type, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 115, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeBiquadFilterNodeSetTypeConstMeta, + argValues: [that, type], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeBiquadFilterNodeSetTypeConstMeta => + const TaskConstMeta( + debugName: "BiquadFilterNode_set_type", + argNames: ["that", "type"], + ); + + @override + Future webAudioApiNodeBiquadFilterNodeType( + {required BiquadFilterNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 116, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_biquad_filter_type, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeBiquadFilterNodeTypeConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeBiquadFilterNodeTypeConstMeta => + const TaskConstMeta( + debugName: "BiquadFilterNode_type_", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeConstantSourceNodeOffset( + {required ConstantSourceNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 117, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeConstantSourceNodeOffsetConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeConstantSourceNodeOffsetConstMeta => + const TaskConstMeta( + debugName: "ConstantSourceNode_offset", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeConvolverNodeNormalize( + {required ConvolverNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 118, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_bool, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeConvolverNodeNormalizeConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeConvolverNodeNormalizeConstMeta => + const TaskConstMeta( + debugName: "ConvolverNode_normalize", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeConvolverNodeSetBuffer( + {required ConvolverNode that, required AudioBuffer buffer}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + that, serializer); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + buffer, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 119, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeConvolverNodeSetBufferConstMeta, + argValues: [that, buffer], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeConvolverNodeSetBufferConstMeta => + const TaskConstMeta( + debugName: "ConvolverNode_set_buffer", + argNames: ["that", "buffer"], + ); + + @override + Future webAudioApiNodeConvolverNodeSetNormalize( + {required ConvolverNode that, required bool value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + that, serializer); + sse_encode_bool(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 120, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeConvolverNodeSetNormalizeConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeConvolverNodeSetNormalizeConstMeta => + const TaskConstMeta( + debugName: "ConvolverNode_set_normalize", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodeDelayNodeDelayTime({required DelayNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 121, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeDelayNodeDelayTimeConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeDelayNodeDelayTimeConstMeta => + const TaskConstMeta( + debugName: "DelayNode_delay_time", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeDynamicsCompressorNodeAttack( + {required DynamicsCompressorNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 122, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeDynamicsCompressorNodeAttackConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeDynamicsCompressorNodeAttackConstMeta => + const TaskConstMeta( + debugName: "DynamicsCompressorNode_attack", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeDynamicsCompressorNodeKnee( + {required DynamicsCompressorNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 123, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeDynamicsCompressorNodeKneeConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeDynamicsCompressorNodeKneeConstMeta => + const TaskConstMeta( + debugName: "DynamicsCompressorNode_knee", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeDynamicsCompressorNodeRatio( + {required DynamicsCompressorNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 124, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeDynamicsCompressorNodeRatioConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeDynamicsCompressorNodeRatioConstMeta => + const TaskConstMeta( + debugName: "DynamicsCompressorNode_ratio", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeDynamicsCompressorNodeReduction( + {required DynamicsCompressorNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 125, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_32, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeDynamicsCompressorNodeReductionConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeDynamicsCompressorNodeReductionConstMeta => + const TaskConstMeta( + debugName: "DynamicsCompressorNode_reduction", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeDynamicsCompressorNodeRelease( + {required DynamicsCompressorNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 126, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeDynamicsCompressorNodeReleaseConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeDynamicsCompressorNodeReleaseConstMeta => + const TaskConstMeta( + debugName: "DynamicsCompressorNode_release", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeDynamicsCompressorNodeThreshold( + {required DynamicsCompressorNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 127, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeDynamicsCompressorNodeThresholdConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeDynamicsCompressorNodeThresholdConstMeta => + const TaskConstMeta( + debugName: "DynamicsCompressorNode_threshold", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeGainNodeGain({required GainNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 128, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeGainNodeGainConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeGainNodeGainConstMeta => + const TaskConstMeta( + debugName: "GainNode_gain", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeMediaStreamAudioDestinationNodeStream( + {required MediaStreamAudioDestinationNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 129, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeMediaStreamAudioDestinationNodeStreamConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiNodeMediaStreamAudioDestinationNodeStreamConstMeta => + const TaskConstMeta( + debugName: "MediaStreamAudioDestinationNode_stream", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeOscillatorNodeDetune( + {required OscillatorNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 130, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeOscillatorNodeDetuneConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeOscillatorNodeDetuneConstMeta => + const TaskConstMeta( + debugName: "OscillatorNode_detune", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeOscillatorNodeFrequency( + {required OscillatorNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 131, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeOscillatorNodeFrequencyConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeOscillatorNodeFrequencyConstMeta => + const TaskConstMeta( + debugName: "OscillatorNode_frequency", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeOscillatorNodeSetPeriodicWave( + {required OscillatorNode that, required PeriodicWave periodicWave}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + that, serializer); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + periodicWave, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 132, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeOscillatorNodeSetPeriodicWaveConstMeta, + argValues: [that, periodicWave], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeOscillatorNodeSetPeriodicWaveConstMeta => + const TaskConstMeta( + debugName: "OscillatorNode_set_periodic_wave", + argNames: ["that", "periodicWave"], + ); + + @override + Future webAudioApiNodeOscillatorNodeSetType( + {required OscillatorNode that, required OscillatorType type}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + that, serializer); + sse_encode_oscillator_type(type, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 133, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeOscillatorNodeSetTypeConstMeta, + argValues: [that, type], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeOscillatorNodeSetTypeConstMeta => + const TaskConstMeta( + debugName: "OscillatorNode_set_type", + argNames: ["that", "type"], + ); + + @override + Future webAudioApiNodeOscillatorNodeType( + {required OscillatorNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 134, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_oscillator_type, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeOscillatorNodeTypeConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeOscillatorNodeTypeConstMeta => + const TaskConstMeta( + debugName: "OscillatorNode_type_", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodeConeInnerAngle( + {required PannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 135, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeConeInnerAngleConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeConeInnerAngleConstMeta => + const TaskConstMeta( + debugName: "PannerNode_cone_inner_angle", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodeConeOuterAngle( + {required PannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 136, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeConeOuterAngleConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeConeOuterAngleConstMeta => + const TaskConstMeta( + debugName: "PannerNode_cone_outer_angle", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodeConeOuterGain( + {required PannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 137, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeConeOuterGainConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeConeOuterGainConstMeta => + const TaskConstMeta( + debugName: "PannerNode_cone_outer_gain", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodeDistanceModel( + {required PannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 138, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_distance_model_type, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeDistanceModelConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeDistanceModelConstMeta => + const TaskConstMeta( + debugName: "PannerNode_distance_model", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodeMaxDistance( + {required PannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 139, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeMaxDistanceConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeMaxDistanceConstMeta => + const TaskConstMeta( + debugName: "PannerNode_max_distance", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodeOrientationX( + {required PannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 140, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeOrientationXConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeOrientationXConstMeta => + const TaskConstMeta( + debugName: "PannerNode_orientation_x", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodeOrientationY( + {required PannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 141, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeOrientationYConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeOrientationYConstMeta => + const TaskConstMeta( + debugName: "PannerNode_orientation_y", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodeOrientationZ( + {required PannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 142, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeOrientationZConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeOrientationZConstMeta => + const TaskConstMeta( + debugName: "PannerNode_orientation_z", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodePanningModel( + {required PannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 143, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_panning_model_type, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodePanningModelConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodePanningModelConstMeta => + const TaskConstMeta( + debugName: "PannerNode_panning_model", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodePositionX({required PannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 144, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodePositionXConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodePositionXConstMeta => + const TaskConstMeta( + debugName: "PannerNode_position_x", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodePositionY({required PannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 145, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodePositionYConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodePositionYConstMeta => + const TaskConstMeta( + debugName: "PannerNode_position_y", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodePositionZ({required PannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 146, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodePositionZConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodePositionZConstMeta => + const TaskConstMeta( + debugName: "PannerNode_position_z", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodeRefDistance( + {required PannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 147, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeRefDistanceConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeRefDistanceConstMeta => + const TaskConstMeta( + debugName: "PannerNode_ref_distance", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodeRolloffFactor( + {required PannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 148, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_f_64, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeRolloffFactorConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeRolloffFactorConstMeta => + const TaskConstMeta( + debugName: "PannerNode_rolloff_factor", + argNames: ["that"], + ); + + @override + Future webAudioApiNodePannerNodeSetConeInnerAngle( + {required PannerNode that, required double value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + sse_encode_f_64(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 149, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeSetConeInnerAngleConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeSetConeInnerAngleConstMeta => + const TaskConstMeta( + debugName: "PannerNode_set_cone_inner_angle", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodePannerNodeSetConeOuterAngle( + {required PannerNode that, required double value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + sse_encode_f_64(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 150, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeSetConeOuterAngleConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeSetConeOuterAngleConstMeta => + const TaskConstMeta( + debugName: "PannerNode_set_cone_outer_angle", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodePannerNodeSetConeOuterGain( + {required PannerNode that, required double value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + sse_encode_f_64(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 151, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeSetConeOuterGainConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeSetConeOuterGainConstMeta => + const TaskConstMeta( + debugName: "PannerNode_set_cone_outer_gain", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodePannerNodeSetDistanceModel( + {required PannerNode that, required DistanceModelType value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + sse_encode_distance_model_type(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 152, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeSetDistanceModelConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeSetDistanceModelConstMeta => + const TaskConstMeta( + debugName: "PannerNode_set_distance_model", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodePannerNodeSetMaxDistance( + {required PannerNode that, required double value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + sse_encode_f_64(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 153, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeSetMaxDistanceConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeSetMaxDistanceConstMeta => + const TaskConstMeta( + debugName: "PannerNode_set_max_distance", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodePannerNodeSetOrientation( + {required PannerNode that, + required double x, + required double y, + required double z}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + sse_encode_f_32(x, serializer); + sse_encode_f_32(y, serializer); + sse_encode_f_32(z, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 154, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeSetOrientationConstMeta, + argValues: [that, x, y, z], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeSetOrientationConstMeta => + const TaskConstMeta( + debugName: "PannerNode_set_orientation", + argNames: ["that", "x", "y", "z"], + ); + + @override + Future webAudioApiNodePannerNodeSetPanningModel( + {required PannerNode that, required PanningModelType value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + sse_encode_panning_model_type(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 155, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeSetPanningModelConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeSetPanningModelConstMeta => + const TaskConstMeta( + debugName: "PannerNode_set_panning_model", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodePannerNodeSetPosition( + {required PannerNode that, + required double x, + required double y, + required double z}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + sse_encode_f_32(x, serializer); + sse_encode_f_32(y, serializer); + sse_encode_f_32(z, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 156, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeSetPositionConstMeta, + argValues: [that, x, y, z], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeSetPositionConstMeta => + const TaskConstMeta( + debugName: "PannerNode_set_position", + argNames: ["that", "x", "y", "z"], + ); + + @override + Future webAudioApiNodePannerNodeSetRefDistance( + {required PannerNode that, required double value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + sse_encode_f_64(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 157, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeSetRefDistanceConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeSetRefDistanceConstMeta => + const TaskConstMeta( + debugName: "PannerNode_set_ref_distance", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodePannerNodeSetRolloffFactor( + {required PannerNode that, required double value}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + that, serializer); + sse_encode_f_64(value, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 158, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodePannerNodeSetRolloffFactorConstMeta, + argValues: [that, value], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodePannerNodeSetRolloffFactorConstMeta => + const TaskConstMeta( + debugName: "PannerNode_set_rolloff_factor", + argNames: ["that", "value"], + ); + + @override + Future webAudioApiNodeScriptProcessorNodeBufferSize( + {required ScriptProcessorNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 159, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_usize, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeScriptProcessorNodeBufferSizeConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeScriptProcessorNodeBufferSizeConstMeta => + const TaskConstMeta( + debugName: "ScriptProcessorNode_buffer_size", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeScriptProcessorNodeClearOnaudioprocess( + {required ScriptProcessorNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 160, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiNodeScriptProcessorNodeClearOnaudioprocessConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiNodeScriptProcessorNodeClearOnaudioprocessConstMeta => + const TaskConstMeta( + debugName: "ScriptProcessorNode_clear_onaudioprocess", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeStereoPannerNodePan( + {required StereoPannerNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 161, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeStereoPannerNodePanConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeStereoPannerNodePanConstMeta => + const TaskConstMeta( + debugName: "StereoPannerNode_pan", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeWaveShaperNodeOversample( + {required WaveShaperNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 162, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_over_sample_type, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeWaveShaperNodeOversampleConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeWaveShaperNodeOversampleConstMeta => + const TaskConstMeta( + debugName: "WaveShaperNode_oversample", + argNames: ["that"], + ); + + @override + Future webAudioApiNodeWaveShaperNodeSetCurve( + {required WaveShaperNode that, required List curve}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + that, serializer); + sse_encode_list_prim_f_32_loose(curve, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 163, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeWaveShaperNodeSetCurveConstMeta, + argValues: [that, curve], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeWaveShaperNodeSetCurveConstMeta => + const TaskConstMeta( + debugName: "WaveShaperNode_set_curve", + argNames: ["that", "curve"], + ); + + @override + Future webAudioApiNodeWaveShaperNodeSetOversample( + {required WaveShaperNode that, required OverSampleType oversample}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + that, serializer); + sse_encode_over_sample_type(oversample, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 164, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiNodeWaveShaperNodeSetOversampleConstMeta, + argValues: [that, oversample], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiNodeWaveShaperNodeSetOversampleConstMeta => + const TaskConstMeta( + debugName: "WaveShaperNode_set_oversample", + argNames: ["that", "oversample"], + ); + + @override + Future webAudioApiWorkletAudioWorkletNodeChannelConfig( + {required AudioWorkletNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 165, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiWorkletAudioWorkletNodeChannelConfigConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiWorkletAudioWorkletNodeChannelConfigConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_channel_config", + argNames: ["that"], + ); + + @override + Future webAudioApiWorkletAudioWorkletNodeChannelCount( + {required AudioWorkletNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 166, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_usize, + decodeErrorData: null, + ), + constMeta: kWebAudioApiWorkletAudioWorkletNodeChannelCountConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiWorkletAudioWorkletNodeChannelCountConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_channel_count", + argNames: ["that"], + ); + + @override + Future webAudioApiWorkletAudioWorkletNodeChannelCountMode( + {required AudioWorkletNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 167, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_channel_count_mode, + decodeErrorData: null, + ), + constMeta: kWebAudioApiWorkletAudioWorkletNodeChannelCountModeConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiWorkletAudioWorkletNodeChannelCountModeConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_channel_count_mode", + argNames: ["that"], + ); + + @override + Future + webAudioApiWorkletAudioWorkletNodeChannelInterpretation( + {required AudioWorkletNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 168, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_channel_interpretation, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiWorkletAudioWorkletNodeChannelInterpretationConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiWorkletAudioWorkletNodeChannelInterpretationConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_channel_interpretation", + argNames: ["that"], + ); + + @override + Future webAudioApiWorkletAudioWorkletNodeClearOnprocessorerror( + {required AudioWorkletNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 169, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiWorkletAudioWorkletNodeClearOnprocessorerrorConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiWorkletAudioWorkletNodeClearOnprocessorerrorConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_clear_onprocessorerror", + argNames: ["that"], + ); + + @override + Future webAudioApiWorkletAudioWorkletNodeContext( + {required AudioWorkletNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 170, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiWorkletAudioWorkletNodeContextConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiWorkletAudioWorkletNodeContextConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_context", + argNames: ["that"], + ); + + @override + Future webAudioApiWorkletAudioWorkletNodeDisconnect( + {required AudioWorkletNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 171, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiWorkletAudioWorkletNodeDisconnectConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiWorkletAudioWorkletNodeDisconnectConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_disconnect", + argNames: ["that"], + ); + + @override + Future webAudioApiWorkletAudioWorkletNodeDisconnectOutput( + {required AudioWorkletNode that, required BigInt output}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + sse_encode_usize(output, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 172, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiWorkletAudioWorkletNodeDisconnectOutputConstMeta, + argValues: [that, output], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiWorkletAudioWorkletNodeDisconnectOutputConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_disconnect_output", + argNames: ["that", "output"], + ); + + @override + Future webAudioApiWorkletAudioWorkletNodeNumberOfInputs( + {required AudioWorkletNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 173, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_usize, + decodeErrorData: null, + ), + constMeta: kWebAudioApiWorkletAudioWorkletNodeNumberOfInputsConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiWorkletAudioWorkletNodeNumberOfInputsConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_number_of_inputs", + argNames: ["that"], + ); + + @override + Future webAudioApiWorkletAudioWorkletNodeNumberOfOutputs( + {required AudioWorkletNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 174, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_usize, + decodeErrorData: null, + ), + constMeta: kWebAudioApiWorkletAudioWorkletNodeNumberOfOutputsConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiWorkletAudioWorkletNodeNumberOfOutputsConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_number_of_outputs", + argNames: ["that"], + ); + + @override + Future webAudioApiWorkletAudioWorkletNodeParameters( + {required AudioWorkletNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 175, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiWorkletAudioWorkletNodeParametersConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiWorkletAudioWorkletNodeParametersConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_parameters", + argNames: ["that"], + ); + + @override + Future webAudioApiWorkletAudioWorkletNodeRegistration( + {required AudioWorkletNode that}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 176, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiWorkletAudioWorkletNodeRegistrationConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kWebAudioApiWorkletAudioWorkletNodeRegistrationConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_registration", + argNames: ["that"], + ); + + @override + Future webAudioApiWorkletAudioWorkletNodeSetChannelCount( + {required AudioWorkletNode that, required BigInt v}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + sse_encode_usize(v, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 177, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kWebAudioApiWorkletAudioWorkletNodeSetChannelCountConstMeta, + argValues: [that, v], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiWorkletAudioWorkletNodeSetChannelCountConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_set_channel_count", + argNames: ["that", "v"], + ); + + @override + Future webAudioApiWorkletAudioWorkletNodeSetChannelCountMode( + {required AudioWorkletNode that, required ChannelCountMode v}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + sse_encode_channel_count_mode(v, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 178, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiWorkletAudioWorkletNodeSetChannelCountModeConstMeta, + argValues: [that, v], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiWorkletAudioWorkletNodeSetChannelCountModeConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_set_channel_count_mode", + argNames: ["that", "v"], + ); + + @override + Future webAudioApiWorkletAudioWorkletNodeSetChannelInterpretation( + {required AudioWorkletNode that, required ChannelInterpretation v}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + that, serializer); + sse_encode_channel_interpretation(v, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 179, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: + kWebAudioApiWorkletAudioWorkletNodeSetChannelInterpretationConstMeta, + argValues: [that, v], + apiImpl: this, + )); + } + + TaskConstMeta + get kWebAudioApiWorkletAudioWorkletNodeSetChannelInterpretationConstMeta => + const TaskConstMeta( + debugName: "AudioWorkletNode_set_channel_interpretation", + argNames: ["that", "v"], + ); + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AnalyserNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AnalyserNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioBuffer => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioBuffer => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioBufferSourceNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioBufferSourceNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioContext => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioContext => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioContextRegistration => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioContextRegistration => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioDestinationNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioDestinationNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioParam => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioParam => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioProcessingEvent => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioProcessingEvent => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioRenderCapacity => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioRenderCapacity => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioRenderCapacityEvent => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioRenderCapacityEvent => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_AudioWorkletNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_AudioWorkletNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_BiquadFilterNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_BiquadFilterNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_BlobEvent => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_BlobEvent => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_ConcreteBaseAudioContext => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_ConcreteBaseAudioContext => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_ConstantSourceNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_ConstantSourceNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_ConvolverNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_ConvolverNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_DelayNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_DelayNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_DummyStruct => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_DummyStruct => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_DynamicsCompressorNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_DynamicsCompressorNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode; + + RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_Event => + wire.rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent; + + RustArcDecrementStrongCountFnType get rust_arc_decrement_strong_count_Event => + wire.rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_GainNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_GainNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_MediaRecorder => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_MediaRecorder => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_MediaStream => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_MediaStream => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_MediaStreamAudioDestinationNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_MediaStreamAudioDestinationNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_MediaStreamAudioSourceNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_MediaStreamAudioSourceNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_MediaStreamConstraints => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_MediaStreamConstraints => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_MediaStreamTrack => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_MediaStreamTrack => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_MediaStreamTrackAudioSourceNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_MediaStreamTrackAudioSourceNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_OfflineAudioCompletionEvent => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_OfflineAudioCompletionEvent => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_OfflineAudioContext => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_OfflineAudioContext => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_OscillatorNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_OscillatorNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_PannerNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_PannerNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_PeriodicWave => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_PeriodicWave => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_ScriptProcessorNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_ScriptProcessorNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_StereoPannerNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_StereoPannerNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_WaveShaperNode => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_WaveShaperNode => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode; + + @protected + AnyhowException dco_decode_AnyhowException(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AnyhowException(raw as String); + } + + @protected + AnalyserNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AnalyserNode.frbInternalDcoDecode(raw as List); + } + + @protected + AudioBuffer + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioBuffer.frbInternalDcoDecode(raw as List); + } + + @protected + AudioBufferSourceNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioBufferSourceNode.frbInternalDcoDecode(raw as List); + } + + @protected + AudioContext + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioContext.frbInternalDcoDecode(raw as List); + } + + @protected + AudioDestinationNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioDestinationNode.frbInternalDcoDecode(raw as List); + } + + @protected + AudioParam + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioParam.frbInternalDcoDecode(raw as List); + } + + @protected + AudioProcessingEvent + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioProcessingEvent.frbInternalDcoDecode(raw as List); + } + + @protected + AudioRenderCapacity + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioRenderCapacity.frbInternalDcoDecode(raw as List); + } + + @protected + AudioRenderCapacityEvent + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioRenderCapacityEvent.frbInternalDcoDecode(raw as List); + } + + @protected + AudioWorkletNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioWorkletNode.frbInternalDcoDecode(raw as List); + } + + @protected + BiquadFilterNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return BiquadFilterNode.frbInternalDcoDecode(raw as List); + } + + @protected + BlobEvent + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return BlobEvent.frbInternalDcoDecode(raw as List); + } + + @protected + ConcreteBaseAudioContext + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ConcreteBaseAudioContext.frbInternalDcoDecode(raw as List); + } + + @protected + ConstantSourceNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ConstantSourceNode.frbInternalDcoDecode(raw as List); + } + + @protected + ConvolverNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ConvolverNode.frbInternalDcoDecode(raw as List); + } + + @protected + DelayNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return DelayNode.frbInternalDcoDecode(raw as List); + } + + @protected + DummyStruct + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return DummyStruct.frbInternalDcoDecode(raw as List); + } + + @protected + DynamicsCompressorNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return DynamicsCompressorNode.frbInternalDcoDecode(raw as List); + } + + @protected + Event + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return Event.frbInternalDcoDecode(raw as List); + } + + @protected + GainNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return GainNode.frbInternalDcoDecode(raw as List); + } + + @protected + MediaRecorder + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaRecorder.frbInternalDcoDecode(raw as List); + } + + @protected + MediaStream + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStream.frbInternalDcoDecode(raw as List); + } + + @protected + MediaStreamAudioDestinationNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStreamAudioDestinationNode.frbInternalDcoDecode( + raw as List); + } + + @protected + MediaStreamAudioSourceNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStreamAudioSourceNode.frbInternalDcoDecode( + raw as List); + } + + @protected + MediaStreamConstraints + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStreamConstraints.frbInternalDcoDecode(raw as List); + } + + @protected + MediaStreamTrack + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStreamTrack.frbInternalDcoDecode(raw as List); + } + + @protected + MediaStreamTrackAudioSourceNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStreamTrackAudioSourceNode.frbInternalDcoDecode( + raw as List); + } + + @protected + OfflineAudioCompletionEvent + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return OfflineAudioCompletionEvent.frbInternalDcoDecode( + raw as List); + } + + @protected + OfflineAudioContext + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return OfflineAudioContext.frbInternalDcoDecode(raw as List); + } + + @protected + OscillatorNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return OscillatorNode.frbInternalDcoDecode(raw as List); + } + + @protected + PannerNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return PannerNode.frbInternalDcoDecode(raw as List); + } + + @protected + PeriodicWave + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return PeriodicWave.frbInternalDcoDecode(raw as List); + } + + @protected + ScriptProcessorNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ScriptProcessorNode.frbInternalDcoDecode(raw as List); + } + + @protected + StereoPannerNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return StereoPannerNode.frbInternalDcoDecode(raw as List); + } + + @protected + WaveShaperNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return WaveShaperNode.frbInternalDcoDecode(raw as List); + } + + @protected + AnalyserNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AnalyserNode.frbInternalDcoDecode(raw as List); + } + + @protected + AudioBuffer + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioBuffer.frbInternalDcoDecode(raw as List); + } + + @protected + AudioBufferSourceNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioBufferSourceNode.frbInternalDcoDecode(raw as List); + } + + @protected + AudioProcessingEvent + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioProcessingEvent.frbInternalDcoDecode(raw as List); + } + + @protected + AudioRenderCapacityEvent + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioRenderCapacityEvent.frbInternalDcoDecode(raw as List); + } + + @protected + BiquadFilterNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return BiquadFilterNode.frbInternalDcoDecode(raw as List); + } + + @protected + BlobEvent + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return BlobEvent.frbInternalDcoDecode(raw as List); + } + + @protected + ConvolverNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ConvolverNode.frbInternalDcoDecode(raw as List); + } + + @protected + OfflineAudioCompletionEvent + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return OfflineAudioCompletionEvent.frbInternalDcoDecode( + raw as List); + } + + @protected + OfflineAudioContext + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return OfflineAudioContext.frbInternalDcoDecode(raw as List); + } + + @protected + OscillatorNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return OscillatorNode.frbInternalDcoDecode(raw as List); + } + + @protected + PannerNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return PannerNode.frbInternalDcoDecode(raw as List); + } + + @protected + WaveShaperNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return WaveShaperNode.frbInternalDcoDecode(raw as List); + } + + @protected + AnalyserNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AnalyserNode.frbInternalDcoDecode(raw as List); + } + + @protected + AudioBuffer + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioBuffer.frbInternalDcoDecode(raw as List); + } + + @protected + AudioBufferSourceNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioBufferSourceNode.frbInternalDcoDecode(raw as List); + } + + @protected + AudioContext + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioContext.frbInternalDcoDecode(raw as List); + } + + @protected + AudioContextRegistration + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioContextRegistration.frbInternalDcoDecode(raw as List); + } + + @protected + AudioDestinationNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioDestinationNode.frbInternalDcoDecode(raw as List); + } + + @protected + AudioParam + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioParam.frbInternalDcoDecode(raw as List); + } + + @protected + AudioProcessingEvent + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioProcessingEvent.frbInternalDcoDecode(raw as List); + } + + @protected + AudioRenderCapacity + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioRenderCapacity.frbInternalDcoDecode(raw as List); + } + + @protected + AudioRenderCapacityEvent + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioRenderCapacityEvent.frbInternalDcoDecode(raw as List); + } + + @protected + AudioWorkletNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioWorkletNode.frbInternalDcoDecode(raw as List); + } + + @protected + BiquadFilterNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return BiquadFilterNode.frbInternalDcoDecode(raw as List); + } + + @protected + BlobEvent + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return BlobEvent.frbInternalDcoDecode(raw as List); + } + + @protected + ConcreteBaseAudioContext + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ConcreteBaseAudioContext.frbInternalDcoDecode(raw as List); + } + + @protected + ConstantSourceNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ConstantSourceNode.frbInternalDcoDecode(raw as List); + } + + @protected + ConvolverNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ConvolverNode.frbInternalDcoDecode(raw as List); + } + + @protected + DelayNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return DelayNode.frbInternalDcoDecode(raw as List); + } + + @protected + DynamicsCompressorNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return DynamicsCompressorNode.frbInternalDcoDecode(raw as List); + } + + @protected + GainNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return GainNode.frbInternalDcoDecode(raw as List); + } + + @protected + MediaRecorder + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaRecorder.frbInternalDcoDecode(raw as List); + } + + @protected + MediaStream + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStream.frbInternalDcoDecode(raw as List); + } + + @protected + MediaStreamAudioDestinationNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStreamAudioDestinationNode.frbInternalDcoDecode( + raw as List); + } + + @protected + MediaStreamTrack + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStreamTrack.frbInternalDcoDecode(raw as List); + } + + @protected + OfflineAudioCompletionEvent + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return OfflineAudioCompletionEvent.frbInternalDcoDecode( + raw as List); + } + + @protected + OfflineAudioContext + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return OfflineAudioContext.frbInternalDcoDecode(raw as List); + } + + @protected + OscillatorNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return OscillatorNode.frbInternalDcoDecode(raw as List); + } + + @protected + PannerNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return PannerNode.frbInternalDcoDecode(raw as List); + } + + @protected + ScriptProcessorNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ScriptProcessorNode.frbInternalDcoDecode(raw as List); + } + + @protected + StereoPannerNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return StereoPannerNode.frbInternalDcoDecode(raw as List); + } + + @protected + WaveShaperNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return WaveShaperNode.frbInternalDcoDecode(raw as List); + } + + @protected + AnalyserNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AnalyserNode.frbInternalDcoDecode(raw as List); + } + + @protected + AudioBuffer + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioBuffer.frbInternalDcoDecode(raw as List); + } + + @protected + AudioBufferSourceNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioBufferSourceNode.frbInternalDcoDecode(raw as List); + } + + @protected + AudioContext + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioContext.frbInternalDcoDecode(raw as List); + } + + @protected + AudioContextRegistration + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioContextRegistration.frbInternalDcoDecode(raw as List); + } + + @protected + AudioDestinationNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioDestinationNode.frbInternalDcoDecode(raw as List); + } + + @protected + AudioParam + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioParam.frbInternalDcoDecode(raw as List); + } + + @protected + AudioProcessingEvent + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioProcessingEvent.frbInternalDcoDecode(raw as List); + } + + @protected + AudioRenderCapacity + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioRenderCapacity.frbInternalDcoDecode(raw as List); + } + + @protected + AudioRenderCapacityEvent + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioRenderCapacityEvent.frbInternalDcoDecode(raw as List); + } + + @protected + AudioWorkletNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioWorkletNode.frbInternalDcoDecode(raw as List); + } + + @protected + BiquadFilterNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return BiquadFilterNode.frbInternalDcoDecode(raw as List); + } + + @protected + BlobEvent + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return BlobEvent.frbInternalDcoDecode(raw as List); + } + + @protected + ConcreteBaseAudioContext + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ConcreteBaseAudioContext.frbInternalDcoDecode(raw as List); + } + + @protected + ConstantSourceNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ConstantSourceNode.frbInternalDcoDecode(raw as List); + } + + @protected + ConvolverNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ConvolverNode.frbInternalDcoDecode(raw as List); + } + + @protected + DelayNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return DelayNode.frbInternalDcoDecode(raw as List); + } + + @protected + DummyStruct + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return DummyStruct.frbInternalDcoDecode(raw as List); + } + + @protected + DynamicsCompressorNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return DynamicsCompressorNode.frbInternalDcoDecode(raw as List); + } + + @protected + Event + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return Event.frbInternalDcoDecode(raw as List); + } + + @protected + GainNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return GainNode.frbInternalDcoDecode(raw as List); + } + + @protected + MediaRecorder + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaRecorder.frbInternalDcoDecode(raw as List); + } + + @protected + MediaStream + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStream.frbInternalDcoDecode(raw as List); + } + + @protected + MediaStreamAudioDestinationNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStreamAudioDestinationNode.frbInternalDcoDecode( + raw as List); + } + + @protected + MediaStreamAudioSourceNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStreamAudioSourceNode.frbInternalDcoDecode( + raw as List); + } + + @protected + MediaStreamConstraints + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStreamConstraints.frbInternalDcoDecode(raw as List); + } + + @protected + MediaStreamTrack + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStreamTrack.frbInternalDcoDecode(raw as List); + } + + @protected + MediaStreamTrackAudioSourceNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStreamTrackAudioSourceNode.frbInternalDcoDecode( + raw as List); + } + + @protected + OfflineAudioCompletionEvent + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return OfflineAudioCompletionEvent.frbInternalDcoDecode( + raw as List); + } + + @protected + OfflineAudioContext + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return OfflineAudioContext.frbInternalDcoDecode(raw as List); + } + + @protected + OscillatorNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return OscillatorNode.frbInternalDcoDecode(raw as List); + } + + @protected + PannerNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return PannerNode.frbInternalDcoDecode(raw as List); + } + + @protected + PeriodicWave + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return PeriodicWave.frbInternalDcoDecode(raw as List); + } + + @protected + ScriptProcessorNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ScriptProcessorNode.frbInternalDcoDecode(raw as List); + } + + @protected + StereoPannerNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return StereoPannerNode.frbInternalDcoDecode(raw as List); + } + + @protected + WaveShaperNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return WaveShaperNode.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 + AudioBufferOptions dco_decode_audio_buffer_options(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 AudioBufferOptions( + numberOfChannels: dco_decode_usize(arr[0]), + length: dco_decode_usize(arr[1]), + sampleRate: dco_decode_f_32(arr[2]), + ); + } + + @protected + AudioContextLatencyCategory dco_decode_audio_context_latency_category( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + switch (raw[0]) { + case 0: + return AudioContextLatencyCategory_Balanced(); + case 1: + return AudioContextLatencyCategory_Interactive(); + case 2: + return AudioContextLatencyCategory_Playback(); + case 3: + return AudioContextLatencyCategory_Custom( + dco_decode_f_64(raw[1]), + ); + default: + throw Exception("unreachable"); + } + } + + @protected + AudioContextOptions dco_decode_audio_context_options(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 4) + throw Exception('unexpected arr length: expect 4 but see ${arr.length}'); + return AudioContextOptions( + latencyHint: dco_decode_audio_context_latency_category(arr[0]), + sampleRate: dco_decode_opt_box_autoadd_f_32(arr[1]), + sinkId: dco_decode_String(arr[2]), + renderSizeHint: dco_decode_audio_context_render_size_category(arr[3]), + ); + } + + @protected + AudioContextRenderSizeCategory dco_decode_audio_context_render_size_category( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AudioContextRenderSizeCategory.values[raw as int]; + } + + @protected + AudioRenderCapacityOptions dco_decode_audio_render_capacity_options( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 1) + throw Exception('unexpected arr length: expect 1 but see ${arr.length}'); + return AudioRenderCapacityOptions( + updateInterval: dco_decode_f_64(arr[0]), + ); + } + + @protected + AutomationRate dco_decode_automation_rate(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return AutomationRate.values[raw as int]; + } + + @protected + BiquadFilterType dco_decode_biquad_filter_type(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return BiquadFilterType.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 + AudioBufferOptions dco_decode_box_autoadd_audio_buffer_options(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return dco_decode_audio_buffer_options(raw); + } + + @protected + AudioContextOptions dco_decode_box_autoadd_audio_context_options( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return dco_decode_audio_context_options(raw); + } + + @protected + AudioRenderCapacityOptions + dco_decode_box_autoadd_audio_render_capacity_options(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return dco_decode_audio_render_capacity_options(raw); + } + + @protected + double dco_decode_box_autoadd_f_32(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as double; + } + + @protected + ChannelCountMode dco_decode_channel_count_mode(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ChannelCountMode.values[raw as int]; + } + + @protected + ChannelInterpretation dco_decode_channel_interpretation(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return ChannelInterpretation.values[raw as int]; + } + + @protected + DistanceModelType dco_decode_distance_model_type(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return DistanceModelType.values[raw as int]; + } + + @protected + double dco_decode_f_32(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as double; + } + + @protected + double dco_decode_f_64(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as double; + } + + @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_generatedRustAutoOpaqueInnerMediaStreamTrack( + 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_generatedRustAutoOpaqueInnerMediaStreamTrack) + .toList(); + } + + @protected + List dco_decode_list_list_prim_f_32_strict(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return (raw as List) + .map(dco_decode_list_prim_f_32_strict) + .toList(); + } + + @protected + List dco_decode_list_prim_f_32_loose(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as List; + } + + @protected + Float32List dco_decode_list_prim_f_32_strict(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as Float32List; + } + + @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 + MediaStreamTrackState dco_decode_media_stream_track_state(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return MediaStreamTrackState.values[raw as int]; + } + + @protected + double? dco_decode_opt_box_autoadd_f_32(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw == null ? null : dco_decode_box_autoadd_f_32(raw); + } + + @protected + OscillatorType dco_decode_oscillator_type(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return OscillatorType.values[raw as int]; + } + + @protected + OverSampleType dco_decode_over_sample_type(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return OverSampleType.values[raw as int]; + } + + @protected + PanningModelType dco_decode_panning_model_type(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return PanningModelType.values[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 + AnalyserNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AnalyserNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioBuffer + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioBuffer.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioBufferSourceNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioBufferSourceNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioContext + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioContext.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioDestinationNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioDestinationNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioParam + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioParam.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioProcessingEvent + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioProcessingEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioRenderCapacity + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioRenderCapacity.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioRenderCapacityEvent + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioRenderCapacityEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioWorkletNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioWorkletNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + BiquadFilterNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return BiquadFilterNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + BlobEvent + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return BlobEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + ConcreteBaseAudioContext + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ConcreteBaseAudioContext.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + ConstantSourceNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ConstantSourceNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + ConvolverNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ConvolverNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + DelayNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return DelayNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + DummyStruct + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return DummyStruct.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + DynamicsCompressorNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return DynamicsCompressorNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + Event + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return Event.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + GainNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return GainNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaRecorder + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaRecorder.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStream + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStream.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStreamAudioDestinationNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStreamAudioDestinationNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStreamAudioSourceNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStreamAudioSourceNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStreamConstraints + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStreamConstraints.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStreamTrack + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStreamTrack.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStreamTrackAudioSourceNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStreamTrackAudioSourceNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + OfflineAudioCompletionEvent + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return OfflineAudioCompletionEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + OfflineAudioContext + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return OfflineAudioContext.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + OscillatorNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return OscillatorNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + PannerNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return PannerNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + PeriodicWave + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return PeriodicWave.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + ScriptProcessorNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ScriptProcessorNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + StereoPannerNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return StereoPannerNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + WaveShaperNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return WaveShaperNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AnalyserNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AnalyserNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioBuffer + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioBuffer.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioBufferSourceNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioBufferSourceNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioProcessingEvent + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioProcessingEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioRenderCapacityEvent + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioRenderCapacityEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + BiquadFilterNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return BiquadFilterNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + BlobEvent + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return BlobEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + ConvolverNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ConvolverNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + OfflineAudioCompletionEvent + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return OfflineAudioCompletionEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + OfflineAudioContext + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return OfflineAudioContext.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + OscillatorNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return OscillatorNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + PannerNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return PannerNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + WaveShaperNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return WaveShaperNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AnalyserNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AnalyserNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioBuffer + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioBuffer.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioBufferSourceNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioBufferSourceNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioContext + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioContext.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioContextRegistration + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioContextRegistration.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioDestinationNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioDestinationNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioParam + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioParam.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioProcessingEvent + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioProcessingEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioRenderCapacity + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioRenderCapacity.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioRenderCapacityEvent + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioRenderCapacityEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioWorkletNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioWorkletNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + BiquadFilterNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return BiquadFilterNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + BlobEvent + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return BlobEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + ConcreteBaseAudioContext + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ConcreteBaseAudioContext.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + ConstantSourceNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ConstantSourceNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + ConvolverNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ConvolverNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + DelayNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return DelayNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + DynamicsCompressorNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return DynamicsCompressorNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + GainNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return GainNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaRecorder + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaRecorder.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStream + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStream.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStreamAudioDestinationNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStreamAudioDestinationNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStreamTrack + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStreamTrack.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + OfflineAudioCompletionEvent + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return OfflineAudioCompletionEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + OfflineAudioContext + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return OfflineAudioContext.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + OscillatorNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return OscillatorNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + PannerNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return PannerNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + ScriptProcessorNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ScriptProcessorNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + StereoPannerNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return StereoPannerNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + WaveShaperNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return WaveShaperNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AnalyserNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AnalyserNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioBuffer + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioBuffer.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioBufferSourceNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioBufferSourceNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioContext + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioContext.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioContextRegistration + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioContextRegistration.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioDestinationNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioDestinationNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioParam + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioParam.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioProcessingEvent + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioProcessingEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioRenderCapacity + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioRenderCapacity.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioRenderCapacityEvent + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioRenderCapacityEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + AudioWorkletNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return AudioWorkletNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + BiquadFilterNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return BiquadFilterNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + BlobEvent + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return BlobEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + ConcreteBaseAudioContext + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ConcreteBaseAudioContext.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + ConstantSourceNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ConstantSourceNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + ConvolverNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ConvolverNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + DelayNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return DelayNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + DummyStruct + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return DummyStruct.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + DynamicsCompressorNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return DynamicsCompressorNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + Event + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return Event.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + GainNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return GainNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaRecorder + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaRecorder.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStream + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStream.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStreamAudioDestinationNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStreamAudioDestinationNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStreamAudioSourceNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStreamAudioSourceNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStreamConstraints + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStreamConstraints.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStreamTrack + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStreamTrack.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + MediaStreamTrackAudioSourceNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return MediaStreamTrackAudioSourceNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + OfflineAudioCompletionEvent + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return OfflineAudioCompletionEvent.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + OfflineAudioContext + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return OfflineAudioContext.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + OscillatorNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return OscillatorNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + PannerNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return PannerNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + PeriodicWave + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return PeriodicWave.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + ScriptProcessorNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return ScriptProcessorNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + StereoPannerNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return StereoPannerNode.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + WaveShaperNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return WaveShaperNode.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 + AudioBufferOptions sse_decode_audio_buffer_options( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_numberOfChannels = sse_decode_usize(deserializer); + var var_length = sse_decode_usize(deserializer); + var var_sampleRate = sse_decode_f_32(deserializer); + return AudioBufferOptions( + numberOfChannels: var_numberOfChannels, + length: var_length, + sampleRate: var_sampleRate); + } + + @protected + AudioContextLatencyCategory sse_decode_audio_context_latency_category( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + + var tag_ = sse_decode_i_32(deserializer); + switch (tag_) { + case 0: + return AudioContextLatencyCategory_Balanced(); + case 1: + return AudioContextLatencyCategory_Interactive(); + case 2: + return AudioContextLatencyCategory_Playback(); + case 3: + var var_field0 = sse_decode_f_64(deserializer); + return AudioContextLatencyCategory_Custom(var_field0); + default: + throw UnimplementedError(''); + } + } + + @protected + AudioContextOptions sse_decode_audio_context_options( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_latencyHint = + sse_decode_audio_context_latency_category(deserializer); + var var_sampleRate = sse_decode_opt_box_autoadd_f_32(deserializer); + var var_sinkId = sse_decode_String(deserializer); + var var_renderSizeHint = + sse_decode_audio_context_render_size_category(deserializer); + return AudioContextOptions( + latencyHint: var_latencyHint, + sampleRate: var_sampleRate, + sinkId: var_sinkId, + renderSizeHint: var_renderSizeHint); + } + + @protected + AudioContextRenderSizeCategory sse_decode_audio_context_render_size_category( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_i_32(deserializer); + return AudioContextRenderSizeCategory.values[inner]; + } + + @protected + AudioRenderCapacityOptions sse_decode_audio_render_capacity_options( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_updateInterval = sse_decode_f_64(deserializer); + return AudioRenderCapacityOptions(updateInterval: var_updateInterval); + } + + @protected + AutomationRate sse_decode_automation_rate(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_i_32(deserializer); + return AutomationRate.values[inner]; + } + + @protected + BiquadFilterType sse_decode_biquad_filter_type(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_i_32(deserializer); + return BiquadFilterType.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 + AudioBufferOptions sse_decode_box_autoadd_audio_buffer_options( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return (sse_decode_audio_buffer_options(deserializer)); + } + + @protected + AudioContextOptions sse_decode_box_autoadd_audio_context_options( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return (sse_decode_audio_context_options(deserializer)); + } + + @protected + AudioRenderCapacityOptions + sse_decode_box_autoadd_audio_render_capacity_options( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return (sse_decode_audio_render_capacity_options(deserializer)); + } + + @protected + double sse_decode_box_autoadd_f_32(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return (sse_decode_f_32(deserializer)); + } + + @protected + ChannelCountMode sse_decode_channel_count_mode(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_i_32(deserializer); + return ChannelCountMode.values[inner]; + } + + @protected + ChannelInterpretation sse_decode_channel_interpretation( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_i_32(deserializer); + return ChannelInterpretation.values[inner]; + } + + @protected + DistanceModelType sse_decode_distance_model_type( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_i_32(deserializer); + return DistanceModelType.values[inner]; + } + + @protected + double sse_decode_f_32(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getFloat32(); + } + + @protected + double sse_decode_f_64(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getFloat64(); + } + + @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_generatedRustAutoOpaqueInnerMediaStreamTrack( + 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_generatedRustAutoOpaqueInnerMediaStreamTrack( + deserializer)); + } + return ans_; + } + + @protected + List sse_decode_list_list_prim_f_32_strict( + 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_list_prim_f_32_strict(deserializer)); + } + return ans_; + } + + @protected + List sse_decode_list_prim_f_32_loose(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var len_ = sse_decode_i_32(deserializer); + return deserializer.buffer.getFloat32List(len_); + } + + @protected + Float32List sse_decode_list_prim_f_32_strict(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var len_ = sse_decode_i_32(deserializer); + return deserializer.buffer.getFloat32List(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 + MediaStreamTrackState sse_decode_media_stream_track_state( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_i_32(deserializer); + return MediaStreamTrackState.values[inner]; + } + + @protected + double? sse_decode_opt_box_autoadd_f_32(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + + if (sse_decode_bool(deserializer)) { + return (sse_decode_box_autoadd_f_32(deserializer)); + } else { + return null; + } + } + + @protected + OscillatorType sse_decode_oscillator_type(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_i_32(deserializer); + return OscillatorType.values[inner]; + } + + @protected + OverSampleType sse_decode_over_sample_type(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_i_32(deserializer); + return OverSampleType.values[inner]; + } + + @protected + PanningModelType sse_decode_panning_model_type(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_i_32(deserializer); + return PanningModelType.values[inner]; + } + + @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 + 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_generatedRustAutoOpaqueInnerAnalyserNode( + AnalyserNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + AudioBuffer self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + AudioBufferSourceNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + AudioContext self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + AudioDestinationNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + AudioParam self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + AudioProcessingEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + AudioRenderCapacity self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + AudioRenderCapacityEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + AudioWorkletNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + BiquadFilterNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + BlobEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ConcreteBaseAudioContext self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ConstantSourceNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ConvolverNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + DelayNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + DummyStruct self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + DynamicsCompressorNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + Event self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + GainNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + MediaRecorder self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + MediaStream self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + MediaStreamAudioDestinationNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + MediaStreamAudioSourceNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + MediaStreamConstraints self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + MediaStreamTrack self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + MediaStreamTrackAudioSourceNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + OfflineAudioCompletionEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + OfflineAudioContext self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + OscillatorNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + PannerNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + PeriodicWave self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ScriptProcessorNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + StereoPannerNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + WaveShaperNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + AnalyserNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + AudioBuffer self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + AudioBufferSourceNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + AudioProcessingEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + AudioRenderCapacityEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + BiquadFilterNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + BlobEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ConvolverNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + OfflineAudioCompletionEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + OfflineAudioContext self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + OscillatorNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + PannerNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + WaveShaperNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + AnalyserNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + AudioBuffer self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + AudioBufferSourceNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + AudioContext self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + AudioContextRegistration self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + AudioDestinationNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + AudioParam self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + AudioProcessingEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + AudioRenderCapacity self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + AudioRenderCapacityEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + AudioWorkletNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + BiquadFilterNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + BlobEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ConcreteBaseAudioContext self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ConstantSourceNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ConvolverNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + DelayNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + DynamicsCompressorNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + GainNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + MediaRecorder self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + MediaStream self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + MediaStreamAudioDestinationNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + MediaStreamTrack self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + OfflineAudioCompletionEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + OfflineAudioContext self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + OscillatorNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + PannerNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ScriptProcessorNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + StereoPannerNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + WaveShaperNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: false), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + AnalyserNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + AudioBuffer self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + AudioBufferSourceNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + AudioContext self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + AudioContextRegistration self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + AudioDestinationNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + AudioParam self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + AudioProcessingEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + AudioRenderCapacity self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + AudioRenderCapacityEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + AudioWorkletNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + BiquadFilterNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + BlobEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ConcreteBaseAudioContext self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ConstantSourceNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ConvolverNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + DelayNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + DummyStruct self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + DynamicsCompressorNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + Event self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + GainNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + MediaRecorder self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + MediaStream self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + MediaStreamAudioDestinationNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + MediaStreamAudioSourceNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + MediaStreamConstraints self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + MediaStreamTrack self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + MediaStreamTrackAudioSourceNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + OfflineAudioCompletionEvent self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + OfflineAudioContext self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + OscillatorNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + PannerNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + PeriodicWave self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ScriptProcessorNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + StereoPannerNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + WaveShaperNode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.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_audio_buffer_options( + AudioBufferOptions self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize(self.numberOfChannels, serializer); + sse_encode_usize(self.length, serializer); + sse_encode_f_32(self.sampleRate, serializer); + } + + @protected + void sse_encode_audio_context_latency_category( + AudioContextLatencyCategory self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + switch (self) { + case AudioContextLatencyCategory_Balanced(): + sse_encode_i_32(0, serializer); + case AudioContextLatencyCategory_Interactive(): + sse_encode_i_32(1, serializer); + case AudioContextLatencyCategory_Playback(): + sse_encode_i_32(2, serializer); + case AudioContextLatencyCategory_Custom(field0: final field0): + sse_encode_i_32(3, serializer); + sse_encode_f_64(field0, serializer); + default: + throw UnimplementedError(''); + } + } + + @protected + void sse_encode_audio_context_options( + AudioContextOptions self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_audio_context_latency_category(self.latencyHint, serializer); + sse_encode_opt_box_autoadd_f_32(self.sampleRate, serializer); + sse_encode_String(self.sinkId, serializer); + sse_encode_audio_context_render_size_category( + self.renderSizeHint, serializer); + } + + @protected + void sse_encode_audio_context_render_size_category( + AudioContextRenderSizeCategory self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.index, serializer); + } + + @protected + void sse_encode_audio_render_capacity_options( + AudioRenderCapacityOptions self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_f_64(self.updateInterval, serializer); + } + + @protected + void sse_encode_automation_rate( + AutomationRate self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.index, serializer); + } + + @protected + void sse_encode_biquad_filter_type( + BiquadFilterType 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_box_autoadd_audio_buffer_options( + AudioBufferOptions self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_audio_buffer_options(self, serializer); + } + + @protected + void sse_encode_box_autoadd_audio_context_options( + AudioContextOptions self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_audio_context_options(self, serializer); + } + + @protected + void sse_encode_box_autoadd_audio_render_capacity_options( + AudioRenderCapacityOptions self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_audio_render_capacity_options(self, serializer); + } + + @protected + void sse_encode_box_autoadd_f_32(double self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_f_32(self, serializer); + } + + @protected + void sse_encode_channel_count_mode( + ChannelCountMode self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.index, serializer); + } + + @protected + void sse_encode_channel_interpretation( + ChannelInterpretation self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.index, serializer); + } + + @protected + void sse_encode_distance_model_type( + DistanceModelType self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.index, serializer); + } + + @protected + void sse_encode_f_32(double self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putFloat32(self); + } + + @protected + void sse_encode_f_64(double self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putFloat64(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); + } + + @protected + void + sse_encode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + 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_generatedRustAutoOpaqueInnerMediaStreamTrack( + item, serializer); + } + } + + @protected + void sse_encode_list_list_prim_f_32_strict( + 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_list_prim_f_32_strict(item, serializer); + } + } + + @protected + void sse_encode_list_prim_f_32_loose( + List self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.length, serializer); + serializer.buffer.putFloat32List( + self is Float32List ? self : Float32List.fromList(self)); + } + + @protected + void sse_encode_list_prim_f_32_strict( + Float32List self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.length, serializer); + serializer.buffer.putFloat32List(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_media_stream_track_state( + MediaStreamTrackState self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.index, serializer); + } + + @protected + void sse_encode_opt_box_autoadd_f_32(double? self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + + sse_encode_bool(self != null, serializer); + if (self != null) { + sse_encode_box_autoadd_f_32(self, serializer); + } + } + + @protected + void sse_encode_oscillator_type( + OscillatorType self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.index, serializer); + } + + @protected + void sse_encode_over_sample_type( + OverSampleType self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.index, serializer); + } + + @protected + void sse_encode_panning_model_type( + PanningModelType 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_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); + } +} diff --git a/frb_example/integrate_third_party/lib/src/rust/frb_generated.io.dart b/frb_example/integrate_third_party/lib/src/rust/frb_generated.io.dart new file mode 100644 index 0000000000..00f6a349bc --- /dev/null +++ b/frb_example/integrate_third_party/lib/src/rust/frb_generated.io.dart @@ -0,0 +1,3385 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +// 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/override_web_audio_api.dart'; +import 'api/simple.dart'; +import 'dart:async'; +import 'dart:convert'; +import 'dart:ffi' as ffi; +import 'frb_generated.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated_io.dart'; +import 'third_party/web_audio_api.dart'; +import 'third_party/web_audio_api/context.dart'; +import 'third_party/web_audio_api/media_devices.dart'; +import 'third_party/web_audio_api/media_recorder.dart'; +import 'third_party/web_audio_api/media_streams.dart'; +import 'third_party/web_audio_api/node.dart'; +import 'third_party/web_audio_api/worklet.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_AnalyserNodePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNodePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioBufferPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioBufferSourceNodePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNodePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioContextPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioContextRegistrationPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistrationPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioDestinationNodePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNodePtr; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_AudioParamPtr => + wire._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParamPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioProcessingEventPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEventPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioRenderCapacityPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioRenderCapacityEventPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEventPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioWorkletNodePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNodePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_BiquadFilterNodePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNodePtr; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_BlobEventPtr => + wire._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEventPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ConcreteBaseAudioContextPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContextPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ConstantSourceNodePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNodePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ConvolverNodePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNodePtr; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_DelayNodePtr => + wire._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNodePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_DummyStructPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStructPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_DynamicsCompressorNodePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNodePtr; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_EventPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEventPtr; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_GainNodePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNodePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaRecorderPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorderPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamAudioDestinationNodePtr => + wire._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNodePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamAudioSourceNodePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNodePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamConstraintsPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraintsPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamTrackPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamTrackAudioSourceNodePtr => + wire._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNodePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_OfflineAudioCompletionEventPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEventPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_OfflineAudioContextPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContextPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_OscillatorNodePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNodePtr; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_PannerNodePtr => + wire._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNodePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_PeriodicWavePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWavePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ScriptProcessorNodePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNodePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_StereoPannerNodePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNodePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_WaveShaperNodePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNodePtr; + + @protected + AnyhowException dco_decode_AnyhowException(dynamic raw); + + @protected + AnalyserNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic raw); + + @protected + AudioBuffer + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic raw); + + @protected + AudioBufferSourceNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic raw); + + @protected + AudioContext + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + dynamic raw); + + @protected + AudioDestinationNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + dynamic raw); + + @protected + AudioParam + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + dynamic raw); + + @protected + AudioProcessingEvent + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic raw); + + @protected + AudioRenderCapacity + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + dynamic raw); + + @protected + AudioRenderCapacityEvent + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic raw); + + @protected + AudioWorkletNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + dynamic raw); + + @protected + BiquadFilterNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic raw); + + @protected + BlobEvent + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic raw); + + @protected + ConcreteBaseAudioContext + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + dynamic raw); + + @protected + ConstantSourceNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + dynamic raw); + + @protected + ConvolverNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic raw); + + @protected + DelayNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + dynamic raw); + + @protected + DummyStruct + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + dynamic raw); + + @protected + DynamicsCompressorNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + dynamic raw); + + @protected + Event + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + dynamic raw); + + @protected + GainNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + dynamic raw); + + @protected + MediaRecorder + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + dynamic raw); + + @protected + MediaStream + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + dynamic raw); + + @protected + MediaStreamAudioDestinationNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + dynamic raw); + + @protected + MediaStreamAudioSourceNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + dynamic raw); + + @protected + MediaStreamConstraints + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + dynamic raw); + + @protected + MediaStreamTrack + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic raw); + + @protected + MediaStreamTrackAudioSourceNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + dynamic raw); + + @protected + OfflineAudioCompletionEvent + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic raw); + + @protected + OfflineAudioContext + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic raw); + + @protected + OscillatorNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic raw); + + @protected + PannerNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic raw); + + @protected + PeriodicWave + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + dynamic raw); + + @protected + ScriptProcessorNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + dynamic raw); + + @protected + StereoPannerNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + dynamic raw); + + @protected + WaveShaperNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic raw); + + @protected + AnalyserNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic raw); + + @protected + AudioBuffer + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic raw); + + @protected + AudioBufferSourceNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic raw); + + @protected + AudioProcessingEvent + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic raw); + + @protected + AudioRenderCapacityEvent + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic raw); + + @protected + BiquadFilterNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic raw); + + @protected + BlobEvent + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic raw); + + @protected + ConvolverNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic raw); + + @protected + OfflineAudioCompletionEvent + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic raw); + + @protected + OfflineAudioContext + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic raw); + + @protected + OscillatorNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic raw); + + @protected + PannerNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic raw); + + @protected + WaveShaperNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic raw); + + @protected + AnalyserNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic raw); + + @protected + AudioBuffer + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic raw); + + @protected + AudioBufferSourceNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic raw); + + @protected + AudioContext + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + dynamic raw); + + @protected + AudioContextRegistration + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + dynamic raw); + + @protected + AudioDestinationNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + dynamic raw); + + @protected + AudioParam + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + dynamic raw); + + @protected + AudioProcessingEvent + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic raw); + + @protected + AudioRenderCapacity + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + dynamic raw); + + @protected + AudioRenderCapacityEvent + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic raw); + + @protected + AudioWorkletNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + dynamic raw); + + @protected + BiquadFilterNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic raw); + + @protected + BlobEvent + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic raw); + + @protected + ConcreteBaseAudioContext + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + dynamic raw); + + @protected + ConstantSourceNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + dynamic raw); + + @protected + ConvolverNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic raw); + + @protected + DelayNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + dynamic raw); + + @protected + DynamicsCompressorNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + dynamic raw); + + @protected + GainNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + dynamic raw); + + @protected + MediaRecorder + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + dynamic raw); + + @protected + MediaStream + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + dynamic raw); + + @protected + MediaStreamAudioDestinationNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + dynamic raw); + + @protected + MediaStreamTrack + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic raw); + + @protected + OfflineAudioCompletionEvent + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic raw); + + @protected + OfflineAudioContext + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic raw); + + @protected + OscillatorNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic raw); + + @protected + PannerNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic raw); + + @protected + ScriptProcessorNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + dynamic raw); + + @protected + StereoPannerNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + dynamic raw); + + @protected + WaveShaperNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic raw); + + @protected + AnalyserNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic raw); + + @protected + AudioBuffer + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic raw); + + @protected + AudioBufferSourceNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic raw); + + @protected + AudioContext + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + dynamic raw); + + @protected + AudioContextRegistration + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + dynamic raw); + + @protected + AudioDestinationNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + dynamic raw); + + @protected + AudioParam + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + dynamic raw); + + @protected + AudioProcessingEvent + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic raw); + + @protected + AudioRenderCapacity + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + dynamic raw); + + @protected + AudioRenderCapacityEvent + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic raw); + + @protected + AudioWorkletNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + dynamic raw); + + @protected + BiquadFilterNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic raw); + + @protected + BlobEvent + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic raw); + + @protected + ConcreteBaseAudioContext + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + dynamic raw); + + @protected + ConstantSourceNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + dynamic raw); + + @protected + ConvolverNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic raw); + + @protected + DelayNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + dynamic raw); + + @protected + DummyStruct + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + dynamic raw); + + @protected + DynamicsCompressorNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + dynamic raw); + + @protected + Event + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + dynamic raw); + + @protected + GainNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + dynamic raw); + + @protected + MediaRecorder + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + dynamic raw); + + @protected + MediaStream + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + dynamic raw); + + @protected + MediaStreamAudioDestinationNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + dynamic raw); + + @protected + MediaStreamAudioSourceNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + dynamic raw); + + @protected + MediaStreamConstraints + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + dynamic raw); + + @protected + MediaStreamTrack + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic raw); + + @protected + MediaStreamTrackAudioSourceNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + dynamic raw); + + @protected + OfflineAudioCompletionEvent + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic raw); + + @protected + OfflineAudioContext + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic raw); + + @protected + OscillatorNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic raw); + + @protected + PannerNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic raw); + + @protected + PeriodicWave + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + dynamic raw); + + @protected + ScriptProcessorNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + dynamic raw); + + @protected + StereoPannerNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + dynamic raw); + + @protected + WaveShaperNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic raw); + + @protected + String dco_decode_String(dynamic raw); + + @protected + AudioBufferOptions dco_decode_audio_buffer_options(dynamic raw); + + @protected + AudioContextLatencyCategory dco_decode_audio_context_latency_category( + dynamic raw); + + @protected + AudioContextOptions dco_decode_audio_context_options(dynamic raw); + + @protected + AudioContextRenderSizeCategory dco_decode_audio_context_render_size_category( + dynamic raw); + + @protected + AudioRenderCapacityOptions dco_decode_audio_render_capacity_options( + dynamic raw); + + @protected + AutomationRate dco_decode_automation_rate(dynamic raw); + + @protected + BiquadFilterType dco_decode_biquad_filter_type(dynamic raw); + + @protected + bool dco_decode_bool(dynamic raw); + + @protected + AudioBufferOptions dco_decode_box_autoadd_audio_buffer_options(dynamic raw); + + @protected + AudioContextOptions dco_decode_box_autoadd_audio_context_options(dynamic raw); + + @protected + AudioRenderCapacityOptions + dco_decode_box_autoadd_audio_render_capacity_options(dynamic raw); + + @protected + double dco_decode_box_autoadd_f_32(dynamic raw); + + @protected + ChannelCountMode dco_decode_channel_count_mode(dynamic raw); + + @protected + ChannelInterpretation dco_decode_channel_interpretation(dynamic raw); + + @protected + DistanceModelType dco_decode_distance_model_type(dynamic raw); + + @protected + double dco_decode_f_32(dynamic raw); + + @protected + double dco_decode_f_64(dynamic raw); + + @protected + int dco_decode_i_32(dynamic raw); + + @protected + List + dco_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic raw); + + @protected + List dco_decode_list_list_prim_f_32_strict(dynamic raw); + + @protected + List dco_decode_list_prim_f_32_loose(dynamic raw); + + @protected + Float32List dco_decode_list_prim_f_32_strict(dynamic raw); + + @protected + Uint8List dco_decode_list_prim_u_8_strict(dynamic raw); + + @protected + MediaStreamTrackState dco_decode_media_stream_track_state(dynamic raw); + + @protected + double? dco_decode_opt_box_autoadd_f_32(dynamic raw); + + @protected + OscillatorType dco_decode_oscillator_type(dynamic raw); + + @protected + OverSampleType dco_decode_over_sample_type(dynamic raw); + + @protected + PanningModelType dco_decode_panning_model_type(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 + AnalyserNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + SseDeserializer deserializer); + + @protected + AudioBuffer + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + SseDeserializer deserializer); + + @protected + AudioBufferSourceNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + SseDeserializer deserializer); + + @protected + AudioContext + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + SseDeserializer deserializer); + + @protected + AudioDestinationNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + SseDeserializer deserializer); + + @protected + AudioParam + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + SseDeserializer deserializer); + + @protected + AudioProcessingEvent + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + SseDeserializer deserializer); + + @protected + AudioRenderCapacity + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + SseDeserializer deserializer); + + @protected + AudioRenderCapacityEvent + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + SseDeserializer deserializer); + + @protected + AudioWorkletNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + SseDeserializer deserializer); + + @protected + BiquadFilterNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + SseDeserializer deserializer); + + @protected + BlobEvent + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + SseDeserializer deserializer); + + @protected + ConcreteBaseAudioContext + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + SseDeserializer deserializer); + + @protected + ConstantSourceNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + SseDeserializer deserializer); + + @protected + ConvolverNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + SseDeserializer deserializer); + + @protected + DelayNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + SseDeserializer deserializer); + + @protected + DummyStruct + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + SseDeserializer deserializer); + + @protected + DynamicsCompressorNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + SseDeserializer deserializer); + + @protected + Event + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + SseDeserializer deserializer); + + @protected + GainNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + SseDeserializer deserializer); + + @protected + MediaRecorder + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + SseDeserializer deserializer); + + @protected + MediaStream + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + SseDeserializer deserializer); + + @protected + MediaStreamAudioDestinationNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + SseDeserializer deserializer); + + @protected + MediaStreamAudioSourceNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + SseDeserializer deserializer); + + @protected + MediaStreamConstraints + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + SseDeserializer deserializer); + + @protected + MediaStreamTrack + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + SseDeserializer deserializer); + + @protected + MediaStreamTrackAudioSourceNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + SseDeserializer deserializer); + + @protected + OfflineAudioCompletionEvent + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + SseDeserializer deserializer); + + @protected + OfflineAudioContext + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + SseDeserializer deserializer); + + @protected + OscillatorNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + SseDeserializer deserializer); + + @protected + PannerNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + SseDeserializer deserializer); + + @protected + PeriodicWave + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + SseDeserializer deserializer); + + @protected + ScriptProcessorNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + SseDeserializer deserializer); + + @protected + StereoPannerNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + SseDeserializer deserializer); + + @protected + WaveShaperNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + SseDeserializer deserializer); + + @protected + AnalyserNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + SseDeserializer deserializer); + + @protected + AudioBuffer + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + SseDeserializer deserializer); + + @protected + AudioBufferSourceNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + SseDeserializer deserializer); + + @protected + AudioProcessingEvent + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + SseDeserializer deserializer); + + @protected + AudioRenderCapacityEvent + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + SseDeserializer deserializer); + + @protected + BiquadFilterNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + SseDeserializer deserializer); + + @protected + BlobEvent + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + SseDeserializer deserializer); + + @protected + ConvolverNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + SseDeserializer deserializer); + + @protected + OfflineAudioCompletionEvent + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + SseDeserializer deserializer); + + @protected + OfflineAudioContext + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + SseDeserializer deserializer); + + @protected + OscillatorNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + SseDeserializer deserializer); + + @protected + PannerNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + SseDeserializer deserializer); + + @protected + WaveShaperNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + SseDeserializer deserializer); + + @protected + AnalyserNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + SseDeserializer deserializer); + + @protected + AudioBuffer + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + SseDeserializer deserializer); + + @protected + AudioBufferSourceNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + SseDeserializer deserializer); + + @protected + AudioContext + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + SseDeserializer deserializer); + + @protected + AudioContextRegistration + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + SseDeserializer deserializer); + + @protected + AudioDestinationNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + SseDeserializer deserializer); + + @protected + AudioParam + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + SseDeserializer deserializer); + + @protected + AudioProcessingEvent + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + SseDeserializer deserializer); + + @protected + AudioRenderCapacity + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + SseDeserializer deserializer); + + @protected + AudioRenderCapacityEvent + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + SseDeserializer deserializer); + + @protected + AudioWorkletNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + SseDeserializer deserializer); + + @protected + BiquadFilterNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + SseDeserializer deserializer); + + @protected + BlobEvent + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + SseDeserializer deserializer); + + @protected + ConcreteBaseAudioContext + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + SseDeserializer deserializer); + + @protected + ConstantSourceNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + SseDeserializer deserializer); + + @protected + ConvolverNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + SseDeserializer deserializer); + + @protected + DelayNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + SseDeserializer deserializer); + + @protected + DynamicsCompressorNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + SseDeserializer deserializer); + + @protected + GainNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + SseDeserializer deserializer); + + @protected + MediaRecorder + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + SseDeserializer deserializer); + + @protected + MediaStream + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + SseDeserializer deserializer); + + @protected + MediaStreamAudioDestinationNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + SseDeserializer deserializer); + + @protected + MediaStreamTrack + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + SseDeserializer deserializer); + + @protected + OfflineAudioCompletionEvent + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + SseDeserializer deserializer); + + @protected + OfflineAudioContext + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + SseDeserializer deserializer); + + @protected + OscillatorNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + SseDeserializer deserializer); + + @protected + PannerNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + SseDeserializer deserializer); + + @protected + ScriptProcessorNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + SseDeserializer deserializer); + + @protected + StereoPannerNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + SseDeserializer deserializer); + + @protected + WaveShaperNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + SseDeserializer deserializer); + + @protected + AnalyserNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + SseDeserializer deserializer); + + @protected + AudioBuffer + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + SseDeserializer deserializer); + + @protected + AudioBufferSourceNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + SseDeserializer deserializer); + + @protected + AudioContext + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + SseDeserializer deserializer); + + @protected + AudioContextRegistration + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + SseDeserializer deserializer); + + @protected + AudioDestinationNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + SseDeserializer deserializer); + + @protected + AudioParam + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + SseDeserializer deserializer); + + @protected + AudioProcessingEvent + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + SseDeserializer deserializer); + + @protected + AudioRenderCapacity + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + SseDeserializer deserializer); + + @protected + AudioRenderCapacityEvent + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + SseDeserializer deserializer); + + @protected + AudioWorkletNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + SseDeserializer deserializer); + + @protected + BiquadFilterNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + SseDeserializer deserializer); + + @protected + BlobEvent + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + SseDeserializer deserializer); + + @protected + ConcreteBaseAudioContext + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + SseDeserializer deserializer); + + @protected + ConstantSourceNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + SseDeserializer deserializer); + + @protected + ConvolverNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + SseDeserializer deserializer); + + @protected + DelayNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + SseDeserializer deserializer); + + @protected + DummyStruct + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + SseDeserializer deserializer); + + @protected + DynamicsCompressorNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + SseDeserializer deserializer); + + @protected + Event + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + SseDeserializer deserializer); + + @protected + GainNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + SseDeserializer deserializer); + + @protected + MediaRecorder + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + SseDeserializer deserializer); + + @protected + MediaStream + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + SseDeserializer deserializer); + + @protected + MediaStreamAudioDestinationNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + SseDeserializer deserializer); + + @protected + MediaStreamAudioSourceNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + SseDeserializer deserializer); + + @protected + MediaStreamConstraints + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + SseDeserializer deserializer); + + @protected + MediaStreamTrack + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + SseDeserializer deserializer); + + @protected + MediaStreamTrackAudioSourceNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + SseDeserializer deserializer); + + @protected + OfflineAudioCompletionEvent + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + SseDeserializer deserializer); + + @protected + OfflineAudioContext + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + SseDeserializer deserializer); + + @protected + OscillatorNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + SseDeserializer deserializer); + + @protected + PannerNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + SseDeserializer deserializer); + + @protected + PeriodicWave + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + SseDeserializer deserializer); + + @protected + ScriptProcessorNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + SseDeserializer deserializer); + + @protected + StereoPannerNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + SseDeserializer deserializer); + + @protected + WaveShaperNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + SseDeserializer deserializer); + + @protected + String sse_decode_String(SseDeserializer deserializer); + + @protected + AudioBufferOptions sse_decode_audio_buffer_options( + SseDeserializer deserializer); + + @protected + AudioContextLatencyCategory sse_decode_audio_context_latency_category( + SseDeserializer deserializer); + + @protected + AudioContextOptions sse_decode_audio_context_options( + SseDeserializer deserializer); + + @protected + AudioContextRenderSizeCategory sse_decode_audio_context_render_size_category( + SseDeserializer deserializer); + + @protected + AudioRenderCapacityOptions sse_decode_audio_render_capacity_options( + SseDeserializer deserializer); + + @protected + AutomationRate sse_decode_automation_rate(SseDeserializer deserializer); + + @protected + BiquadFilterType sse_decode_biquad_filter_type(SseDeserializer deserializer); + + @protected + bool sse_decode_bool(SseDeserializer deserializer); + + @protected + AudioBufferOptions sse_decode_box_autoadd_audio_buffer_options( + SseDeserializer deserializer); + + @protected + AudioContextOptions sse_decode_box_autoadd_audio_context_options( + SseDeserializer deserializer); + + @protected + AudioRenderCapacityOptions + sse_decode_box_autoadd_audio_render_capacity_options( + SseDeserializer deserializer); + + @protected + double sse_decode_box_autoadd_f_32(SseDeserializer deserializer); + + @protected + ChannelCountMode sse_decode_channel_count_mode(SseDeserializer deserializer); + + @protected + ChannelInterpretation sse_decode_channel_interpretation( + SseDeserializer deserializer); + + @protected + DistanceModelType sse_decode_distance_model_type( + SseDeserializer deserializer); + + @protected + double sse_decode_f_32(SseDeserializer deserializer); + + @protected + double sse_decode_f_64(SseDeserializer deserializer); + + @protected + int sse_decode_i_32(SseDeserializer deserializer); + + @protected + List + sse_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + SseDeserializer deserializer); + + @protected + List sse_decode_list_list_prim_f_32_strict( + SseDeserializer deserializer); + + @protected + List sse_decode_list_prim_f_32_loose(SseDeserializer deserializer); + + @protected + Float32List sse_decode_list_prim_f_32_strict(SseDeserializer deserializer); + + @protected + Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer); + + @protected + MediaStreamTrackState sse_decode_media_stream_track_state( + SseDeserializer deserializer); + + @protected + double? sse_decode_opt_box_autoadd_f_32(SseDeserializer deserializer); + + @protected + OscillatorType sse_decode_oscillator_type(SseDeserializer deserializer); + + @protected + OverSampleType sse_decode_over_sample_type(SseDeserializer deserializer); + + @protected + PanningModelType sse_decode_panning_model_type(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 + void sse_encode_AnyhowException( + AnyhowException self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + AnalyserNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + AudioBuffer self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + AudioBufferSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + AudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + AudioDestinationNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + AudioParam self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + AudioProcessingEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + AudioRenderCapacity self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + AudioRenderCapacityEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + AudioWorkletNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + BiquadFilterNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + BlobEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ConcreteBaseAudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ConstantSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ConvolverNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + DelayNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + DummyStruct self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + DynamicsCompressorNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + Event self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + GainNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + MediaRecorder self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + MediaStream self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + MediaStreamAudioDestinationNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + MediaStreamAudioSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + MediaStreamConstraints self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + MediaStreamTrack self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + MediaStreamTrackAudioSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + OfflineAudioCompletionEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + OfflineAudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + OscillatorNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + PannerNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + PeriodicWave self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ScriptProcessorNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + StereoPannerNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + WaveShaperNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + AnalyserNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + AudioBuffer self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + AudioBufferSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + AudioProcessingEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + AudioRenderCapacityEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + BiquadFilterNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + BlobEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ConvolverNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + OfflineAudioCompletionEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + OfflineAudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + OscillatorNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + PannerNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + WaveShaperNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + AnalyserNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + AudioBuffer self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + AudioBufferSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + AudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + AudioContextRegistration self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + AudioDestinationNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + AudioParam self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + AudioProcessingEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + AudioRenderCapacity self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + AudioRenderCapacityEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + AudioWorkletNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + BiquadFilterNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + BlobEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ConcreteBaseAudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ConstantSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ConvolverNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + DelayNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + DynamicsCompressorNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + GainNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + MediaRecorder self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + MediaStream self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + MediaStreamAudioDestinationNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + MediaStreamTrack self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + OfflineAudioCompletionEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + OfflineAudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + OscillatorNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + PannerNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ScriptProcessorNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + StereoPannerNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + WaveShaperNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + AnalyserNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + AudioBuffer self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + AudioBufferSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + AudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + AudioContextRegistration self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + AudioDestinationNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + AudioParam self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + AudioProcessingEvent self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + AudioRenderCapacity self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + AudioRenderCapacityEvent self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + AudioWorkletNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + BiquadFilterNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + BlobEvent self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ConcreteBaseAudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ConstantSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ConvolverNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + DelayNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + DummyStruct self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + DynamicsCompressorNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + Event self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + GainNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + MediaRecorder self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + MediaStream self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + MediaStreamAudioDestinationNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + MediaStreamAudioSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + MediaStreamConstraints self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + MediaStreamTrack self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + MediaStreamTrackAudioSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + OfflineAudioCompletionEvent self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + OfflineAudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + OscillatorNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + PannerNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + PeriodicWave self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ScriptProcessorNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + StereoPannerNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + WaveShaperNode self, SseSerializer serializer); + + @protected + void sse_encode_String(String self, SseSerializer serializer); + + @protected + void sse_encode_audio_buffer_options( + AudioBufferOptions self, SseSerializer serializer); + + @protected + void sse_encode_audio_context_latency_category( + AudioContextLatencyCategory self, SseSerializer serializer); + + @protected + void sse_encode_audio_context_options( + AudioContextOptions self, SseSerializer serializer); + + @protected + void sse_encode_audio_context_render_size_category( + AudioContextRenderSizeCategory self, SseSerializer serializer); + + @protected + void sse_encode_audio_render_capacity_options( + AudioRenderCapacityOptions self, SseSerializer serializer); + + @protected + void sse_encode_automation_rate( + AutomationRate self, SseSerializer serializer); + + @protected + void sse_encode_biquad_filter_type( + BiquadFilterType self, SseSerializer serializer); + + @protected + void sse_encode_bool(bool self, SseSerializer serializer); + + @protected + void sse_encode_box_autoadd_audio_buffer_options( + AudioBufferOptions self, SseSerializer serializer); + + @protected + void sse_encode_box_autoadd_audio_context_options( + AudioContextOptions self, SseSerializer serializer); + + @protected + void sse_encode_box_autoadd_audio_render_capacity_options( + AudioRenderCapacityOptions self, SseSerializer serializer); + + @protected + void sse_encode_box_autoadd_f_32(double self, SseSerializer serializer); + + @protected + void sse_encode_channel_count_mode( + ChannelCountMode self, SseSerializer serializer); + + @protected + void sse_encode_channel_interpretation( + ChannelInterpretation self, SseSerializer serializer); + + @protected + void sse_encode_distance_model_type( + DistanceModelType self, SseSerializer serializer); + + @protected + void sse_encode_f_32(double self, SseSerializer serializer); + + @protected + void sse_encode_f_64(double self, SseSerializer serializer); + + @protected + void sse_encode_i_32(int self, SseSerializer serializer); + + @protected + void + sse_encode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + List self, SseSerializer serializer); + + @protected + void sse_encode_list_list_prim_f_32_strict( + List self, SseSerializer serializer); + + @protected + void sse_encode_list_prim_f_32_loose( + List self, SseSerializer serializer); + + @protected + void sse_encode_list_prim_f_32_strict( + Float32List self, SseSerializer serializer); + + @protected + void sse_encode_list_prim_u_8_strict( + Uint8List self, SseSerializer serializer); + + @protected + void sse_encode_media_stream_track_state( + MediaStreamTrackState self, SseSerializer serializer); + + @protected + void sse_encode_opt_box_autoadd_f_32(double? self, SseSerializer serializer); + + @protected + void sse_encode_oscillator_type( + OscillatorType self, SseSerializer serializer); + + @protected + void sse_encode_over_sample_type( + OverSampleType self, SseSerializer serializer); + + @protected + void sse_encode_panning_model_type( + PanningModelType 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); +} + +// 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_generatedRustAutoOpaqueInnerAnalyserNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistrationPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistrationPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistrationPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistrationPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParamPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParamPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParamPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParamPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEventPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEventPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEventPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEventPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEventPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEventPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEventPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEventPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEventPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEventPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEventPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEventPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContextPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContextPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContextPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContextPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStructPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStructPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStructPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStructPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEventPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEventPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEventPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEventPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorderPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorderPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorderPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorderPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraintsPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraintsPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraintsPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraintsPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEventPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEventPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEventPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEventPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContextPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContextPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContextPtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContextPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWavePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWavePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWavePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWavePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNodePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNodePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNodePtr = + _lookup)>>( + 'frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNodePtr + .asFunction)>(); +} diff --git a/frb_example/integrate_third_party/lib/src/rust/frb_generated.web.dart b/frb_example/integrate_third_party/lib/src/rust/frb_generated.web.dart new file mode 100644 index 0000000000..ed9fff4363 --- /dev/null +++ b/frb_example/integrate_third_party/lib/src/rust/frb_generated.web.dart @@ -0,0 +1,2959 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +// 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/override_web_audio_api.dart'; +import 'api/simple.dart'; +import 'dart:async'; +import 'dart:convert'; +import 'frb_generated.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated_web.dart'; +import 'third_party/web_audio_api.dart'; +import 'third_party/web_audio_api/context.dart'; +import 'third_party/web_audio_api/media_devices.dart'; +import 'third_party/web_audio_api/media_recorder.dart'; +import 'third_party/web_audio_api/media_streams.dart'; +import 'third_party/web_audio_api/node.dart'; +import 'third_party/web_audio_api/worklet.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_AnalyserNodePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioBufferPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioBufferSourceNodePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioContextPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioContextRegistrationPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioDestinationNodePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_AudioParamPtr => + wire.rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioProcessingEventPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioRenderCapacityPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioRenderCapacityEventPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_AudioWorkletNodePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_BiquadFilterNodePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_BlobEventPtr => + wire.rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ConcreteBaseAudioContextPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ConstantSourceNodePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ConvolverNodePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_DelayNodePtr => + wire.rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_DummyStructPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_DynamicsCompressorNodePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_EventPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_GainNodePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaRecorderPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamAudioDestinationNodePtr => + wire.rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamAudioSourceNodePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamConstraintsPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamTrackPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_MediaStreamTrackAudioSourceNodePtr => + wire.rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_OfflineAudioCompletionEventPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_OfflineAudioContextPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_OscillatorNodePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_PannerNodePtr => + wire.rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_PeriodicWavePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_ScriptProcessorNodePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_StereoPannerNodePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_WaveShaperNodePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode; + + @protected + AnyhowException dco_decode_AnyhowException(dynamic raw); + + @protected + AnalyserNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic raw); + + @protected + AudioBuffer + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic raw); + + @protected + AudioBufferSourceNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic raw); + + @protected + AudioContext + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + dynamic raw); + + @protected + AudioDestinationNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + dynamic raw); + + @protected + AudioParam + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + dynamic raw); + + @protected + AudioProcessingEvent + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic raw); + + @protected + AudioRenderCapacity + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + dynamic raw); + + @protected + AudioRenderCapacityEvent + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic raw); + + @protected + AudioWorkletNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + dynamic raw); + + @protected + BiquadFilterNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic raw); + + @protected + BlobEvent + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic raw); + + @protected + ConcreteBaseAudioContext + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + dynamic raw); + + @protected + ConstantSourceNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + dynamic raw); + + @protected + ConvolverNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic raw); + + @protected + DelayNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + dynamic raw); + + @protected + DummyStruct + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + dynamic raw); + + @protected + DynamicsCompressorNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + dynamic raw); + + @protected + Event + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + dynamic raw); + + @protected + GainNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + dynamic raw); + + @protected + MediaRecorder + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + dynamic raw); + + @protected + MediaStream + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + dynamic raw); + + @protected + MediaStreamAudioDestinationNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + dynamic raw); + + @protected + MediaStreamAudioSourceNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + dynamic raw); + + @protected + MediaStreamConstraints + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + dynamic raw); + + @protected + MediaStreamTrack + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic raw); + + @protected + MediaStreamTrackAudioSourceNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + dynamic raw); + + @protected + OfflineAudioCompletionEvent + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic raw); + + @protected + OfflineAudioContext + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic raw); + + @protected + OscillatorNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic raw); + + @protected + PannerNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic raw); + + @protected + PeriodicWave + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + dynamic raw); + + @protected + ScriptProcessorNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + dynamic raw); + + @protected + StereoPannerNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + dynamic raw); + + @protected + WaveShaperNode + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic raw); + + @protected + AnalyserNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic raw); + + @protected + AudioBuffer + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic raw); + + @protected + AudioBufferSourceNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic raw); + + @protected + AudioProcessingEvent + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic raw); + + @protected + AudioRenderCapacityEvent + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic raw); + + @protected + BiquadFilterNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic raw); + + @protected + BlobEvent + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic raw); + + @protected + ConvolverNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic raw); + + @protected + OfflineAudioCompletionEvent + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic raw); + + @protected + OfflineAudioContext + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic raw); + + @protected + OscillatorNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic raw); + + @protected + PannerNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic raw); + + @protected + WaveShaperNode + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic raw); + + @protected + AnalyserNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic raw); + + @protected + AudioBuffer + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic raw); + + @protected + AudioBufferSourceNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic raw); + + @protected + AudioContext + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + dynamic raw); + + @protected + AudioContextRegistration + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + dynamic raw); + + @protected + AudioDestinationNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + dynamic raw); + + @protected + AudioParam + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + dynamic raw); + + @protected + AudioProcessingEvent + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic raw); + + @protected + AudioRenderCapacity + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + dynamic raw); + + @protected + AudioRenderCapacityEvent + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic raw); + + @protected + AudioWorkletNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + dynamic raw); + + @protected + BiquadFilterNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic raw); + + @protected + BlobEvent + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic raw); + + @protected + ConcreteBaseAudioContext + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + dynamic raw); + + @protected + ConstantSourceNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + dynamic raw); + + @protected + ConvolverNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic raw); + + @protected + DelayNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + dynamic raw); + + @protected + DynamicsCompressorNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + dynamic raw); + + @protected + GainNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + dynamic raw); + + @protected + MediaRecorder + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + dynamic raw); + + @protected + MediaStream + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + dynamic raw); + + @protected + MediaStreamAudioDestinationNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + dynamic raw); + + @protected + MediaStreamTrack + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic raw); + + @protected + OfflineAudioCompletionEvent + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic raw); + + @protected + OfflineAudioContext + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic raw); + + @protected + OscillatorNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic raw); + + @protected + PannerNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic raw); + + @protected + ScriptProcessorNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + dynamic raw); + + @protected + StereoPannerNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + dynamic raw); + + @protected + WaveShaperNode + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic raw); + + @protected + AnalyserNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic raw); + + @protected + AudioBuffer + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic raw); + + @protected + AudioBufferSourceNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic raw); + + @protected + AudioContext + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + dynamic raw); + + @protected + AudioContextRegistration + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + dynamic raw); + + @protected + AudioDestinationNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + dynamic raw); + + @protected + AudioParam + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + dynamic raw); + + @protected + AudioProcessingEvent + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic raw); + + @protected + AudioRenderCapacity + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + dynamic raw); + + @protected + AudioRenderCapacityEvent + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic raw); + + @protected + AudioWorkletNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + dynamic raw); + + @protected + BiquadFilterNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic raw); + + @protected + BlobEvent + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic raw); + + @protected + ConcreteBaseAudioContext + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + dynamic raw); + + @protected + ConstantSourceNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + dynamic raw); + + @protected + ConvolverNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic raw); + + @protected + DelayNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + dynamic raw); + + @protected + DummyStruct + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + dynamic raw); + + @protected + DynamicsCompressorNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + dynamic raw); + + @protected + Event + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + dynamic raw); + + @protected + GainNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + dynamic raw); + + @protected + MediaRecorder + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + dynamic raw); + + @protected + MediaStream + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + dynamic raw); + + @protected + MediaStreamAudioDestinationNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + dynamic raw); + + @protected + MediaStreamAudioSourceNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + dynamic raw); + + @protected + MediaStreamConstraints + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + dynamic raw); + + @protected + MediaStreamTrack + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic raw); + + @protected + MediaStreamTrackAudioSourceNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + dynamic raw); + + @protected + OfflineAudioCompletionEvent + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic raw); + + @protected + OfflineAudioContext + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic raw); + + @protected + OscillatorNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic raw); + + @protected + PannerNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic raw); + + @protected + PeriodicWave + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + dynamic raw); + + @protected + ScriptProcessorNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + dynamic raw); + + @protected + StereoPannerNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + dynamic raw); + + @protected + WaveShaperNode + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic raw); + + @protected + String dco_decode_String(dynamic raw); + + @protected + AudioBufferOptions dco_decode_audio_buffer_options(dynamic raw); + + @protected + AudioContextLatencyCategory dco_decode_audio_context_latency_category( + dynamic raw); + + @protected + AudioContextOptions dco_decode_audio_context_options(dynamic raw); + + @protected + AudioContextRenderSizeCategory dco_decode_audio_context_render_size_category( + dynamic raw); + + @protected + AudioRenderCapacityOptions dco_decode_audio_render_capacity_options( + dynamic raw); + + @protected + AutomationRate dco_decode_automation_rate(dynamic raw); + + @protected + BiquadFilterType dco_decode_biquad_filter_type(dynamic raw); + + @protected + bool dco_decode_bool(dynamic raw); + + @protected + AudioBufferOptions dco_decode_box_autoadd_audio_buffer_options(dynamic raw); + + @protected + AudioContextOptions dco_decode_box_autoadd_audio_context_options(dynamic raw); + + @protected + AudioRenderCapacityOptions + dco_decode_box_autoadd_audio_render_capacity_options(dynamic raw); + + @protected + double dco_decode_box_autoadd_f_32(dynamic raw); + + @protected + ChannelCountMode dco_decode_channel_count_mode(dynamic raw); + + @protected + ChannelInterpretation dco_decode_channel_interpretation(dynamic raw); + + @protected + DistanceModelType dco_decode_distance_model_type(dynamic raw); + + @protected + double dco_decode_f_32(dynamic raw); + + @protected + double dco_decode_f_64(dynamic raw); + + @protected + int dco_decode_i_32(dynamic raw); + + @protected + List + dco_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic raw); + + @protected + List dco_decode_list_list_prim_f_32_strict(dynamic raw); + + @protected + List dco_decode_list_prim_f_32_loose(dynamic raw); + + @protected + Float32List dco_decode_list_prim_f_32_strict(dynamic raw); + + @protected + Uint8List dco_decode_list_prim_u_8_strict(dynamic raw); + + @protected + MediaStreamTrackState dco_decode_media_stream_track_state(dynamic raw); + + @protected + double? dco_decode_opt_box_autoadd_f_32(dynamic raw); + + @protected + OscillatorType dco_decode_oscillator_type(dynamic raw); + + @protected + OverSampleType dco_decode_over_sample_type(dynamic raw); + + @protected + PanningModelType dco_decode_panning_model_type(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 + AnalyserNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + SseDeserializer deserializer); + + @protected + AudioBuffer + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + SseDeserializer deserializer); + + @protected + AudioBufferSourceNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + SseDeserializer deserializer); + + @protected + AudioContext + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + SseDeserializer deserializer); + + @protected + AudioDestinationNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + SseDeserializer deserializer); + + @protected + AudioParam + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + SseDeserializer deserializer); + + @protected + AudioProcessingEvent + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + SseDeserializer deserializer); + + @protected + AudioRenderCapacity + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + SseDeserializer deserializer); + + @protected + AudioRenderCapacityEvent + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + SseDeserializer deserializer); + + @protected + AudioWorkletNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + SseDeserializer deserializer); + + @protected + BiquadFilterNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + SseDeserializer deserializer); + + @protected + BlobEvent + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + SseDeserializer deserializer); + + @protected + ConcreteBaseAudioContext + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + SseDeserializer deserializer); + + @protected + ConstantSourceNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + SseDeserializer deserializer); + + @protected + ConvolverNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + SseDeserializer deserializer); + + @protected + DelayNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + SseDeserializer deserializer); + + @protected + DummyStruct + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + SseDeserializer deserializer); + + @protected + DynamicsCompressorNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + SseDeserializer deserializer); + + @protected + Event + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + SseDeserializer deserializer); + + @protected + GainNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + SseDeserializer deserializer); + + @protected + MediaRecorder + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + SseDeserializer deserializer); + + @protected + MediaStream + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + SseDeserializer deserializer); + + @protected + MediaStreamAudioDestinationNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + SseDeserializer deserializer); + + @protected + MediaStreamAudioSourceNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + SseDeserializer deserializer); + + @protected + MediaStreamConstraints + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + SseDeserializer deserializer); + + @protected + MediaStreamTrack + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + SseDeserializer deserializer); + + @protected + MediaStreamTrackAudioSourceNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + SseDeserializer deserializer); + + @protected + OfflineAudioCompletionEvent + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + SseDeserializer deserializer); + + @protected + OfflineAudioContext + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + SseDeserializer deserializer); + + @protected + OscillatorNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + SseDeserializer deserializer); + + @protected + PannerNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + SseDeserializer deserializer); + + @protected + PeriodicWave + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + SseDeserializer deserializer); + + @protected + ScriptProcessorNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + SseDeserializer deserializer); + + @protected + StereoPannerNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + SseDeserializer deserializer); + + @protected + WaveShaperNode + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + SseDeserializer deserializer); + + @protected + AnalyserNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + SseDeserializer deserializer); + + @protected + AudioBuffer + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + SseDeserializer deserializer); + + @protected + AudioBufferSourceNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + SseDeserializer deserializer); + + @protected + AudioProcessingEvent + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + SseDeserializer deserializer); + + @protected + AudioRenderCapacityEvent + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + SseDeserializer deserializer); + + @protected + BiquadFilterNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + SseDeserializer deserializer); + + @protected + BlobEvent + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + SseDeserializer deserializer); + + @protected + ConvolverNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + SseDeserializer deserializer); + + @protected + OfflineAudioCompletionEvent + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + SseDeserializer deserializer); + + @protected + OfflineAudioContext + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + SseDeserializer deserializer); + + @protected + OscillatorNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + SseDeserializer deserializer); + + @protected + PannerNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + SseDeserializer deserializer); + + @protected + WaveShaperNode + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + SseDeserializer deserializer); + + @protected + AnalyserNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + SseDeserializer deserializer); + + @protected + AudioBuffer + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + SseDeserializer deserializer); + + @protected + AudioBufferSourceNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + SseDeserializer deserializer); + + @protected + AudioContext + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + SseDeserializer deserializer); + + @protected + AudioContextRegistration + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + SseDeserializer deserializer); + + @protected + AudioDestinationNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + SseDeserializer deserializer); + + @protected + AudioParam + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + SseDeserializer deserializer); + + @protected + AudioProcessingEvent + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + SseDeserializer deserializer); + + @protected + AudioRenderCapacity + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + SseDeserializer deserializer); + + @protected + AudioRenderCapacityEvent + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + SseDeserializer deserializer); + + @protected + AudioWorkletNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + SseDeserializer deserializer); + + @protected + BiquadFilterNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + SseDeserializer deserializer); + + @protected + BlobEvent + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + SseDeserializer deserializer); + + @protected + ConcreteBaseAudioContext + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + SseDeserializer deserializer); + + @protected + ConstantSourceNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + SseDeserializer deserializer); + + @protected + ConvolverNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + SseDeserializer deserializer); + + @protected + DelayNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + SseDeserializer deserializer); + + @protected + DynamicsCompressorNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + SseDeserializer deserializer); + + @protected + GainNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + SseDeserializer deserializer); + + @protected + MediaRecorder + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + SseDeserializer deserializer); + + @protected + MediaStream + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + SseDeserializer deserializer); + + @protected + MediaStreamAudioDestinationNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + SseDeserializer deserializer); + + @protected + MediaStreamTrack + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + SseDeserializer deserializer); + + @protected + OfflineAudioCompletionEvent + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + SseDeserializer deserializer); + + @protected + OfflineAudioContext + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + SseDeserializer deserializer); + + @protected + OscillatorNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + SseDeserializer deserializer); + + @protected + PannerNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + SseDeserializer deserializer); + + @protected + ScriptProcessorNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + SseDeserializer deserializer); + + @protected + StereoPannerNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + SseDeserializer deserializer); + + @protected + WaveShaperNode + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + SseDeserializer deserializer); + + @protected + AnalyserNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + SseDeserializer deserializer); + + @protected + AudioBuffer + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + SseDeserializer deserializer); + + @protected + AudioBufferSourceNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + SseDeserializer deserializer); + + @protected + AudioContext + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + SseDeserializer deserializer); + + @protected + AudioContextRegistration + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + SseDeserializer deserializer); + + @protected + AudioDestinationNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + SseDeserializer deserializer); + + @protected + AudioParam + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + SseDeserializer deserializer); + + @protected + AudioProcessingEvent + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + SseDeserializer deserializer); + + @protected + AudioRenderCapacity + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + SseDeserializer deserializer); + + @protected + AudioRenderCapacityEvent + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + SseDeserializer deserializer); + + @protected + AudioWorkletNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + SseDeserializer deserializer); + + @protected + BiquadFilterNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + SseDeserializer deserializer); + + @protected + BlobEvent + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + SseDeserializer deserializer); + + @protected + ConcreteBaseAudioContext + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + SseDeserializer deserializer); + + @protected + ConstantSourceNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + SseDeserializer deserializer); + + @protected + ConvolverNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + SseDeserializer deserializer); + + @protected + DelayNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + SseDeserializer deserializer); + + @protected + DummyStruct + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + SseDeserializer deserializer); + + @protected + DynamicsCompressorNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + SseDeserializer deserializer); + + @protected + Event + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + SseDeserializer deserializer); + + @protected + GainNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + SseDeserializer deserializer); + + @protected + MediaRecorder + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + SseDeserializer deserializer); + + @protected + MediaStream + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + SseDeserializer deserializer); + + @protected + MediaStreamAudioDestinationNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + SseDeserializer deserializer); + + @protected + MediaStreamAudioSourceNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + SseDeserializer deserializer); + + @protected + MediaStreamConstraints + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + SseDeserializer deserializer); + + @protected + MediaStreamTrack + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + SseDeserializer deserializer); + + @protected + MediaStreamTrackAudioSourceNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + SseDeserializer deserializer); + + @protected + OfflineAudioCompletionEvent + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + SseDeserializer deserializer); + + @protected + OfflineAudioContext + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + SseDeserializer deserializer); + + @protected + OscillatorNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + SseDeserializer deserializer); + + @protected + PannerNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + SseDeserializer deserializer); + + @protected + PeriodicWave + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + SseDeserializer deserializer); + + @protected + ScriptProcessorNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + SseDeserializer deserializer); + + @protected + StereoPannerNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + SseDeserializer deserializer); + + @protected + WaveShaperNode + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + SseDeserializer deserializer); + + @protected + String sse_decode_String(SseDeserializer deserializer); + + @protected + AudioBufferOptions sse_decode_audio_buffer_options( + SseDeserializer deserializer); + + @protected + AudioContextLatencyCategory sse_decode_audio_context_latency_category( + SseDeserializer deserializer); + + @protected + AudioContextOptions sse_decode_audio_context_options( + SseDeserializer deserializer); + + @protected + AudioContextRenderSizeCategory sse_decode_audio_context_render_size_category( + SseDeserializer deserializer); + + @protected + AudioRenderCapacityOptions sse_decode_audio_render_capacity_options( + SseDeserializer deserializer); + + @protected + AutomationRate sse_decode_automation_rate(SseDeserializer deserializer); + + @protected + BiquadFilterType sse_decode_biquad_filter_type(SseDeserializer deserializer); + + @protected + bool sse_decode_bool(SseDeserializer deserializer); + + @protected + AudioBufferOptions sse_decode_box_autoadd_audio_buffer_options( + SseDeserializer deserializer); + + @protected + AudioContextOptions sse_decode_box_autoadd_audio_context_options( + SseDeserializer deserializer); + + @protected + AudioRenderCapacityOptions + sse_decode_box_autoadd_audio_render_capacity_options( + SseDeserializer deserializer); + + @protected + double sse_decode_box_autoadd_f_32(SseDeserializer deserializer); + + @protected + ChannelCountMode sse_decode_channel_count_mode(SseDeserializer deserializer); + + @protected + ChannelInterpretation sse_decode_channel_interpretation( + SseDeserializer deserializer); + + @protected + DistanceModelType sse_decode_distance_model_type( + SseDeserializer deserializer); + + @protected + double sse_decode_f_32(SseDeserializer deserializer); + + @protected + double sse_decode_f_64(SseDeserializer deserializer); + + @protected + int sse_decode_i_32(SseDeserializer deserializer); + + @protected + List + sse_decode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + SseDeserializer deserializer); + + @protected + List sse_decode_list_list_prim_f_32_strict( + SseDeserializer deserializer); + + @protected + List sse_decode_list_prim_f_32_loose(SseDeserializer deserializer); + + @protected + Float32List sse_decode_list_prim_f_32_strict(SseDeserializer deserializer); + + @protected + Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer); + + @protected + MediaStreamTrackState sse_decode_media_stream_track_state( + SseDeserializer deserializer); + + @protected + double? sse_decode_opt_box_autoadd_f_32(SseDeserializer deserializer); + + @protected + OscillatorType sse_decode_oscillator_type(SseDeserializer deserializer); + + @protected + OverSampleType sse_decode_over_sample_type(SseDeserializer deserializer); + + @protected + PanningModelType sse_decode_panning_model_type(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 + void sse_encode_AnyhowException( + AnyhowException self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + AnalyserNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + AudioBuffer self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + AudioBufferSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + AudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + AudioDestinationNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + AudioParam self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + AudioProcessingEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + AudioRenderCapacity self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + AudioRenderCapacityEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + AudioWorkletNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + BiquadFilterNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + BlobEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ConcreteBaseAudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ConstantSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ConvolverNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + DelayNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + DummyStruct self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + DynamicsCompressorNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + Event self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + GainNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + MediaRecorder self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + MediaStream self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + MediaStreamAudioDestinationNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + MediaStreamAudioSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + MediaStreamConstraints self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + MediaStreamTrack self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + MediaStreamTrackAudioSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + OfflineAudioCompletionEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + OfflineAudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + OscillatorNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + PannerNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + PeriodicWave self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ScriptProcessorNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + StereoPannerNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + WaveShaperNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + AnalyserNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + AudioBuffer self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + AudioBufferSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + AudioProcessingEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + AudioRenderCapacityEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + BiquadFilterNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + BlobEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ConvolverNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + OfflineAudioCompletionEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + OfflineAudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + OscillatorNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + PannerNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + WaveShaperNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + AnalyserNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + AudioBuffer self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + AudioBufferSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + AudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + AudioContextRegistration self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + AudioDestinationNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + AudioParam self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + AudioProcessingEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + AudioRenderCapacity self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + AudioRenderCapacityEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + AudioWorkletNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + BiquadFilterNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + BlobEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ConcreteBaseAudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ConstantSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ConvolverNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + DelayNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + DynamicsCompressorNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + GainNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + MediaRecorder self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + MediaStream self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + MediaStreamAudioDestinationNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + MediaStreamTrack self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + OfflineAudioCompletionEvent self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + OfflineAudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + OscillatorNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + PannerNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ScriptProcessorNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + StereoPannerNode self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + WaveShaperNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + AnalyserNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + AudioBuffer self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + AudioBufferSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + AudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + AudioContextRegistration self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + AudioDestinationNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + AudioParam self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + AudioProcessingEvent self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + AudioRenderCapacity self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + AudioRenderCapacityEvent self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + AudioWorkletNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + BiquadFilterNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + BlobEvent self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ConcreteBaseAudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ConstantSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ConvolverNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + DelayNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + DummyStruct self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + DynamicsCompressorNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + Event self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + GainNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + MediaRecorder self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + MediaStream self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + MediaStreamAudioDestinationNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + MediaStreamAudioSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + MediaStreamConstraints self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + MediaStreamTrack self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + MediaStreamTrackAudioSourceNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + OfflineAudioCompletionEvent self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + OfflineAudioContext self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + OscillatorNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + PannerNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + PeriodicWave self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ScriptProcessorNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + StereoPannerNode self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + WaveShaperNode self, SseSerializer serializer); + + @protected + void sse_encode_String(String self, SseSerializer serializer); + + @protected + void sse_encode_audio_buffer_options( + AudioBufferOptions self, SseSerializer serializer); + + @protected + void sse_encode_audio_context_latency_category( + AudioContextLatencyCategory self, SseSerializer serializer); + + @protected + void sse_encode_audio_context_options( + AudioContextOptions self, SseSerializer serializer); + + @protected + void sse_encode_audio_context_render_size_category( + AudioContextRenderSizeCategory self, SseSerializer serializer); + + @protected + void sse_encode_audio_render_capacity_options( + AudioRenderCapacityOptions self, SseSerializer serializer); + + @protected + void sse_encode_automation_rate( + AutomationRate self, SseSerializer serializer); + + @protected + void sse_encode_biquad_filter_type( + BiquadFilterType self, SseSerializer serializer); + + @protected + void sse_encode_bool(bool self, SseSerializer serializer); + + @protected + void sse_encode_box_autoadd_audio_buffer_options( + AudioBufferOptions self, SseSerializer serializer); + + @protected + void sse_encode_box_autoadd_audio_context_options( + AudioContextOptions self, SseSerializer serializer); + + @protected + void sse_encode_box_autoadd_audio_render_capacity_options( + AudioRenderCapacityOptions self, SseSerializer serializer); + + @protected + void sse_encode_box_autoadd_f_32(double self, SseSerializer serializer); + + @protected + void sse_encode_channel_count_mode( + ChannelCountMode self, SseSerializer serializer); + + @protected + void sse_encode_channel_interpretation( + ChannelInterpretation self, SseSerializer serializer); + + @protected + void sse_encode_distance_model_type( + DistanceModelType self, SseSerializer serializer); + + @protected + void sse_encode_f_32(double self, SseSerializer serializer); + + @protected + void sse_encode_f_64(double self, SseSerializer serializer); + + @protected + void sse_encode_i_32(int self, SseSerializer serializer); + + @protected + void + sse_encode_list_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + List self, SseSerializer serializer); + + @protected + void sse_encode_list_list_prim_f_32_strict( + List self, SseSerializer serializer); + + @protected + void sse_encode_list_prim_f_32_loose( + List self, SseSerializer serializer); + + @protected + void sse_encode_list_prim_f_32_strict( + Float32List self, SseSerializer serializer); + + @protected + void sse_encode_list_prim_u_8_strict( + Uint8List self, SseSerializer serializer); + + @protected + void sse_encode_media_stream_track_state( + MediaStreamTrackState self, SseSerializer serializer); + + @protected + void sse_encode_opt_box_autoadd_f_32(double? self, SseSerializer serializer); + + @protected + void sse_encode_oscillator_type( + OscillatorType self, SseSerializer serializer); + + @protected + void sse_encode_over_sample_type( + OverSampleType self, SseSerializer serializer); + + @protected + void sse_encode_panning_model_type( + PanningModelType 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); +} + +// Section: wire_class + +class RustLibWire implements BaseWire { + RustLibWire.fromExternalLibrary(ExternalLibrary lib); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + ptr); +} + +@JS('wasm_bindgen') +external RustLibWasmModule get wasmModule; + +@JS() +@anonymous +class RustLibWasmModule implements WasmModule { + @override + external Object /* Promise */ call([String? moduleName]); + + @override + external RustLibWasmModule bind(dynamic thisArg, String moduleName); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + dynamic ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + dynamic ptr); +} diff --git a/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api.dart b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api.dart new file mode 100644 index 0000000000..758380025d --- /dev/null +++ b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api.dart @@ -0,0 +1,553 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +// 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'; + +// These functions are ignored because they are not marked as `pub`: `as_slice`, `assert_is_finite`, `assert_not_zero`, `assert_sequence_length`, `assert_strictly_positive`, `assert_valid_buffer_length`, `assert_valid_channel_number`, `assert_valid_number_of_channels`, `assert_valid_sample_rate`, `assert_valid_time_value`, `audio_param_pair`, `cancel_and_hold_at_time_raw`, `cancel_scheduled_values_raw`, `channel_data_mut`, `channel_data`, `channels_mut`, `channels`, `compute_buffer`, `compute_exponential_ramp_automation`, `compute_exponential_ramp_sample`, `compute_intrinsic_values`, `compute_linear_ramp_automation`, `compute_linear_ramp_sample`, `compute_set_target_automation`, `compute_set_target_sample`, `compute_set_value_automation`, `compute_set_value_curve_automation`, `compute_set_value_curve_sample`, `exponential_ramp_to_value_at_time_raw`, `extend`, `from_channels`, `from_raw_parts`, `generate_wavetable`, `handle_event`, `handle_incoming_event`, `into_raw_parts`, `is_a_rate`, `is_empty`, `iter_mut`, `iter`, `linear_ramp_to_value_at_time_raw`, `mix_to_output`, `new`, `new`, `new`, `next`, `normalize`, `peek`, `pop`, `push`, `replace_peek`, `resample`, `retain`, `send_event`, `set_automation_rate_constrained`, `set_target_at_time_raw`, `set_value_at_time_raw`, `set_value_curve_at_time_raw`, `set_value_raw`, `sort`, `split_off`, `unsorted_peek` +// These functions are ignored because they have generic arguments: `new`, `set_onupdate` +// These types are ignored because they are not used by any `pub` functions: `AtomicF32`, `AtomicF64`, `AudioListener`, `AudioParamDescriptor`, `AudioParamEventTimeline`, `AudioParamEventType`, `AudioParamEvent`, `AudioParamInner`, `AudioParamProcessor`, `AudioRenderCapacityLoad`, `BlockInfos`, `ChannelData`, `ErrorEvent`, `EventDispatch`, `EventHandler`, `EventLoop`, `EventPayload`, `EventType`, `MediaElement`, `MessagePort`, `PeriodicWaveOptions` +// These functions are ignored: `as_mut_slice`, `as_slice`, `audio_processing`, `clear_handler`, `complete`, `copy_from_channel_with_offset`, `copy_from_channel`, `copy_to_channel_with_offset`, `copy_to_channel`, `diagnostics`, `ended`, `from`, `handle_pending_events`, `is_empty`, `len`, `load`, `load`, `message`, `new`, `new`, `new`, `new`, `processor_error`, `render_capacity`, `run_in_thread`, `set_handler`, `sink_change`, `state_change`, `store`, `store` + +// Rust type: RustOpaqueMoi> +@sealed +class AudioBuffer extends RustOpaque { + // Not to be used by end users + AudioBuffer.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + AudioBuffer.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_AudioBuffer, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_AudioBuffer, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_AudioBufferPtr, + ); + + /// Duration in seconds of the `AudioBuffer` + Future duration() => + RustLib.instance.api.webAudioApiAudioBufferDuration( + that: this, + ); + + /// Convert raw samples to an AudioBuffer + /// + /// The outer Vec determine the channels. The inner Vecs should have the same length. + /// + /// # Panics + /// + /// This function will panic if: + /// - the given sample rate is zero + /// - the given number of channels defined by `samples.len()`is outside the + /// [1, 32] range, 32 being defined by the MAX_CHANNELS constant. + /// - any of its items have different lengths + static Future from( + {required List samples, required double sampleRate}) => + RustLib.instance.api + .webAudioApiAudioBufferFrom(samples: samples, sampleRate: sampleRate); + + /// Return a read-only copy of the underlying data of the channel + /// + /// # Panics + /// + /// This function will panic if: + /// - the given channel number is greater than or equal to the given number of channels. + Future getChannelData({required BigInt channelNumber}) => + RustLib.instance.api.webAudioApiAudioBufferGetChannelData( + that: this, channelNumber: channelNumber); + + /// Return a mutable slice of the underlying data of the channel + /// + /// # Panics + /// + /// This function will panic if: + /// - the given channel number is greater than or equal to the given number of channels. + Future getChannelDataMut({required BigInt channelNumber}) => + RustLib.instance.api.webAudioApiAudioBufferGetChannelDataMut( + that: this, channelNumber: channelNumber); + + /// Number of samples per channel in this `AudioBuffer` + Future length() => RustLib.instance.api.webAudioApiAudioBufferLength( + that: this, + ); + + // HINT: Make it `#[frb(sync)]` to let it become the default constructor of Dart class. + /// Allocate a silent audiobuffer with [`AudioBufferOptions`] + /// + /// # Panics + /// + /// This function will panic if: + /// - the given sample rate is zero + /// - the given number of channels is outside the [1, 32] range, + /// 32 being defined by the MAX_CHANNELS constant. + static Future newInstance( + {required AudioBufferOptions options}) => + RustLib.instance.api.webAudioApiAudioBufferNew(options: options); + + /// Number of channels in this `AudioBuffer` + Future numberOfChannels() => + RustLib.instance.api.webAudioApiAudioBufferNumberOfChannels( + that: this, + ); + + /// Sample rate of this `AudioBuffer` in Hertz + Future sampleRate() => + RustLib.instance.api.webAudioApiAudioBufferSampleRate( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class AudioParam extends RustOpaque { + // Not to be used by end users + AudioParam.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + AudioParam.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_AudioParam, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_AudioParam, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_AudioParamPtr, + ); + + /// Current value of the automation rate of the AudioParam + Future automationRate() => + RustLib.instance.api.webAudioApiAudioParamAutomationRate( + that: this, + ); + + /// Cancels all scheduled parameter changes with times greater than or equal + /// to `cancel_time` and the automation value that would have happened at + /// that time is then propagated for all future time. + /// + /// # Panics + /// + /// Will panic if `cancel_time` is negative + Future cancelAndHoldAtTime({required double cancelTime}) => + RustLib.instance.api.webAudioApiAudioParamCancelAndHoldAtTime( + that: this, cancelTime: cancelTime); + + /// Cancels all scheduled parameter changes with times greater than or equal + /// to `cancel_time`. + /// + /// # Panics + /// + /// Will panic if `cancel_time` is negative + Future cancelScheduledValues({required double cancelTime}) => + RustLib.instance.api.webAudioApiAudioParamCancelScheduledValues( + that: this, cancelTime: cancelTime); + + Future defaultValue() => + RustLib.instance.api.webAudioApiAudioParamDefaultValue( + that: this, + ); + + /// Schedules an exponential continuous change in parameter value from the + /// previous scheduled parameter value to the given value. + /// + /// # Panics + /// + /// Will panic if: + /// - `value` is zero + /// - `end_time` is negative + Future exponentialRampToValueAtTime( + {required double value, required double endTime}) => + RustLib.instance.api.webAudioApiAudioParamExponentialRampToValueAtTime( + that: this, value: value, endTime: endTime); + + /// Schedules a linear continuous change in parameter value from the + /// previous scheduled parameter value to the given value. + /// + /// # Panics + /// + /// Will panic if `end_time` is negative + Future linearRampToValueAtTime( + {required double value, required double endTime}) => + RustLib.instance.api.webAudioApiAudioParamLinearRampToValueAtTime( + that: this, value: value, endTime: endTime); + + Future maxValue() => + RustLib.instance.api.webAudioApiAudioParamMaxValue( + that: this, + ); + + Future minValue() => + RustLib.instance.api.webAudioApiAudioParamMinValue( + that: this, + ); + + /// Update the current value of the automation rate of the AudioParam + /// + /// # Panics + /// + /// Some nodes have automation rate constraints and may panic when updating the value. + Future setAutomationRate({required AutomationRate value}) => + RustLib.instance.api + .webAudioApiAudioParamSetAutomationRate(that: this, value: value); + + /// Start exponentially approaching the target value at the given time with + /// a rate having the given time constant. + /// + /// # Panics + /// + /// Will panic if: + /// - `start_time` is negative + /// - `time_constant` is negative + Future setTargetAtTime( + {required double value, + required double startTime, + required double timeConstant}) => + RustLib.instance.api.webAudioApiAudioParamSetTargetAtTime( + that: this, + value: value, + startTime: startTime, + timeConstant: timeConstant); + + /// Set the value of the `AudioParam`. + /// + /// Is equivalent to calling the `set_value_at_time` method with the current + /// AudioContext's currentTime + Future setValue({required double value}) => RustLib.instance.api + .webAudioApiAudioParamSetValue(that: this, value: value); + + /// Schedules a parameter value change at the given time. + /// + /// # Panics + /// + /// Will panic if `start_time` is negative + Future setValueAtTime( + {required double value, required double startTime}) => + RustLib.instance.api.webAudioApiAudioParamSetValueAtTime( + that: this, value: value, startTime: startTime); + + /// Sets an array of arbitrary parameter values starting at the given time + /// for the given duration. + /// + /// # Panics + /// + /// Will panic if: + /// - `value` length is less than 2 + /// - `start_time` is negative + /// - `duration` is negative or equal to zero + Future setValueCurveAtTime( + {required List values, + required double startTime, + required double duration}) => + RustLib.instance.api.webAudioApiAudioParamSetValueCurveAtTime( + that: this, values: values, startTime: startTime, duration: duration); + + /// Retrieve the current value of the `AudioParam`. + Future value() => RustLib.instance.api.webAudioApiAudioParamValue( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class AudioProcessingEvent extends RustOpaque { + // Not to be used by end users + AudioProcessingEvent.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + AudioProcessingEvent.frbInternalSseDecode( + BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib + .instance.api.rust_arc_increment_strong_count_AudioProcessingEvent, + rustArcDecrementStrongCount: RustLib + .instance.api.rust_arc_decrement_strong_count_AudioProcessingEvent, + rustArcDecrementStrongCountPtr: RustLib + .instance.api.rust_arc_decrement_strong_count_AudioProcessingEventPtr, + ); + + AudioBuffer get inputBuffer => + RustLib.instance.api.webAudioApiAudioProcessingEventGetInputBuffer( + that: this, + ); + + AudioBuffer get outputBuffer => + RustLib.instance.api.webAudioApiAudioProcessingEventGetOutputBuffer( + that: this, + ); + + double get playbackTime => + RustLib.instance.api.webAudioApiAudioProcessingEventGetPlaybackTime( + that: this, + ); + + void set inputBuffer(AudioBuffer inputBuffer) => + RustLib.instance.api.webAudioApiAudioProcessingEventSetInputBuffer( + that: this, inputBuffer: inputBuffer); + + void set outputBuffer(AudioBuffer outputBuffer) => + RustLib.instance.api.webAudioApiAudioProcessingEventSetOutputBuffer( + that: this, outputBuffer: outputBuffer); + + void set playbackTime(double playbackTime) => + RustLib.instance.api.webAudioApiAudioProcessingEventSetPlaybackTime( + that: this, playbackTime: playbackTime); +} + +// Rust type: RustOpaqueMoi> +@sealed +class AudioRenderCapacity extends RustOpaque { + // Not to be used by end users + AudioRenderCapacity.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + AudioRenderCapacity.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib + .instance.api.rust_arc_increment_strong_count_AudioRenderCapacity, + rustArcDecrementStrongCount: RustLib + .instance.api.rust_arc_decrement_strong_count_AudioRenderCapacity, + rustArcDecrementStrongCountPtr: RustLib + .instance.api.rust_arc_decrement_strong_count_AudioRenderCapacityPtr, + ); + + /// Unset the EventHandler for [`AudioRenderCapacityEvent`]. + Future clearOnupdate() => + RustLib.instance.api.webAudioApiAudioRenderCapacityClearOnupdate( + that: this, + ); + + /// Start metric collection and analysis + Future start({required AudioRenderCapacityOptions options}) => + RustLib.instance.api + .webAudioApiAudioRenderCapacityStart(that: this, options: options); + + /// Stop metric collection and analysis + Future stop() => + RustLib.instance.api.webAudioApiAudioRenderCapacityStop( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class AudioRenderCapacityEvent extends RustOpaque { + // Not to be used by end users + AudioRenderCapacityEvent.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + AudioRenderCapacityEvent.frbInternalSseDecode( + BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib + .instance.api.rust_arc_increment_strong_count_AudioRenderCapacityEvent, + rustArcDecrementStrongCount: RustLib + .instance.api.rust_arc_decrement_strong_count_AudioRenderCapacityEvent, + rustArcDecrementStrongCountPtr: RustLib.instance.api + .rust_arc_decrement_strong_count_AudioRenderCapacityEventPtr, + ); + + double get averageLoad => + RustLib.instance.api.webAudioApiAudioRenderCapacityEventGetAverageLoad( + that: this, + ); + + Event get event => + RustLib.instance.api.webAudioApiAudioRenderCapacityEventGetEvent( + that: this, + ); + + double get peakLoad => + RustLib.instance.api.webAudioApiAudioRenderCapacityEventGetPeakLoad( + that: this, + ); + + double get timestamp => + RustLib.instance.api.webAudioApiAudioRenderCapacityEventGetTimestamp( + that: this, + ); + + double get underrunRatio => + RustLib.instance.api.webAudioApiAudioRenderCapacityEventGetUnderrunRatio( + that: this, + ); + + void set averageLoad(double averageLoad) => + RustLib.instance.api.webAudioApiAudioRenderCapacityEventSetAverageLoad( + that: this, averageLoad: averageLoad); + + void set event(Event event) => RustLib.instance.api + .webAudioApiAudioRenderCapacityEventSetEvent(that: this, event: event); + + void set peakLoad(double peakLoad) => + RustLib.instance.api.webAudioApiAudioRenderCapacityEventSetPeakLoad( + that: this, peakLoad: peakLoad); + + void set timestamp(double timestamp) => + RustLib.instance.api.webAudioApiAudioRenderCapacityEventSetTimestamp( + that: this, timestamp: timestamp); + + void set underrunRatio(double underrunRatio) => + RustLib.instance.api.webAudioApiAudioRenderCapacityEventSetUnderrunRatio( + that: this, underrunRatio: underrunRatio); +} + +// Rust type: RustOpaqueMoi> +@sealed +class Event extends RustOpaque { + // Not to be used by end users + Event.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + Event.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_Event, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_Event, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_EventPtr, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class OfflineAudioCompletionEvent extends RustOpaque { + // Not to be used by end users + OfflineAudioCompletionEvent.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + OfflineAudioCompletionEvent.frbInternalSseDecode( + BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib.instance.api + .rust_arc_increment_strong_count_OfflineAudioCompletionEvent, + rustArcDecrementStrongCount: RustLib.instance.api + .rust_arc_decrement_strong_count_OfflineAudioCompletionEvent, + rustArcDecrementStrongCountPtr: RustLib.instance.api + .rust_arc_decrement_strong_count_OfflineAudioCompletionEventPtr, + ); + + Event get event => + RustLib.instance.api.webAudioApiOfflineAudioCompletionEventGetEvent( + that: this, + ); + + AudioBuffer get renderedBuffer => RustLib.instance.api + .webAudioApiOfflineAudioCompletionEventGetRenderedBuffer( + that: this, + ); + + void set event(Event event) => RustLib.instance.api + .webAudioApiOfflineAudioCompletionEventSetEvent(that: this, event: event); + + void set renderedBuffer(AudioBuffer renderedBuffer) => RustLib.instance.api + .webAudioApiOfflineAudioCompletionEventSetRenderedBuffer( + that: this, renderedBuffer: renderedBuffer); +} + +// Rust type: RustOpaqueMoi> +@sealed +class PeriodicWave extends RustOpaque { + // Not to be used by end users + PeriodicWave.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + PeriodicWave.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_PeriodicWave, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_PeriodicWave, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_PeriodicWavePtr, + ); +} + +/// Options for constructing an [`AudioBuffer`] +class AudioBufferOptions { + /// The number of channels for the buffer + final BigInt numberOfChannels; + + /// The length in sample frames of the buffer + final BigInt length; + + /// The sample rate in Hz for the buffer + final double sampleRate; + + const AudioBufferOptions({ + required this.numberOfChannels, + required this.length, + required this.sampleRate, + }); + + @override + int get hashCode => + numberOfChannels.hashCode ^ length.hashCode ^ sampleRate.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is AudioBufferOptions && + runtimeType == other.runtimeType && + numberOfChannels == other.numberOfChannels && + length == other.length && + sampleRate == other.sampleRate; +} + +/// Options for constructing an `AudioRenderCapacity` +class AudioRenderCapacityOptions { + /// An update interval (in seconds) for dispatching [`AudioRenderCapacityEvent`]s + final double updateInterval; + + const AudioRenderCapacityOptions({ + required this.updateInterval, + }); + + @override + int get hashCode => updateInterval.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is AudioRenderCapacityOptions && + runtimeType == other.runtimeType && + updateInterval == other.updateInterval; +} + +/// Precision of AudioParam value calculation per render quantum +enum AutomationRate { + /// Audio Rate - sampled for each sample-frame of the block + a, + + /// Control Rate - sampled at the time of the very first sample-frame, + /// then used for the entire block + k, + ; +} diff --git a/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/context.dart b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/context.dart new file mode 100644 index 0000000000..65d06f2f6d --- /dev/null +++ b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/context.dart @@ -0,0 +1,497 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../../frb_generated.dart'; +import '../web_audio_api.dart'; +import 'media_streams.dart'; +import 'node.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; +import 'package:freezed_annotation/freezed_annotation.dart' hide protected; +part 'context.freezed.dart'; + +// These functions are ignored because they are not marked as `pub`: `address`, `calculate_suspend_frame`, `clear_event_handler`, `connect_listener_to_panner`, `connect`, `context`, `current_time`, `destination_channel_config`, `disconnect`, `ensure_audio_listener_present`, `get`, `id`, `is_valid_sink_id`, `listener`, `lock_control_msg_sender`, `mark_node_dropped`, `max_channel_count`, `new`, `new`, `offline`, `post_message`, `queue_audio_param_connect`, `register`, `resolve_queued_control_msgs`, `sample_rate`, `send_control_msg`, `send_event`, `set_event_handler`, `set_state`, `state` +// These functions are ignored because they have generic arguments: `run_diagnostics`, `set_oncomplete`, `set_onsinkchange`, `suspend_sync` +// These types are ignored because they are not used by any `pub` functions: `AudioContextState`, `AudioNodeIdProvider`, `AudioNodeId`, `AudioParamId`, `ConcreteBaseAudioContextInner`, `OfflineAudioContextRenderer` +// These functions are ignored: `create_media_element_source`, `resume`, `set_sink_id_sync` + +// Rust type: RustOpaqueMoi> +@sealed +class AudioContext extends RustOpaque { + // Not to be used by end users + AudioContext.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + AudioContext.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_AudioContext, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_AudioContext, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_AudioContextPtr, + ); + + Future frbOverrideDecodeAudioDataSync( + {required String inputPath}) => + RustLib.instance.api + .crateApiOverrideWebAudioApiAudioContextFrbOverrideDecodeAudioDataSync( + that: this, inputPath: inputPath); + + Future frbOverrideOutputLatency() => RustLib.instance.api + .crateApiOverrideWebAudioApiAudioContextFrbOverrideOutputLatency( + that: this, + ); + + /// This represents the number of seconds of processing latency incurred by + /// the `AudioContext` passing the audio from the `AudioDestinationNode` + /// to the audio subsystem. + Future baseLatency() => + RustLib.instance.api.webAudioApiContextAudioContextBaseLatency( + that: this, + ); + + /// Unset the callback to run when the audio sink has changed + Future clearOnsinkchange() => + RustLib.instance.api.webAudioApiContextAudioContextClearOnsinkchange( + that: this, + ); + + /// Closes the `AudioContext`, releasing the system resources being used. + /// + /// This will not automatically release all `AudioContext`-created objects, but will suspend + /// the progression of the currentTime, and stop processing audio data. + /// + /// # Panics + /// + /// Will panic when this function is called multiple times + Future close() => + RustLib.instance.api.webAudioApiContextAudioContextClose( + that: this, + ); + + /// Closes the `AudioContext`, releasing the system resources being used. + /// + /// This will not automatically release all `AudioContext`-created objects, but will suspend + /// the progression of the currentTime, and stop processing audio data. + /// + /// This function operates synchronously and blocks the current thread until the audio thread + /// has stopped processing. + /// + /// # Panics + /// + /// Will panic when this function is called multiple times + Future closeSync() => + RustLib.instance.api.webAudioApiContextAudioContextCloseSync( + that: this, + ); + + /// Creates a [`MediaStreamAudioDestinationNode`](node::MediaStreamAudioDestinationNode) + Future createMediaStreamDestination() => + RustLib.instance.api + .webAudioApiContextAudioContextCreateMediaStreamDestination( + that: this, + ); + + /// Creates a [`MediaStreamAudioSourceNode`](node::MediaStreamAudioSourceNode) from a + /// [`MediaStream`] + Future createMediaStreamSource( + {required MediaStream media}) => + RustLib.instance.api + .webAudioApiContextAudioContextCreateMediaStreamSource( + that: this, media: media); + + /// Creates a [`MediaStreamTrackAudioSourceNode`](node::MediaStreamTrackAudioSourceNode) from a + /// [`MediaStreamTrack`] + Future createMediaStreamTrackSource( + {required MediaStreamTrack media}) => + RustLib.instance.api + .webAudioApiContextAudioContextCreateMediaStreamTrackSource( + that: this, media: media); + + /// Creates and returns a new `AudioContext` object. + /// + /// This will play live audio on the default output device. + /// + /// ```no_run + /// use web_audio_api::context::{AudioContext, AudioContextOptions}; + /// + /// // Request a sample rate of 44.1 kHz and default latency (buffer size 128, if available) + /// let opts = AudioContextOptions { + /// sample_rate: Some(44100.), + /// ..AudioContextOptions::default() + /// }; + /// + /// // Setup the audio context that will emit to your speakers + /// let context = AudioContext::new(opts); + /// + /// // Alternatively, use the default constructor to get the best settings for your hardware + /// // let context = AudioContext::default(); + /// ``` + /// + /// # Panics + /// + /// The `AudioContext` constructor will panic when an invalid `sinkId` is provided in the + /// `AudioContextOptions`. In a future version, a `try_new` constructor will be introduced that + /// never panics. + factory AudioContext({required AudioContextOptions options}) => + RustLib.instance.api.webAudioApiContextAudioContextNew(options: options); + + /// The estimation in seconds of audio output latency, i.e., the interval + /// between the time the UA requests the host system to play a buffer and + /// the time at which the first sample in the buffer is actually processed + /// by the audio output device. + Future outputLatency() => + RustLib.instance.api.webAudioApiContextAudioContextOutputLatency( + that: this, + ); + + /// Returns an [`AudioRenderCapacity`] instance associated with an AudioContext. + Future renderCapacity() => + RustLib.instance.api.webAudioApiContextAudioContextRenderCapacity( + that: this, + ); + + /// Resumes the progression of time in an audio context that has previously been + /// suspended/paused. + /// + /// This function operates synchronously and blocks the current thread until the audio thread + /// has started processing again. + /// + /// # Panics + /// + /// Will panic if: + /// + /// * The audio device is not available + /// * For a `BackendSpecificError` + Future resumeSync() => + RustLib.instance.api.webAudioApiContextAudioContextResumeSync( + that: this, + ); + + /// Identifier or the information of the current audio output device. + /// + /// The initial value is `""`, which means the default audio output device. + Future sinkId() => + RustLib.instance.api.webAudioApiContextAudioContextSinkId( + that: this, + ); + + /// Suspends the progression of time in the audio context. + /// + /// This will temporarily halt audio hardware access and reducing CPU/battery usage in the + /// process. + /// + /// # Panics + /// + /// Will panic if: + /// + /// * The audio device is not available + /// * For a `BackendSpecificError` + Future suspend() => + RustLib.instance.api.webAudioApiContextAudioContextSuspend( + that: this, + ); + + /// Suspends the progression of time in the audio context. + /// + /// This will temporarily halt audio hardware access and reducing CPU/battery usage in the + /// process. + /// + /// This function operates synchronously and blocks the current thread until the audio thread + /// has stopped processing. + /// + /// # Panics + /// + /// Will panic if: + /// + /// * The audio device is not available + /// * For a `BackendSpecificError` + Future suspendSync() => + RustLib.instance.api.webAudioApiContextAudioContextSuspendSync( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class AudioContextRegistration extends RustOpaque { + // Not to be used by end users + AudioContextRegistration.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + AudioContextRegistration.frbInternalSseDecode( + BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib + .instance.api.rust_arc_increment_strong_count_AudioContextRegistration, + rustArcDecrementStrongCount: RustLib + .instance.api.rust_arc_decrement_strong_count_AudioContextRegistration, + rustArcDecrementStrongCountPtr: RustLib.instance.api + .rust_arc_decrement_strong_count_AudioContextRegistrationPtr, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class ConcreteBaseAudioContext extends RustOpaque { + // Not to be used by end users + ConcreteBaseAudioContext.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + ConcreteBaseAudioContext.frbInternalSseDecode( + BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib + .instance.api.rust_arc_increment_strong_count_ConcreteBaseAudioContext, + rustArcDecrementStrongCount: RustLib + .instance.api.rust_arc_decrement_strong_count_ConcreteBaseAudioContext, + rustArcDecrementStrongCountPtr: RustLib.instance.api + .rust_arc_decrement_strong_count_ConcreteBaseAudioContextPtr, + ); + + /// Inform render thread that this node can act as a cycle breaker + Future markCycleBreaker({required AudioContextRegistration reg}) => + RustLib.instance.api + .webAudioApiContextConcreteBaseAudioContextMarkCycleBreaker( + that: this, reg: reg); +} + +// Rust type: RustOpaqueMoi> +@sealed +class OfflineAudioContext extends RustOpaque { + // Not to be used by end users + OfflineAudioContext.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + OfflineAudioContext.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib + .instance.api.rust_arc_increment_strong_count_OfflineAudioContext, + rustArcDecrementStrongCount: RustLib + .instance.api.rust_arc_decrement_strong_count_OfflineAudioContext, + rustArcDecrementStrongCountPtr: RustLib + .instance.api.rust_arc_decrement_strong_count_OfflineAudioContextPtr, + ); + + /// Unset the callback to run when the rendering has completed + Future clearOncomplete() => + RustLib.instance.api.webAudioApiContextOfflineAudioContextClearOncomplete( + that: this, + ); + + /// get the length of rendering audio buffer + Future length() => + RustLib.instance.api.webAudioApiContextOfflineAudioContextLength( + that: this, + ); + + // HINT: Make it `#[frb(sync)]` to let it become the default constructor of Dart class. + /// Creates an `OfflineAudioContext` instance + /// + /// # Arguments + /// + /// * `channels` - number of output channels to render + /// * `length` - length of the rendering audio buffer + /// * `sample_rate` - output sample rate + static Future newInstance( + {required BigInt numberOfChannels, + required BigInt length, + required double sampleRate}) => + RustLib.instance.api.webAudioApiContextOfflineAudioContextNew( + numberOfChannels: numberOfChannels, + length: length, + sampleRate: sampleRate); + + /// Resumes the progression of the OfflineAudioContext's currentTime when it has been suspended + /// + /// # Panics + /// + /// Panics when the context is closed or rendering has not started + Future resume() => + RustLib.instance.api.webAudioApiContextOfflineAudioContextResume( + that: this, + ); + + /// Given the current connections and scheduled changes, starts rendering audio. + /// + /// Rendering is purely CPU bound and contains no `await` points, so calling this method will + /// block the executor until completion or until the context is suspended. + /// + /// This method will only adhere to scheduled suspensions via [`Self::suspend`] and will + /// ignore those provided via [`Self::suspend_sync`]. + /// + /// # Panics + /// + /// Panics if this method is called multiple times. + Future startRendering() => + RustLib.instance.api.webAudioApiContextOfflineAudioContextStartRendering( + that: this, + ); + + /// Given the current connections and scheduled changes, starts rendering audio. + /// + /// This function will block the current thread and returns the rendered `AudioBuffer` + /// synchronously. + /// + /// This method will only adhere to scheduled suspensions via [`Self::suspend_sync`] and + /// will ignore those provided via [`Self::suspend`]. + /// + /// # Panics + /// + /// Panics if this method is called multiple times + Future startRenderingSync() => RustLib.instance.api + .webAudioApiContextOfflineAudioContextStartRenderingSync( + that: this, + ); + + /// Schedules a suspension of the time progression in the audio context at the specified time + /// and returns a promise + /// + /// The specified time is quantized and rounded up to the render quantum size. + /// + /// # Panics + /// + /// Panics if the quantized frame number + /// + /// - is negative or + /// - is less than or equal to the current time or + /// - is greater than or equal to the total render duration or + /// - is scheduled by another suspend for the same time + /// + /// # Example usage + /// + /// ```rust + /// use futures::{executor, join}; + /// use futures::FutureExt as _; + /// use std::sync::Arc; + /// + /// use web_audio_api::context::BaseAudioContext; + /// use web_audio_api::context::OfflineAudioContext; + /// use web_audio_api::node::{AudioNode, AudioScheduledSourceNode}; + /// + /// let context = Arc::new(OfflineAudioContext::new(1, 512, 44_100.)); + /// let context_clone = Arc::clone(&context); + /// + /// let suspend_promise = context.suspend(128. / 44_100.).then(|_| async move { + /// let mut src = context_clone.create_constant_source(); + /// src.connect(&context_clone.destination()); + /// src.start(); + /// context_clone.resume().await; + /// }); + /// + /// let render_promise = context.start_rendering(); + /// + /// let buffer = executor::block_on(async move { join!(suspend_promise, render_promise).1 }); + /// assert_eq!(buffer.number_of_channels(), 1); + /// assert_eq!(buffer.length(), 512); + /// ``` + Future suspend({required double suspendTime}) => + RustLib.instance.api.webAudioApiContextOfflineAudioContextSuspend( + that: this, suspendTime: suspendTime); +} + +@freezed +sealed class AudioContextLatencyCategory with _$AudioContextLatencyCategory { + const AudioContextLatencyCategory._(); + + /// Balance audio output latency and power consumption. + const factory AudioContextLatencyCategory.balanced() = + AudioContextLatencyCategory_Balanced; + + /// Provide the lowest audio output latency possible without glitching. This is the default. + const factory AudioContextLatencyCategory.interactive() = + AudioContextLatencyCategory_Interactive; + + /// Prioritize sustained playback without interruption over audio output latency. + /// + /// Lowest power consumption. + const factory AudioContextLatencyCategory.playback() = + AudioContextLatencyCategory_Playback; + + /// Specify the number of seconds of latency + /// + /// This latency is not guaranteed to be applied, it depends on the audio hardware capabilities + const factory AudioContextLatencyCategory.custom( + double field0, + ) = AudioContextLatencyCategory_Custom; +} + +/// Specify the playback configuration for the [`AudioContext`] constructor. +/// +/// All fields are optional and will default to the value best suited for interactive playback on +/// your hardware configuration. +/// +/// For future compatibility, it is best to construct a default implementation of this struct and +/// set the fields you would like to override: +/// ``` +/// use web_audio_api::context::AudioContextOptions; +/// +/// // Request a sample rate of 44.1 kHz, leave other fields to their default values +/// let opts = AudioContextOptions { +/// sample_rate: Some(44100.), +/// ..AudioContextOptions::default() +/// }; +class AudioContextOptions { + /// Identify the type of playback, which affects tradeoffs between audio output latency and + /// power consumption. + final AudioContextLatencyCategory latencyHint; + + /// Sample rate of the audio context and audio output hardware. Use `None` for a default value. + final double? sampleRate; + + /// The audio output device + /// - use `""` for the default audio output device + /// - use `"none"` to process the audio graph without playing through an audio output device. + /// - use `"sinkId"` to use the specified audio sink id, obtained with [`enumerate_devices_sync`] + final String sinkId; + + /// Option to request a default, optimized or specific render quantum size. It is a hint that might not be honored. + final AudioContextRenderSizeCategory renderSizeHint; + + const AudioContextOptions({ + required this.latencyHint, + this.sampleRate, + required this.sinkId, + required this.renderSizeHint, + }); + + @override + int get hashCode => + latencyHint.hashCode ^ + sampleRate.hashCode ^ + sinkId.hashCode ^ + renderSizeHint.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is AudioContextOptions && + runtimeType == other.runtimeType && + latencyHint == other.latencyHint && + sampleRate == other.sampleRate && + sinkId == other.sinkId && + renderSizeHint == other.renderSizeHint; +} + +/// This allows users to ask for a particular render quantum size. +/// +/// Currently, only the default value is available +enum AudioContextRenderSizeCategory { + /// The default value of 128 frames + Default, + ; +} diff --git a/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/context.freezed.dart b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/context.freezed.dart new file mode 100644 index 0000000000..c4603209ed --- /dev/null +++ b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/context.freezed.dart @@ -0,0 +1,636 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark + +part of 'context.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +T _$identity(T value) => value; + +final _privateConstructorUsedError = UnsupportedError( + 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models'); + +/// @nodoc +mixin _$AudioContextLatencyCategory { + @optionalTypeArgs + TResult when({ + required TResult Function() balanced, + required TResult Function() interactive, + required TResult Function() playback, + required TResult Function(double field0) custom, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? balanced, + TResult? Function()? interactive, + TResult? Function()? playback, + TResult? Function(double field0)? custom, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? balanced, + TResult Function()? interactive, + TResult Function()? playback, + TResult Function(double field0)? custom, + required TResult orElse(), + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult map({ + required TResult Function(AudioContextLatencyCategory_Balanced value) + balanced, + required TResult Function(AudioContextLatencyCategory_Interactive value) + interactive, + required TResult Function(AudioContextLatencyCategory_Playback value) + playback, + required TResult Function(AudioContextLatencyCategory_Custom value) custom, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(AudioContextLatencyCategory_Balanced value)? balanced, + TResult? Function(AudioContextLatencyCategory_Interactive value)? + interactive, + TResult? Function(AudioContextLatencyCategory_Playback value)? playback, + TResult? Function(AudioContextLatencyCategory_Custom value)? custom, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult maybeMap({ + TResult Function(AudioContextLatencyCategory_Balanced value)? balanced, + TResult Function(AudioContextLatencyCategory_Interactive value)? + interactive, + TResult Function(AudioContextLatencyCategory_Playback value)? playback, + TResult Function(AudioContextLatencyCategory_Custom value)? custom, + required TResult orElse(), + }) => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class $AudioContextLatencyCategoryCopyWith<$Res> { + factory $AudioContextLatencyCategoryCopyWith( + AudioContextLatencyCategory value, + $Res Function(AudioContextLatencyCategory) then) = + _$AudioContextLatencyCategoryCopyWithImpl<$Res, + AudioContextLatencyCategory>; +} + +/// @nodoc +class _$AudioContextLatencyCategoryCopyWithImpl<$Res, + $Val extends AudioContextLatencyCategory> + implements $AudioContextLatencyCategoryCopyWith<$Res> { + _$AudioContextLatencyCategoryCopyWithImpl(this._value, this._then); + + // ignore: unused_field + final $Val _value; + // ignore: unused_field + final $Res Function($Val) _then; +} + +/// @nodoc +abstract class _$$AudioContextLatencyCategory_BalancedImplCopyWith<$Res> { + factory _$$AudioContextLatencyCategory_BalancedImplCopyWith( + _$AudioContextLatencyCategory_BalancedImpl value, + $Res Function(_$AudioContextLatencyCategory_BalancedImpl) then) = + __$$AudioContextLatencyCategory_BalancedImplCopyWithImpl<$Res>; +} + +/// @nodoc +class __$$AudioContextLatencyCategory_BalancedImplCopyWithImpl<$Res> + extends _$AudioContextLatencyCategoryCopyWithImpl<$Res, + _$AudioContextLatencyCategory_BalancedImpl> + implements _$$AudioContextLatencyCategory_BalancedImplCopyWith<$Res> { + __$$AudioContextLatencyCategory_BalancedImplCopyWithImpl( + _$AudioContextLatencyCategory_BalancedImpl _value, + $Res Function(_$AudioContextLatencyCategory_BalancedImpl) _then) + : super(_value, _then); +} + +/// @nodoc + +class _$AudioContextLatencyCategory_BalancedImpl + extends AudioContextLatencyCategory_Balanced { + const _$AudioContextLatencyCategory_BalancedImpl() : super._(); + + @override + String toString() { + return 'AudioContextLatencyCategory.balanced()'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$AudioContextLatencyCategory_BalancedImpl); + } + + @override + int get hashCode => runtimeType.hashCode; + + @override + @optionalTypeArgs + TResult when({ + required TResult Function() balanced, + required TResult Function() interactive, + required TResult Function() playback, + required TResult Function(double field0) custom, + }) { + return balanced(); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? balanced, + TResult? Function()? interactive, + TResult? Function()? playback, + TResult? Function(double field0)? custom, + }) { + return balanced?.call(); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? balanced, + TResult Function()? interactive, + TResult Function()? playback, + TResult Function(double field0)? custom, + required TResult orElse(), + }) { + if (balanced != null) { + return balanced(); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(AudioContextLatencyCategory_Balanced value) + balanced, + required TResult Function(AudioContextLatencyCategory_Interactive value) + interactive, + required TResult Function(AudioContextLatencyCategory_Playback value) + playback, + required TResult Function(AudioContextLatencyCategory_Custom value) custom, + }) { + return balanced(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(AudioContextLatencyCategory_Balanced value)? balanced, + TResult? Function(AudioContextLatencyCategory_Interactive value)? + interactive, + TResult? Function(AudioContextLatencyCategory_Playback value)? playback, + TResult? Function(AudioContextLatencyCategory_Custom value)? custom, + }) { + return balanced?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(AudioContextLatencyCategory_Balanced value)? balanced, + TResult Function(AudioContextLatencyCategory_Interactive value)? + interactive, + TResult Function(AudioContextLatencyCategory_Playback value)? playback, + TResult Function(AudioContextLatencyCategory_Custom value)? custom, + required TResult orElse(), + }) { + if (balanced != null) { + return balanced(this); + } + return orElse(); + } +} + +abstract class AudioContextLatencyCategory_Balanced + extends AudioContextLatencyCategory { + const factory AudioContextLatencyCategory_Balanced() = + _$AudioContextLatencyCategory_BalancedImpl; + const AudioContextLatencyCategory_Balanced._() : super._(); +} + +/// @nodoc +abstract class _$$AudioContextLatencyCategory_InteractiveImplCopyWith<$Res> { + factory _$$AudioContextLatencyCategory_InteractiveImplCopyWith( + _$AudioContextLatencyCategory_InteractiveImpl value, + $Res Function(_$AudioContextLatencyCategory_InteractiveImpl) then) = + __$$AudioContextLatencyCategory_InteractiveImplCopyWithImpl<$Res>; +} + +/// @nodoc +class __$$AudioContextLatencyCategory_InteractiveImplCopyWithImpl<$Res> + extends _$AudioContextLatencyCategoryCopyWithImpl<$Res, + _$AudioContextLatencyCategory_InteractiveImpl> + implements _$$AudioContextLatencyCategory_InteractiveImplCopyWith<$Res> { + __$$AudioContextLatencyCategory_InteractiveImplCopyWithImpl( + _$AudioContextLatencyCategory_InteractiveImpl _value, + $Res Function(_$AudioContextLatencyCategory_InteractiveImpl) _then) + : super(_value, _then); +} + +/// @nodoc + +class _$AudioContextLatencyCategory_InteractiveImpl + extends AudioContextLatencyCategory_Interactive { + const _$AudioContextLatencyCategory_InteractiveImpl() : super._(); + + @override + String toString() { + return 'AudioContextLatencyCategory.interactive()'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$AudioContextLatencyCategory_InteractiveImpl); + } + + @override + int get hashCode => runtimeType.hashCode; + + @override + @optionalTypeArgs + TResult when({ + required TResult Function() balanced, + required TResult Function() interactive, + required TResult Function() playback, + required TResult Function(double field0) custom, + }) { + return interactive(); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? balanced, + TResult? Function()? interactive, + TResult? Function()? playback, + TResult? Function(double field0)? custom, + }) { + return interactive?.call(); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? balanced, + TResult Function()? interactive, + TResult Function()? playback, + TResult Function(double field0)? custom, + required TResult orElse(), + }) { + if (interactive != null) { + return interactive(); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(AudioContextLatencyCategory_Balanced value) + balanced, + required TResult Function(AudioContextLatencyCategory_Interactive value) + interactive, + required TResult Function(AudioContextLatencyCategory_Playback value) + playback, + required TResult Function(AudioContextLatencyCategory_Custom value) custom, + }) { + return interactive(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(AudioContextLatencyCategory_Balanced value)? balanced, + TResult? Function(AudioContextLatencyCategory_Interactive value)? + interactive, + TResult? Function(AudioContextLatencyCategory_Playback value)? playback, + TResult? Function(AudioContextLatencyCategory_Custom value)? custom, + }) { + return interactive?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(AudioContextLatencyCategory_Balanced value)? balanced, + TResult Function(AudioContextLatencyCategory_Interactive value)? + interactive, + TResult Function(AudioContextLatencyCategory_Playback value)? playback, + TResult Function(AudioContextLatencyCategory_Custom value)? custom, + required TResult orElse(), + }) { + if (interactive != null) { + return interactive(this); + } + return orElse(); + } +} + +abstract class AudioContextLatencyCategory_Interactive + extends AudioContextLatencyCategory { + const factory AudioContextLatencyCategory_Interactive() = + _$AudioContextLatencyCategory_InteractiveImpl; + const AudioContextLatencyCategory_Interactive._() : super._(); +} + +/// @nodoc +abstract class _$$AudioContextLatencyCategory_PlaybackImplCopyWith<$Res> { + factory _$$AudioContextLatencyCategory_PlaybackImplCopyWith( + _$AudioContextLatencyCategory_PlaybackImpl value, + $Res Function(_$AudioContextLatencyCategory_PlaybackImpl) then) = + __$$AudioContextLatencyCategory_PlaybackImplCopyWithImpl<$Res>; +} + +/// @nodoc +class __$$AudioContextLatencyCategory_PlaybackImplCopyWithImpl<$Res> + extends _$AudioContextLatencyCategoryCopyWithImpl<$Res, + _$AudioContextLatencyCategory_PlaybackImpl> + implements _$$AudioContextLatencyCategory_PlaybackImplCopyWith<$Res> { + __$$AudioContextLatencyCategory_PlaybackImplCopyWithImpl( + _$AudioContextLatencyCategory_PlaybackImpl _value, + $Res Function(_$AudioContextLatencyCategory_PlaybackImpl) _then) + : super(_value, _then); +} + +/// @nodoc + +class _$AudioContextLatencyCategory_PlaybackImpl + extends AudioContextLatencyCategory_Playback { + const _$AudioContextLatencyCategory_PlaybackImpl() : super._(); + + @override + String toString() { + return 'AudioContextLatencyCategory.playback()'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$AudioContextLatencyCategory_PlaybackImpl); + } + + @override + int get hashCode => runtimeType.hashCode; + + @override + @optionalTypeArgs + TResult when({ + required TResult Function() balanced, + required TResult Function() interactive, + required TResult Function() playback, + required TResult Function(double field0) custom, + }) { + return playback(); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? balanced, + TResult? Function()? interactive, + TResult? Function()? playback, + TResult? Function(double field0)? custom, + }) { + return playback?.call(); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? balanced, + TResult Function()? interactive, + TResult Function()? playback, + TResult Function(double field0)? custom, + required TResult orElse(), + }) { + if (playback != null) { + return playback(); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(AudioContextLatencyCategory_Balanced value) + balanced, + required TResult Function(AudioContextLatencyCategory_Interactive value) + interactive, + required TResult Function(AudioContextLatencyCategory_Playback value) + playback, + required TResult Function(AudioContextLatencyCategory_Custom value) custom, + }) { + return playback(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(AudioContextLatencyCategory_Balanced value)? balanced, + TResult? Function(AudioContextLatencyCategory_Interactive value)? + interactive, + TResult? Function(AudioContextLatencyCategory_Playback value)? playback, + TResult? Function(AudioContextLatencyCategory_Custom value)? custom, + }) { + return playback?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(AudioContextLatencyCategory_Balanced value)? balanced, + TResult Function(AudioContextLatencyCategory_Interactive value)? + interactive, + TResult Function(AudioContextLatencyCategory_Playback value)? playback, + TResult Function(AudioContextLatencyCategory_Custom value)? custom, + required TResult orElse(), + }) { + if (playback != null) { + return playback(this); + } + return orElse(); + } +} + +abstract class AudioContextLatencyCategory_Playback + extends AudioContextLatencyCategory { + const factory AudioContextLatencyCategory_Playback() = + _$AudioContextLatencyCategory_PlaybackImpl; + const AudioContextLatencyCategory_Playback._() : super._(); +} + +/// @nodoc +abstract class _$$AudioContextLatencyCategory_CustomImplCopyWith<$Res> { + factory _$$AudioContextLatencyCategory_CustomImplCopyWith( + _$AudioContextLatencyCategory_CustomImpl value, + $Res Function(_$AudioContextLatencyCategory_CustomImpl) then) = + __$$AudioContextLatencyCategory_CustomImplCopyWithImpl<$Res>; + @useResult + $Res call({double field0}); +} + +/// @nodoc +class __$$AudioContextLatencyCategory_CustomImplCopyWithImpl<$Res> + extends _$AudioContextLatencyCategoryCopyWithImpl<$Res, + _$AudioContextLatencyCategory_CustomImpl> + implements _$$AudioContextLatencyCategory_CustomImplCopyWith<$Res> { + __$$AudioContextLatencyCategory_CustomImplCopyWithImpl( + _$AudioContextLatencyCategory_CustomImpl _value, + $Res Function(_$AudioContextLatencyCategory_CustomImpl) _then) + : super(_value, _then); + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? field0 = null, + }) { + return _then(_$AudioContextLatencyCategory_CustomImpl( + null == field0 + ? _value.field0 + : field0 // ignore: cast_nullable_to_non_nullable + as double, + )); + } +} + +/// @nodoc + +class _$AudioContextLatencyCategory_CustomImpl + extends AudioContextLatencyCategory_Custom { + const _$AudioContextLatencyCategory_CustomImpl(this.field0) : super._(); + + @override + final double field0; + + @override + String toString() { + return 'AudioContextLatencyCategory.custom(field0: $field0)'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$AudioContextLatencyCategory_CustomImpl && + (identical(other.field0, field0) || other.field0 == field0)); + } + + @override + int get hashCode => Object.hash(runtimeType, field0); + + @JsonKey(ignore: true) + @override + @pragma('vm:prefer-inline') + _$$AudioContextLatencyCategory_CustomImplCopyWith< + _$AudioContextLatencyCategory_CustomImpl> + get copyWith => __$$AudioContextLatencyCategory_CustomImplCopyWithImpl< + _$AudioContextLatencyCategory_CustomImpl>(this, _$identity); + + @override + @optionalTypeArgs + TResult when({ + required TResult Function() balanced, + required TResult Function() interactive, + required TResult Function() playback, + required TResult Function(double field0) custom, + }) { + return custom(field0); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? balanced, + TResult? Function()? interactive, + TResult? Function()? playback, + TResult? Function(double field0)? custom, + }) { + return custom?.call(field0); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? balanced, + TResult Function()? interactive, + TResult Function()? playback, + TResult Function(double field0)? custom, + required TResult orElse(), + }) { + if (custom != null) { + return custom(field0); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(AudioContextLatencyCategory_Balanced value) + balanced, + required TResult Function(AudioContextLatencyCategory_Interactive value) + interactive, + required TResult Function(AudioContextLatencyCategory_Playback value) + playback, + required TResult Function(AudioContextLatencyCategory_Custom value) custom, + }) { + return custom(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(AudioContextLatencyCategory_Balanced value)? balanced, + TResult? Function(AudioContextLatencyCategory_Interactive value)? + interactive, + TResult? Function(AudioContextLatencyCategory_Playback value)? playback, + TResult? Function(AudioContextLatencyCategory_Custom value)? custom, + }) { + return custom?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(AudioContextLatencyCategory_Balanced value)? balanced, + TResult Function(AudioContextLatencyCategory_Interactive value)? + interactive, + TResult Function(AudioContextLatencyCategory_Playback value)? playback, + TResult Function(AudioContextLatencyCategory_Custom value)? custom, + required TResult orElse(), + }) { + if (custom != null) { + return custom(this); + } + return orElse(); + } +} + +abstract class AudioContextLatencyCategory_Custom + extends AudioContextLatencyCategory { + const factory AudioContextLatencyCategory_Custom(final double field0) = + _$AudioContextLatencyCategory_CustomImpl; + const AudioContextLatencyCategory_Custom._() : super._(); + + double get field0; + @JsonKey(ignore: true) + _$$AudioContextLatencyCategory_CustomImplCopyWith< + _$AudioContextLatencyCategory_CustomImpl> + get copyWith => throw _privateConstructorUsedError; +} diff --git a/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/media_devices.dart b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/media_devices.dart new file mode 100644 index 0000000000..e13db586e8 --- /dev/null +++ b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/media_devices.dart @@ -0,0 +1,72 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../../frb_generated.dart'; +import 'media_streams.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +// These functions are ignored because they are not marked as `pub`: `as_string`, `device`, `is_valid_device_id`, `new` +// These types are ignored because they are not used by any `pub` functions: `DeviceId`, `MediaDeviceInfoKind`, `MediaDeviceInfo`, `MediaTrackConstraints` +// These functions are ignored: `device_id`, `enumerate_devices_sync`, `group_id`, `kind`, `label` + +/// Prompt for permission to use a media input (audio only) +/// +/// This produces a [`MediaStream`] with tracks containing the requested types of media, which can +/// be used inside a [`MediaStreamAudioSourceNode`](crate::node::MediaStreamAudioSourceNode). +/// +/// It is okay for the `MediaStream` struct to go out of scope, any corresponding stream will still be +/// kept alive and emit audio buffers. Call the `close()` method if you want to stop the media +/// input and release all system resources. +/// +/// This function operates synchronously, which may be undesirable on the control thread. An async +/// version is currently not implemented. +/// +/// # Example +/// +/// ```no_run +/// use web_audio_api::context::{BaseAudioContext, AudioContext}; +/// use web_audio_api::context::{AudioContextLatencyCategory, AudioContextOptions}; +/// use web_audio_api::media_devices; +/// use web_audio_api::media_devices::MediaStreamConstraints; +/// use web_audio_api::node::AudioNode; +/// +/// let context = AudioContext::default(); +/// let mic = media_devices::get_user_media_sync(MediaStreamConstraints::Audio); +/// +/// // register as media element in the audio context +/// let background = context.create_media_stream_source(&mic); +/// +/// // connect the node directly to the destination node (speakers) +/// background.connect(&context.destination()); +/// +/// // enjoy listening +/// std::thread::sleep(std::time::Duration::from_secs(4)); +/// ``` +Future getUserMediaSync( + {required MediaStreamConstraints constraints}) => + RustLib.instance.api + .webAudioApiMediaDevicesGetUserMediaSync(constraints: constraints); + +// Rust type: RustOpaqueMoi> +@sealed +class MediaStreamConstraints extends RustOpaque { + // Not to be used by end users + MediaStreamConstraints.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + MediaStreamConstraints.frbInternalSseDecode( + BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib + .instance.api.rust_arc_increment_strong_count_MediaStreamConstraints, + rustArcDecrementStrongCount: RustLib + .instance.api.rust_arc_decrement_strong_count_MediaStreamConstraints, + rustArcDecrementStrongCountPtr: RustLib + .instance.api.rust_arc_decrement_strong_count_MediaStreamConstraintsPtr, + ); +} diff --git a/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/media_recorder.dart b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/media_recorder.dart new file mode 100644 index 0000000000..23340c4986 --- /dev/null +++ b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/media_recorder.dart @@ -0,0 +1,118 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../../frb_generated.dart'; +import '../web_audio_api.dart'; +import 'media_streams.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +// These functions are ignored because they are not marked as `pub`: `encode_first`, `encode_next`, `flush`, `handle_error`, `new`, `record`, `stop` +// These functions are ignored because they have generic arguments: `set_ondataavailable`, `set_onerror`, `set_onstop` +// These types are ignored because they are not used by any `pub` functions: `MediaRecorderInner`, `RecordedData` + +// Rust type: RustOpaqueMoi> +@sealed +class BlobEvent extends RustOpaque { + // Not to be used by end users + BlobEvent.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + BlobEvent.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_BlobEvent, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_BlobEvent, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_BlobEventPtr, + ); + + Uint8List get blob => + RustLib.instance.api.webAudioApiMediaRecorderBlobEventGetBlob( + that: this, + ); + + Event get event => + RustLib.instance.api.webAudioApiMediaRecorderBlobEventGetEvent( + that: this, + ); + + double get timecode => + RustLib.instance.api.webAudioApiMediaRecorderBlobEventGetTimecode( + that: this, + ); + + void set blob(Uint8List blob) => RustLib.instance.api + .webAudioApiMediaRecorderBlobEventSetBlob(that: this, blob: blob); + + void set event(Event event) => RustLib.instance.api + .webAudioApiMediaRecorderBlobEventSetEvent(that: this, event: event); + + void set timecode(double timecode) => + RustLib.instance.api.webAudioApiMediaRecorderBlobEventSetTimecode( + that: this, timecode: timecode); +} + +// Rust type: RustOpaqueMoi> +@sealed +class MediaRecorder extends RustOpaque { + // Not to be used by end users + MediaRecorder.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + MediaRecorder.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_MediaRecorder, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_MediaRecorder, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_MediaRecorderPtr, + ); + + Future clearOndataavailable() => RustLib.instance.api + .webAudioApiMediaRecorderMediaRecorderClearOndataavailable( + that: this, + ); + + Future clearOnerror() => + RustLib.instance.api.webAudioApiMediaRecorderMediaRecorderClearOnerror( + that: this, + ); + + Future clearOnstop() => + RustLib.instance.api.webAudioApiMediaRecorderMediaRecorderClearOnstop( + that: this, + ); + + // HINT: Make it `#[frb(sync)]` to let it become the default constructor of Dart class. + /// Creates a new `MediaRecorder` object, given a [`MediaStream`] to record. + /// + /// Only supports WAV file format currently. + static Future newInstance({required MediaStream stream}) => + RustLib.instance.api + .webAudioApiMediaRecorderMediaRecorderNew(stream: stream); + + /// Begin recording media + /// + /// # Panics + /// + /// Will panic when the recorder has already started + Future start() => + RustLib.instance.api.webAudioApiMediaRecorderMediaRecorderStart( + that: this, + ); + + Future stop() => + RustLib.instance.api.webAudioApiMediaRecorderMediaRecorderStop( + that: this, + ); +} diff --git a/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/media_streams.dart b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/media_streams.dart new file mode 100644 index 0000000000..ed3ab4328a --- /dev/null +++ b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/media_streams.dart @@ -0,0 +1,86 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +// 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'; + +// These functions are ignored because they have generic arguments: `from_iter` +// These types are ignored because they are not used by any `pub` functions: `MediaStreamTrackInner`, `MediaStreamTrackIter` +// These functions have error during generation (see debug logs for more details): `iter` + +// Rust type: RustOpaqueMoi> +@sealed +class MediaStream extends RustOpaque { + // Not to be used by end users + MediaStream.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + MediaStream.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_MediaStream, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_MediaStream, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_MediaStreamPtr, + ); + + static Future fromTracks( + {required List tracks}) => + RustLib.instance.api + .webAudioApiMediaStreamsMediaStreamFromTracks(tracks: tracks); + + Future getTracks() => + RustLib.instance.api.webAudioApiMediaStreamsMediaStreamGetTracks( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class MediaStreamTrack extends RustOpaque { + // Not to be used by end users + MediaStreamTrack.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + MediaStreamTrack.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_MediaStreamTrack, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_MediaStreamTrack, + rustArcDecrementStrongCountPtr: RustLib + .instance.api.rust_arc_decrement_strong_count_MediaStreamTrackPtr, + ); + + Future close() => + RustLib.instance.api.webAudioApiMediaStreamsMediaStreamTrackClose( + that: this, + ); + + Future readyState() => + RustLib.instance.api.webAudioApiMediaStreamsMediaStreamTrackReadyState( + that: this, + ); +} + +/// Ready-state of a [`MediaStreamTrack`] +enum MediaStreamTrackState { + /// The track is active (the track's underlying media source is making a best-effort attempt to + /// provide data in real time). + live, + + /// The track has ended (the track's underlying media source is no longer providing data, and + /// will never provide more data for this track). Once a track enters this state, it never + /// exits it. + ended, + ; +} diff --git a/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/node.dart b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/node.dart new file mode 100644 index 0000000000..dcd2119d05 --- /dev/null +++ b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/node.dart @@ -0,0 +1,996 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../../frb_generated.dart'; +import '../web_audio_api.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +// These functions are ignored because they are not marked as `pub`: `apply_curve`, `apply_mono_to_stereo_gain`, `apply_stereo_to_stereo_gain`, `assert_valid_channel_count_mode`, `assert_valid_channel_count_mode`, `assert_valid_channel_count_mode`, `assert_valid_channel_count_mode`, `assert_valid_channel_count_mode`, `assert_valid_channel_count`, `assert_valid_channel_count`, `assert_valid_channel_count`, `assert_valid_channel_count`, `assert_valid_channel_count`, `assert_valid_channel_interpretation`, `assert_valid_cone_outer_gain`, `assert_valid_feedback_coefs`, `assert_valid_feedforward_coefs`, `assert_valid_number_of_channels`, `assert_valid_number_of_channels`, `calculate_coefs`, `check_ring_buffer_up_down_mix`, `complex`, `cone_gain`, `count_mode`, `count`, `db_to_lin`, `dist_gain`, `downsample_x2`, `downsample_x4`, `from_raw_parts`, `generate_custom`, `generate_sample`, `generate_sawtooth`, `generate_sine`, `generate_square`, `generate_triangle`, `get_computed_freq`, `get_phase_incr`, `get_playback_infos`, `get_stereo_gains`, `handle_control_message`, `inner`, `interpretation`, `into_channel_config`, `inverse`, `lin_to_db`, `load_hrtf_processor`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `normalize_buffer`, `poly_blep`, `precomputed_sine_table`, `process`, `process`, `process`, `process`, `real`, `roll_zero`, `samples_out_mut`, `samples_out`, `set_count_mode`, `set_count`, `set_interpretation`, `tail_time_samples`, `tail`, `unroll_phase`, `upsample_x2`, `upsample_x4` +// These functions are ignored because they have generic arguments: `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `new`, `set_onaudioprocess` +// These types are ignored because they are not used by any `pub` functions: `AnalyserOptions`, `AnalyserRenderer`, `AudioBufferRendererState`, `AudioBufferSourceOptions`, `AudioBufferSourceRenderer`, `AudioDestinationNodeStream`, `AudioNodeOptions`, `BiquadFilterOptions`, `BiquadFilterRenderer`, `ChannelConfigInner`, `ChannelConfig`, `ChannelMergerNode`, `ChannelMergerOptions`, `ChannelMergerRenderer`, `ChannelSplitterNode`, `ChannelSplitterOptions`, `ChannelSplitterRenderer`, `Coefficients`, `ConstantSourceOptions`, `ConstantSourceRenderer`, `ControlMessage`, `ConvolverOptions`, `ConvolverRendererInner`, `ConvolverRenderer`, `DelayOptions`, `DelayReader`, `DelayWriter`, `DestinationRenderer`, `DynamicsCompressorOptions`, `DynamicsCompressorRenderer`, `Fft`, `GainOptions`, `GainRenderer`, `HrtfState`, `IIRFilterNode`, `IIRFilterOptions`, `IirFilterRenderer`, `LoopState`, `MediaElementAudioSourceNode`, `MediaElementAudioSourceOptions`, `MediaStreamAudioSourceOptions`, `MediaStreamRenderer`, `MediaStreamTrackAudioSourceOptions`, `OscillatorOptions`, `OscillatorRenderer`, `PannerOptions`, `PannerRenderer`, `PlaybackInfo`, `RendererConfig`, `ResamplerConfig`, `Resampler`, `Schedule`, `ScriptProcessorOptions`, `ScriptProcessorRenderer`, `SpatialParams`, `StereoPannerOptions`, `StereoPannerRenderer`, `WaveShaperOptions`, `WaveShaperRenderer` +// These functions are ignored: `buffer`, `buffer`, `curve`, `get_byte_frequency_data`, `get_byte_time_domain_data`, `get_float_frequency_data`, `get_float_time_domain_data`, `get_frequency_response`, `get_frequency_response` + +// Rust type: RustOpaqueMoi> +@sealed +class AnalyserNode extends RustOpaque { + // Not to be used by end users + AnalyserNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + AnalyserNode.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_AnalyserNode, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_AnalyserNode, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_AnalyserNodePtr, + ); + + /// The size of the FFT used for frequency-domain analysis (in sample-frames) + /// + /// # Panics + /// + /// This method may panic if the lock to the inner analyser is poisoned + Future fftSize() => + RustLib.instance.api.webAudioApiNodeAnalyserNodeFftSize( + that: this, + ); + + /// Number of bins in the FFT results, is half the FFT size + /// + /// # Panics + /// + /// This method may panic if the lock to the inner analyser is poisoned + Future frequencyBinCount() => + RustLib.instance.api.webAudioApiNodeAnalyserNodeFrequencyBinCount( + that: this, + ); + + /// Maximum power value in the scaling range for the FFT analysis data for + /// conversion to unsigned byte values. The default value is -30. + /// + /// # Panics + /// + /// This method may panic if the lock to the inner analyser is poisoned + Future maxDecibels() => + RustLib.instance.api.webAudioApiNodeAnalyserNodeMaxDecibels( + that: this, + ); + + /// Minimum power value in the scaling range for the FFT analysis data for + /// conversion to unsigned byte values. The default value is -100. + /// + /// # Panics + /// + /// This method may panic if the lock to the inner analyser is poisoned + Future minDecibels() => + RustLib.instance.api.webAudioApiNodeAnalyserNodeMinDecibels( + that: this, + ); + + /// Set FFT size + /// + /// # Panics + /// + /// This function panics if fft_size is not a power of two or not in the range [32, 32768] + Future setFftSize({required BigInt fftSize}) => RustLib.instance.api + .webAudioApiNodeAnalyserNodeSetFftSize(that: this, fftSize: fftSize); + + /// Set max decibels + /// + /// # Panics + /// + /// This function panics if the value is set to a value less than or equal + /// to min decibels. + Future setMaxDecibels({required double value}) => RustLib.instance.api + .webAudioApiNodeAnalyserNodeSetMaxDecibels(that: this, value: value); + + /// Set min decibels + /// + /// # Panics + /// + /// This function panics if the value is set to a value more than or equal + /// to max decibels. + Future setMinDecibels({required double value}) => RustLib.instance.api + .webAudioApiNodeAnalyserNodeSetMinDecibels(that: this, value: value); + + /// Set smoothing time constant + /// + /// # Panics + /// + /// This function panics if the value is set to a value less than 0 or more than 1. + Future setSmoothingTimeConstant({required double value}) => + RustLib.instance.api.webAudioApiNodeAnalyserNodeSetSmoothingTimeConstant( + that: this, value: value); + + /// Time averaging parameter with the last analysis frame. + /// A value from 0 -> 1 where 0 represents no time averaging with the last + /// analysis frame. The default value is 0.8. + /// + /// # Panics + /// + /// This method may panic if the lock to the inner analyser is poisoned + Future smoothingTimeConstant() => + RustLib.instance.api.webAudioApiNodeAnalyserNodeSmoothingTimeConstant( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class AudioBufferSourceNode extends RustOpaque { + // Not to be used by end users + AudioBufferSourceNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + AudioBufferSourceNode.frbInternalSseDecode( + BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib + .instance.api.rust_arc_increment_strong_count_AudioBufferSourceNode, + rustArcDecrementStrongCount: RustLib + .instance.api.rust_arc_decrement_strong_count_AudioBufferSourceNode, + rustArcDecrementStrongCountPtr: RustLib + .instance.api.rust_arc_decrement_strong_count_AudioBufferSourceNodePtr, + ); + + /// K-rate [`AudioParam`] that defines a pitch transposition of the file, + /// expressed in cents + /// + /// see + Future detune() => + RustLib.instance.api.webAudioApiNodeAudioBufferSourceNodeDetune( + that: this, + ); + + /// Defines if the playback the [`AudioBuffer`] should be looped + Future loop() => + RustLib.instance.api.webAudioApiNodeAudioBufferSourceNodeLoop( + that: this, + ); + + /// Defines the loop end point, in the time reference of the [`AudioBuffer`] + Future loopEnd() => + RustLib.instance.api.webAudioApiNodeAudioBufferSourceNodeLoopEnd( + that: this, + ); + + /// Defines the loop start point, in the time reference of the [`AudioBuffer`] + Future loopStart() => + RustLib.instance.api.webAudioApiNodeAudioBufferSourceNodeLoopStart( + that: this, + ); + + /// K-rate [`AudioParam`] that defines the speed at which the [`AudioBuffer`] + /// will be played, e.g.: + /// - `0.5` will play the file at half speed + /// - `-1` will play the file in reverse + /// + /// Note that playback rate will also alter the pitch of the [`AudioBuffer`] + Future playbackRate() => + RustLib.instance.api.webAudioApiNodeAudioBufferSourceNodePlaybackRate( + that: this, + ); + + /// Current playhead position in seconds within the [`AudioBuffer`]. + /// + /// This value is updated at the end of each render quantum. + /// + /// Unofficial v2 API extension, not part of the spec yet. + /// See also: + Future position() => + RustLib.instance.api.webAudioApiNodeAudioBufferSourceNodePosition( + that: this, + ); + + /// Provide an [`AudioBuffer`] as the source of data to be played bask + /// + /// # Panics + /// + /// Panics if a buffer has already been given to the source (though `new` or through + /// `set_buffer`) + Future setBuffer({required AudioBuffer audioBuffer}) => + RustLib.instance.api.webAudioApiNodeAudioBufferSourceNodeSetBuffer( + that: this, audioBuffer: audioBuffer); + + Future setLoop({required bool value}) => RustLib.instance.api + .webAudioApiNodeAudioBufferSourceNodeSetLoop(that: this, value: value); + + Future setLoopEnd({required double value}) => RustLib.instance.api + .webAudioApiNodeAudioBufferSourceNodeSetLoopEnd(that: this, value: value); + + Future setLoopStart({required double value}) => + RustLib.instance.api.webAudioApiNodeAudioBufferSourceNodeSetLoopStart( + that: this, value: value); + + /// Start the playback at the given time and with a given offset + /// + /// # Panics + /// + /// Panics if the source was already started + Future startAtWithOffset( + {required double start, required double offset}) => + RustLib.instance.api + .webAudioApiNodeAudioBufferSourceNodeStartAtWithOffset( + that: this, start: start, offset: offset); + + /// Start the playback at the given time, with a given offset, for a given duration + /// + /// # Panics + /// + /// Panics if the source was already started + Future startAtWithOffsetAndDuration( + {required double start, + required double offset, + required double duration}) => + RustLib.instance.api + .webAudioApiNodeAudioBufferSourceNodeStartAtWithOffsetAndDuration( + that: this, start: start, offset: offset, duration: duration); +} + +// Rust type: RustOpaqueMoi> +@sealed +class AudioDestinationNode extends RustOpaque { + // Not to be used by end users + AudioDestinationNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + AudioDestinationNode.frbInternalSseDecode( + BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib + .instance.api.rust_arc_increment_strong_count_AudioDestinationNode, + rustArcDecrementStrongCount: RustLib + .instance.api.rust_arc_decrement_strong_count_AudioDestinationNode, + rustArcDecrementStrongCountPtr: RustLib + .instance.api.rust_arc_decrement_strong_count_AudioDestinationNodePtr, + ); + + /// The maximum number of channels that the channelCount attribute can be set to (the max + /// number of channels that the hardware is capable of supporting). + /// + Future maxChannelCount() => + RustLib.instance.api.webAudioApiNodeAudioDestinationNodeMaxChannelCount( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class BiquadFilterNode extends RustOpaque { + // Not to be used by end users + BiquadFilterNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + BiquadFilterNode.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_BiquadFilterNode, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_BiquadFilterNode, + rustArcDecrementStrongCountPtr: RustLib + .instance.api.rust_arc_decrement_strong_count_BiquadFilterNodePtr, + ); + + /// Returns the detune audio parameter + Future detune() => + RustLib.instance.api.webAudioApiNodeBiquadFilterNodeDetune( + that: this, + ); + + /// Returns the frequency audio parameter + Future frequency() => + RustLib.instance.api.webAudioApiNodeBiquadFilterNodeFrequency( + that: this, + ); + + /// Returns the gain audio parameter + Future gain() => + RustLib.instance.api.webAudioApiNodeBiquadFilterNodeGain( + that: this, + ); + + /// Returns the Q audio parameter + Future q() => RustLib.instance.api.webAudioApiNodeBiquadFilterNodeQ( + that: this, + ); + + /// biquad filter type setter + /// + /// # Arguments + /// + /// * `type_` - the biquad filter type (lowpass, highpass,...) + Future setType({required BiquadFilterType type}) => RustLib.instance.api + .webAudioApiNodeBiquadFilterNodeSetType(that: this, type: type); + + /// Returns the biquad filter type + Future type() => + RustLib.instance.api.webAudioApiNodeBiquadFilterNodeType( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class ConstantSourceNode extends RustOpaque { + // Not to be used by end users + ConstantSourceNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + ConstantSourceNode.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_ConstantSourceNode, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_ConstantSourceNode, + rustArcDecrementStrongCountPtr: RustLib + .instance.api.rust_arc_decrement_strong_count_ConstantSourceNodePtr, + ); + + Future offset() => + RustLib.instance.api.webAudioApiNodeConstantSourceNodeOffset( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class ConvolverNode extends RustOpaque { + // Not to be used by end users + ConvolverNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + ConvolverNode.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_ConvolverNode, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_ConvolverNode, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_ConvolverNodePtr, + ); + + /// Denotes if the response buffer will be scaled with an equal-power normalization + Future normalize() => + RustLib.instance.api.webAudioApiNodeConvolverNodeNormalize( + that: this, + ); + + /// Set or update the impulse response buffer + /// + /// # Panics + /// + /// Panics when the sample rate of the provided AudioBuffer differs from the audio context + /// sample rate. + Future setBuffer({required AudioBuffer buffer}) => RustLib.instance.api + .webAudioApiNodeConvolverNodeSetBuffer(that: this, buffer: buffer); + + /// Update the `normalize` setting. This will only have an effect when `set_buffer` is called. + Future setNormalize({required bool value}) => RustLib.instance.api + .webAudioApiNodeConvolverNodeSetNormalize(that: this, value: value); +} + +// Rust type: RustOpaqueMoi> +@sealed +class DelayNode extends RustOpaque { + // Not to be used by end users + DelayNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + DelayNode.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_DelayNode, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_DelayNode, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_DelayNodePtr, + ); + + /// A-rate [`AudioParam`] representing the amount of delay (in seconds) to apply. + Future delayTime() => + RustLib.instance.api.webAudioApiNodeDelayNodeDelayTime( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class DynamicsCompressorNode extends RustOpaque { + // Not to be used by end users + DynamicsCompressorNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + DynamicsCompressorNode.frbInternalSseDecode( + BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib + .instance.api.rust_arc_increment_strong_count_DynamicsCompressorNode, + rustArcDecrementStrongCount: RustLib + .instance.api.rust_arc_decrement_strong_count_DynamicsCompressorNode, + rustArcDecrementStrongCountPtr: RustLib + .instance.api.rust_arc_decrement_strong_count_DynamicsCompressorNodePtr, + ); + + Future attack() => + RustLib.instance.api.webAudioApiNodeDynamicsCompressorNodeAttack( + that: this, + ); + + Future knee() => + RustLib.instance.api.webAudioApiNodeDynamicsCompressorNodeKnee( + that: this, + ); + + Future ratio() => + RustLib.instance.api.webAudioApiNodeDynamicsCompressorNodeRatio( + that: this, + ); + + Future reduction() => + RustLib.instance.api.webAudioApiNodeDynamicsCompressorNodeReduction( + that: this, + ); + + Future release() => + RustLib.instance.api.webAudioApiNodeDynamicsCompressorNodeRelease( + that: this, + ); + + Future threshold() => + RustLib.instance.api.webAudioApiNodeDynamicsCompressorNodeThreshold( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class GainNode extends RustOpaque { + // Not to be used by end users + GainNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + GainNode.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_GainNode, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_GainNode, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_GainNodePtr, + ); + + Future gain() => RustLib.instance.api.webAudioApiNodeGainNodeGain( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class MediaStreamAudioDestinationNode extends RustOpaque { + // Not to be used by end users + MediaStreamAudioDestinationNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + MediaStreamAudioDestinationNode.frbInternalSseDecode( + BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib.instance.api + .rust_arc_increment_strong_count_MediaStreamAudioDestinationNode, + rustArcDecrementStrongCount: RustLib.instance.api + .rust_arc_decrement_strong_count_MediaStreamAudioDestinationNode, + rustArcDecrementStrongCountPtr: RustLib.instance.api + .rust_arc_decrement_strong_count_MediaStreamAudioDestinationNodePtr, + ); + + /// A [`MediaStream`] producing audio buffers with the same number of channels as the node + /// itself + Future stream() => + RustLib.instance.api.webAudioApiNodeMediaStreamAudioDestinationNodeStream( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class MediaStreamAudioSourceNode extends RustOpaque { + // Not to be used by end users + MediaStreamAudioSourceNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + MediaStreamAudioSourceNode.frbInternalSseDecode( + BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib.instance.api + .rust_arc_increment_strong_count_MediaStreamAudioSourceNode, + rustArcDecrementStrongCount: RustLib.instance.api + .rust_arc_decrement_strong_count_MediaStreamAudioSourceNode, + rustArcDecrementStrongCountPtr: RustLib.instance.api + .rust_arc_decrement_strong_count_MediaStreamAudioSourceNodePtr, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class MediaStreamTrackAudioSourceNode extends RustOpaque { + // Not to be used by end users + MediaStreamTrackAudioSourceNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + MediaStreamTrackAudioSourceNode.frbInternalSseDecode( + BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib.instance.api + .rust_arc_increment_strong_count_MediaStreamTrackAudioSourceNode, + rustArcDecrementStrongCount: RustLib.instance.api + .rust_arc_decrement_strong_count_MediaStreamTrackAudioSourceNode, + rustArcDecrementStrongCountPtr: RustLib.instance.api + .rust_arc_decrement_strong_count_MediaStreamTrackAudioSourceNodePtr, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class OscillatorNode extends RustOpaque { + // Not to be used by end users + OscillatorNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + OscillatorNode.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_OscillatorNode, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_OscillatorNode, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_OscillatorNodePtr, + ); + + /// A-rate [`AudioParam`] that defines a transposition according to the + /// frequency, expressed in cents. + /// + /// see + /// + /// The final frequency is calculated as follow: frequency * 2^(detune/1200) + Future detune() => + RustLib.instance.api.webAudioApiNodeOscillatorNodeDetune( + that: this, + ); + + /// A-rate [`AudioParam`] that defines the fundamental frequency of the + /// oscillator, expressed in Hz + /// + /// The final frequency is calculated as follow: frequency * 2^(detune/1200) + Future frequency() => + RustLib.instance.api.webAudioApiNodeOscillatorNodeFrequency( + that: this, + ); + + /// Sets a `PeriodicWave` which describes a waveform to be used by the oscillator. + /// + /// Calling this sets the oscillator type to `custom`, once set to `custom` + /// the oscillator cannot be reverted back to a standard waveform. + Future setPeriodicWave({required PeriodicWave periodicWave}) => + RustLib.instance.api.webAudioApiNodeOscillatorNodeSetPeriodicWave( + that: this, periodicWave: periodicWave); + + /// Set the oscillator type + /// + /// # Arguments + /// + /// * `type_` - oscillator type (sine, square, triangle, sawtooth) + /// + /// # Panics + /// + /// if `type_` is `OscillatorType::Custom` + Future setType({required OscillatorType type}) => RustLib.instance.api + .webAudioApiNodeOscillatorNodeSetType(that: this, type: type); + + /// Returns the oscillator type + Future type() => + RustLib.instance.api.webAudioApiNodeOscillatorNodeType( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class PannerNode extends RustOpaque { + // Not to be used by end users + PannerNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + PannerNode.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_PannerNode, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_PannerNode, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_PannerNodePtr, + ); + + Future coneInnerAngle() => + RustLib.instance.api.webAudioApiNodePannerNodeConeInnerAngle( + that: this, + ); + + Future coneOuterAngle() => + RustLib.instance.api.webAudioApiNodePannerNodeConeOuterAngle( + that: this, + ); + + Future coneOuterGain() => + RustLib.instance.api.webAudioApiNodePannerNodeConeOuterGain( + that: this, + ); + + Future distanceModel() => + RustLib.instance.api.webAudioApiNodePannerNodeDistanceModel( + that: this, + ); + + Future maxDistance() => + RustLib.instance.api.webAudioApiNodePannerNodeMaxDistance( + that: this, + ); + + Future orientationX() => + RustLib.instance.api.webAudioApiNodePannerNodeOrientationX( + that: this, + ); + + Future orientationY() => + RustLib.instance.api.webAudioApiNodePannerNodeOrientationY( + that: this, + ); + + Future orientationZ() => + RustLib.instance.api.webAudioApiNodePannerNodeOrientationZ( + that: this, + ); + + Future panningModel() => + RustLib.instance.api.webAudioApiNodePannerNodePanningModel( + that: this, + ); + + Future positionX() => + RustLib.instance.api.webAudioApiNodePannerNodePositionX( + that: this, + ); + + Future positionY() => + RustLib.instance.api.webAudioApiNodePannerNodePositionY( + that: this, + ); + + Future positionZ() => + RustLib.instance.api.webAudioApiNodePannerNodePositionZ( + that: this, + ); + + Future refDistance() => + RustLib.instance.api.webAudioApiNodePannerNodeRefDistance( + that: this, + ); + + Future rolloffFactor() => + RustLib.instance.api.webAudioApiNodePannerNodeRolloffFactor( + that: this, + ); + + Future setConeInnerAngle({required double value}) => + RustLib.instance.api + .webAudioApiNodePannerNodeSetConeInnerAngle(that: this, value: value); + + Future setConeOuterAngle({required double value}) => + RustLib.instance.api + .webAudioApiNodePannerNodeSetConeOuterAngle(that: this, value: value); + + /// Set the coneOuterGain attribute + /// + /// # Panics + /// + /// Panics if the provided value is not in the range [0, 1] + Future setConeOuterGain({required double value}) => RustLib.instance.api + .webAudioApiNodePannerNodeSetConeOuterGain(that: this, value: value); + + Future setDistanceModel({required DistanceModelType value}) => + RustLib.instance.api + .webAudioApiNodePannerNodeSetDistanceModel(that: this, value: value); + + /// Set the maxDistance attribute + /// + /// # Panics + /// + /// Panics if the provided value is negative. + Future setMaxDistance({required double value}) => RustLib.instance.api + .webAudioApiNodePannerNodeSetMaxDistance(that: this, value: value); + + Future setOrientation( + {required double x, required double y, required double z}) => + RustLib.instance.api.webAudioApiNodePannerNodeSetOrientation( + that: this, x: x, y: y, z: z); + + Future setPanningModel({required PanningModelType value}) => + RustLib.instance.api + .webAudioApiNodePannerNodeSetPanningModel(that: this, value: value); + + Future setPosition( + {required double x, required double y, required double z}) => + RustLib.instance.api + .webAudioApiNodePannerNodeSetPosition(that: this, x: x, y: y, z: z); + + /// Set the refDistance attribute + /// + /// # Panics + /// + /// Panics if the provided value is negative. + Future setRefDistance({required double value}) => RustLib.instance.api + .webAudioApiNodePannerNodeSetRefDistance(that: this, value: value); + + /// Set the rolloffFactor attribute + /// + /// # Panics + /// + /// Panics if the provided value is negative. + Future setRolloffFactor({required double value}) => RustLib.instance.api + .webAudioApiNodePannerNodeSetRolloffFactor(that: this, value: value); +} + +// Rust type: RustOpaqueMoi> +@sealed +class ScriptProcessorNode extends RustOpaque { + // Not to be used by end users + ScriptProcessorNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + ScriptProcessorNode.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: RustLib + .instance.api.rust_arc_increment_strong_count_ScriptProcessorNode, + rustArcDecrementStrongCount: RustLib + .instance.api.rust_arc_decrement_strong_count_ScriptProcessorNode, + rustArcDecrementStrongCountPtr: RustLib + .instance.api.rust_arc_decrement_strong_count_ScriptProcessorNodePtr, + ); + + Future bufferSize() => + RustLib.instance.api.webAudioApiNodeScriptProcessorNodeBufferSize( + that: this, + ); + + /// Unset the callback to run when the AudioProcessingEvent is dispatched + Future clearOnaudioprocess() => RustLib.instance.api + .webAudioApiNodeScriptProcessorNodeClearOnaudioprocess( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class StereoPannerNode extends RustOpaque { + // Not to be used by end users + StereoPannerNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + StereoPannerNode.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_StereoPannerNode, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_StereoPannerNode, + rustArcDecrementStrongCountPtr: RustLib + .instance.api.rust_arc_decrement_strong_count_StereoPannerNodePtr, + ); + + /// Returns the pan audio parameter + Future pan() => RustLib.instance.api.webAudioApiNodeStereoPannerNodePan( + that: this, + ); +} + +// Rust type: RustOpaqueMoi> +@sealed +class WaveShaperNode extends RustOpaque { + // Not to be used by end users + WaveShaperNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + WaveShaperNode.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_WaveShaperNode, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_WaveShaperNode, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_WaveShaperNodePtr, + ); + + /// Returns the `oversample` faactor of this node + Future oversample() => + RustLib.instance.api.webAudioApiNodeWaveShaperNodeOversample( + that: this, + ); + + /// Set the distortion `curve` of this node + /// + /// # Arguments + /// + /// * `curve` - the desired distortion `curve` + /// + /// # Panics + /// + /// Panics if a curve has already been given to the source (though `new` or through + /// `set_curve`) + Future setCurve({required List curve}) => RustLib.instance.api + .webAudioApiNodeWaveShaperNodeSetCurve(that: this, curve: curve); + + /// set the `oversample` factor of this node + /// + /// # Arguments + /// + /// * `oversample` - the desired `OversampleType` variant + Future setOversample({required OverSampleType oversample}) => + RustLib.instance.api.webAudioApiNodeWaveShaperNodeSetOversample( + that: this, oversample: oversample); +} + +/// Biquad filter types +enum BiquadFilterType { + /// Allows frequencies below the cutoff frequency to pass through and + /// attenuates frequencies above the cutoff. (12dB/oct rolloff) + lowpass, + + /// Frequencies above the cutoff frequency are passed through, but + /// frequencies below the cutoff are attenuated. (12dB/oct rolloff) + highpass, + + /// Allows a range of frequencies to pass through and attenuates the + /// frequencies below and above this frequency range. + bandpass, + + /// Allows all frequencies through, except for a set of frequencies. + notch, + + /// Allows all frequencies through, but changes the phase relationship + /// between the various frequencies. + allpass, + + /// Allows all frequencies through, but adds a boost (or attenuation) to + /// a range of frequencies. + peaking, + + /// Allows all frequencies through, but adds a boost (or attenuation) to + /// the lower frequencies. + lowshelf, + + /// Allows all frequencies through, but adds a boost (or attenuation) to + /// the higher frequencies. + highshelf, + ; +} + +/// How channels must be matched between the node's inputs and outputs. +enum ChannelCountMode { + /// `computedNumberOfChannels` is the maximum of the number of channels of all connections to an + /// input. In this mode channelCount is ignored. + max, + + /// `computedNumberOfChannels` is determined as for "max" and then clamped to a maximum value of + /// the given channelCount. + clampedMax, + + /// `computedNumberOfChannels` is the exact value as specified by the channelCount. + explicit, + ; +} + +/// The meaning of the channels, defining how audio up-mixing and down-mixing will happen. +enum ChannelInterpretation { + speakers, + discrete, + ; +} + +/// Algorithm to reduce the volume of an audio source as it moves away from the listener +enum DistanceModelType { + linear, + inverse, + exponential, + ; +} + +/// Type of the waveform rendered by an `OscillatorNode` +enum OscillatorType { + /// Sine wave + sine, + + /// Square wave + square, + + /// Sawtooth wave + sawtooth, + + /// Triangle wave + triangle, + + /// type used when periodic_wave is specified + custom, + ; +} + +/// enumerates the oversampling rate available for `WaveShaperNode` +enum OverSampleType { + /// No oversampling is applied + none, + + /// Oversampled by a factor of 2 + x2, + + /// Oversampled by a factor of 4 + x4, + ; +} + +/// Spatialization algorithm used to position the audio in 3D space +enum PanningModelType { + equalPower, + hrtf, + ; +} diff --git a/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/worklet.dart b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/worklet.dart new file mode 100644 index 0000000000..67eba14771 --- /dev/null +++ b/frb_example/integrate_third_party/lib/src/rust/third_party/web_audio_api/worklet.dart @@ -0,0 +1,128 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../../frb_generated.dart'; +import 'node.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +// These functions are ignored because they are not marked as `pub`: `load`, `new` +// These functions are ignored because they have generic arguments: `connect_from_output_to_input`, `connect`, `new` +// These types are ignored because they are not used by any `pub` functions: `AudioParamValues`, `AudioWorkletNodeOptions`, `AudioWorkletRenderer`, `Processor` +// These functions are ignored: `disconnect_dest_from_output_to_input`, `disconnect_dest_from_output`, `disconnect_dest`, `get`, `port`, `set_onprocessorerror` + +// Rust type: RustOpaqueMoi> +@sealed +class AudioWorkletNode extends RustOpaque { + // Not to be used by end users + AudioWorkletNode.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + AudioWorkletNode.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_AudioWorkletNode, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_AudioWorkletNode, + rustArcDecrementStrongCountPtr: RustLib + .instance.api.rust_arc_decrement_strong_count_AudioWorkletNodePtr, + ); + + Future channelConfig() => + RustLib.instance.api.webAudioApiWorkletAudioWorkletNodeChannelConfig( + that: this, + ); + + /// Represents an integer used to determine how many channels are used when up-mixing and + /// down-mixing connections to any inputs to the node. + Future channelCount() => + RustLib.instance.api.webAudioApiWorkletAudioWorkletNodeChannelCount( + that: this, + ); + + /// Represents an enumerated value describing the way channels must be matched between the + /// node's inputs and outputs. + Future channelCountMode() => + RustLib.instance.api.webAudioApiWorkletAudioWorkletNodeChannelCountMode( + that: this, + ); + + /// Represents an enumerated value describing the meaning of the channels. This interpretation + /// will define how audio up-mixing and down-mixing will happen. + Future channelInterpretation() => RustLib.instance.api + .webAudioApiWorkletAudioWorkletNodeChannelInterpretation( + that: this, + ); + + /// Unset the callback to run when an unhandled exception occurs in the audio processor. + Future clearOnprocessorerror() => RustLib.instance.api + .webAudioApiWorkletAudioWorkletNodeClearOnprocessorerror( + that: this, + ); + + /// The [`BaseAudioContext`](crate::context::BaseAudioContext) concrete type which owns this + /// AudioNode. + Future context() => + RustLib.instance.api.webAudioApiWorkletAudioWorkletNodeContext( + that: this, + ); + + /// Disconnects all outgoing connections from the AudioNode. + Future disconnect() => + RustLib.instance.api.webAudioApiWorkletAudioWorkletNodeDisconnect( + that: this, + ); + + /// Disconnects all outgoing connections at the given output port from the AudioNode. + /// + /// # Panics + /// + /// This function will panic when + /// - if the output port is out of bounds for this node + Future disconnectOutput({required BigInt output}) => + RustLib.instance.api.webAudioApiWorkletAudioWorkletNodeDisconnectOutput( + that: this, output: output); + + Future numberOfInputs() => + RustLib.instance.api.webAudioApiWorkletAudioWorkletNodeNumberOfInputs( + that: this, + ); + + Future numberOfOutputs() => + RustLib.instance.api.webAudioApiWorkletAudioWorkletNodeNumberOfOutputs( + that: this, + ); + + /// Collection of AudioParam objects with associated names of this node + /// + /// This map is populated from a list of [`AudioParamDescriptor`]s in the + /// [`AudioWorkletProcessor`] class constructor at the instantiation. + Future parameters() => + RustLib.instance.api.webAudioApiWorkletAudioWorkletNodeParameters( + that: this, + ); + + Future registration() => + RustLib.instance.api.webAudioApiWorkletAudioWorkletNodeRegistration( + that: this, + ); + + /// Update the `channel_count` attribute + Future setChannelCount({required BigInt v}) => RustLib.instance.api + .webAudioApiWorkletAudioWorkletNodeSetChannelCount(that: this, v: v); + + /// Update the `channel_count_mode` attribute + Future setChannelCountMode({required ChannelCountMode v}) => RustLib + .instance.api + .webAudioApiWorkletAudioWorkletNodeSetChannelCountMode(that: this, v: v); + + /// Update the `channel_interpretation` attribute + Future setChannelInterpretation({required ChannelInterpretation v}) => + RustLib.instance.api + .webAudioApiWorkletAudioWorkletNodeSetChannelInterpretation( + that: this, v: v); +} diff --git a/frb_example/integrate_third_party/linux/.gitignore b/frb_example/integrate_third_party/linux/.gitignore new file mode 100644 index 0000000000..d3896c9844 --- /dev/null +++ b/frb_example/integrate_third_party/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/frb_example/integrate_third_party/linux/CMakeLists.txt b/frb_example/integrate_third_party/linux/CMakeLists.txt new file mode 100644 index 0000000000..316cc56ebf --- /dev/null +++ b/frb_example/integrate_third_party/linux/CMakeLists.txt @@ -0,0 +1,145 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.10) +project(runner LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "frb_example_integrate_third_party") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.frb_example_integrate_third_party") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Load bundled libraries from the lib/ directory relative to the binary. +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Root filesystem for cross-building. +if(FLUTTER_TARGET_PLATFORM_SYSROOT) + set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +# Define build configuration options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Define the application target. To change its name, change BINARY_NAME above, +# not the value here, or `flutter run` will no longer work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Only the install-generated bundle's copy of the executable will launch +# correctly, since the resources must in the right relative locations. To avoid +# people trying to run the unbundled copy, put it in a subdirectory instead of +# the default top-level location. +set_target_properties(${BINARY_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" +) + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) + install(FILES "${bundled_library}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endforeach(bundled_library) + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/frb_example/integrate_third_party/linux/flutter/CMakeLists.txt b/frb_example/integrate_third_party/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000000..d5bd01648a --- /dev/null +++ b/frb_example/integrate_third_party/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/frb_example/integrate_third_party/linux/flutter/generated_plugin_registrant.cc b/frb_example/integrate_third_party/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000000..e71a16d23d --- /dev/null +++ b/frb_example/integrate_third_party/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void fl_register_plugins(FlPluginRegistry* registry) { +} diff --git a/frb_example/integrate_third_party/linux/flutter/generated_plugin_registrant.h b/frb_example/integrate_third_party/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000000..e0f0a47bc0 --- /dev/null +++ b/frb_example/integrate_third_party/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/frb_example/integrate_third_party/linux/flutter/generated_plugins.cmake b/frb_example/integrate_third_party/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000000..73ba891d3b --- /dev/null +++ b/frb_example/integrate_third_party/linux/flutter/generated_plugins.cmake @@ -0,0 +1,24 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST + rust_lib_frb_example_integrate_third_party +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/frb_example/integrate_third_party/linux/main.cc b/frb_example/integrate_third_party/linux/main.cc new file mode 100644 index 0000000000..e7c5c54370 --- /dev/null +++ b/frb_example/integrate_third_party/linux/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/frb_example/integrate_third_party/linux/my_application.cc b/frb_example/integrate_third_party/linux/my_application.cc new file mode 100644 index 0000000000..bf166d663a --- /dev/null +++ b/frb_example/integrate_third_party/linux/my_application.cc @@ -0,0 +1,124 @@ +#include "my_application.h" + +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#include "flutter/generated_plugin_registrant.h" + +struct _MyApplication { + GtkApplication parent_instance; + char** dart_entrypoint_arguments; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + MyApplication* self = MY_APPLICATION(application); + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + + // Use a header bar when running in GNOME as this is the common style used + // by applications and is the setup most users will be using (e.g. Ubuntu + // desktop). + // If running on X and not using GNOME then just use a traditional title bar + // in case the window manager does more exotic layout, e.g. tiling. + // If running on Wayland assume the header bar will work (may need changing + // if future cases occur). + gboolean use_header_bar = TRUE; +#ifdef GDK_WINDOWING_X11 + GdkScreen* screen = gtk_window_get_screen(window); + if (GDK_IS_X11_SCREEN(screen)) { + const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); + if (g_strcmp0(wm_name, "GNOME Shell") != 0) { + use_header_bar = FALSE; + } + } +#endif + if (use_header_bar) { + GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); + gtk_widget_show(GTK_WIDGET(header_bar)); + gtk_header_bar_set_title(header_bar, "frb_example_integrate_third_party"); + gtk_header_bar_set_show_close_button(header_bar, TRUE); + gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); + } else { + gtk_window_set_title(window, "frb_example_integrate_third_party"); + } + + gtk_window_set_default_size(window, 1280, 720); + gtk_widget_show(GTK_WIDGET(window)); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); + + FlView* view = fl_view_new(project); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +// Implements GApplication::local_command_line. +static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { + MyApplication* self = MY_APPLICATION(application); + // Strip out the first argument as it is the binary name. + self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); + + g_autoptr(GError) error = nullptr; + if (!g_application_register(application, nullptr, &error)) { + g_warning("Failed to register: %s", error->message); + *exit_status = 1; + return TRUE; + } + + g_application_activate(application); + *exit_status = 0; + + return TRUE; +} + +// Implements GApplication::startup. +static void my_application_startup(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application startup. + + G_APPLICATION_CLASS(my_application_parent_class)->startup(application); +} + +// Implements GApplication::shutdown. +static void my_application_shutdown(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application shutdown. + + G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application); +} + +// Implements GObject::dispose. +static void my_application_dispose(GObject* object) { + MyApplication* self = MY_APPLICATION(object); + g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); + G_OBJECT_CLASS(my_application_parent_class)->dispose(object); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; + G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; + G_APPLICATION_CLASS(klass)->startup = my_application_startup; + G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/frb_example/integrate_third_party/linux/my_application.h b/frb_example/integrate_third_party/linux/my_application.h new file mode 100644 index 0000000000..72271d5e41 --- /dev/null +++ b/frb_example/integrate_third_party/linux/my_application.h @@ -0,0 +1,18 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/frb_example/integrate_third_party/macos/.gitignore b/frb_example/integrate_third_party/macos/.gitignore new file mode 100644 index 0000000000..746adbb6b9 --- /dev/null +++ b/frb_example/integrate_third_party/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/frb_example/integrate_third_party/macos/Flutter/Flutter-Debug.xcconfig b/frb_example/integrate_third_party/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000000..4b81f9b2d2 --- /dev/null +++ b/frb_example/integrate_third_party/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/frb_example/integrate_third_party/macos/Flutter/Flutter-Release.xcconfig b/frb_example/integrate_third_party/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000000..5caa9d1579 --- /dev/null +++ b/frb_example/integrate_third_party/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/frb_example/integrate_third_party/macos/Flutter/GeneratedPluginRegistrant.swift b/frb_example/integrate_third_party/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000000..cccf817a52 --- /dev/null +++ b/frb_example/integrate_third_party/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,10 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { +} diff --git a/frb_example/integrate_third_party/macos/Podfile b/frb_example/integrate_third_party/macos/Podfile new file mode 100644 index 0000000000..c795730db8 --- /dev/null +++ b/frb_example/integrate_third_party/macos/Podfile @@ -0,0 +1,43 @@ +platform :osx, '10.14' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end diff --git a/frb_example/integrate_third_party/macos/Runner.xcodeproj/project.pbxproj b/frb_example/integrate_third_party/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..74f813e83f --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,705 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC10EC2044A3C60003C045; + remoteInfo = Runner; + }; + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* frb_example_integrate_third_party.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "frb_example_integrate_third_party.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C80D6294CF71000263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C80D7294CF71000263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 331C80D6294CF71000263BE5 /* RunnerTests */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* frb_example_integrate_third_party.app */, + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C80D1294CF70F00263BE5 /* Sources */, + 331C80D2294CF70F00263BE5 /* Frameworks */, + 331C80D3294CF70F00263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C80DA294CF71000263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* frb_example_integrate_third_party.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C80D4294CF70F00263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 33CC10EC2044A3C60003C045; + }; + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 331C80D4294CF70F00263BE5 /* RunnerTests */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C80D3294CF70F00263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C80D1294CF70F00263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC10EC2044A3C60003C045 /* Runner */; + targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; + }; + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 331C80DB294CF71000263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.frbExampleIntegrateThirdParty.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/frb_example_integrate_third_party.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/frb_example_integrate_third_party"; + }; + name = Debug; + }; + 331C80DC294CF71000263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.frbExampleIntegrateThirdParty.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/frb_example_integrate_third_party.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/frb_example_integrate_third_party"; + }; + name = Release; + }; + 331C80DD294CF71000263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.frbExampleIntegrateThirdParty.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/frb_example_integrate_third_party.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/frb_example_integrate_third_party"; + }; + name = Profile; + }; + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C80DB294CF71000263BE5 /* Debug */, + 331C80DC294CF71000263BE5 /* Release */, + 331C80DD294CF71000263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/frb_example/integrate_third_party/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/frb_example/integrate_third_party/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000000..18d981003d --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/frb_example/integrate_third_party/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/frb_example/integrate_third_party/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000000..092f01f52b --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frb_example/integrate_third_party/macos/Runner.xcworkspace/contents.xcworkspacedata b/frb_example/integrate_third_party/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..1d526a16ed --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/frb_example/integrate_third_party/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/frb_example/integrate_third_party/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000000..18d981003d --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/frb_example/integrate_third_party/macos/Runner/AppDelegate.swift b/frb_example/integrate_third_party/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000000..d53ef64377 --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@NSApplicationMain +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..a2ec33f19f --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000..82b6f9d9a3 Binary files /dev/null and b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png differ diff --git a/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000..13b35eba55 Binary files /dev/null and b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png differ diff --git a/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000000..0a3f5fa40f Binary files /dev/null and b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png differ diff --git a/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png new file mode 100644 index 0000000000..bdb57226d5 Binary files /dev/null and b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png differ diff --git a/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png new file mode 100644 index 0000000000..f083318e09 Binary files /dev/null and b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png differ diff --git a/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png new file mode 100644 index 0000000000..326c0e72c9 Binary files /dev/null and b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png differ diff --git a/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png new file mode 100644 index 0000000000..2f1632cfdd Binary files /dev/null and b/frb_example/integrate_third_party/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png differ diff --git a/frb_example/integrate_third_party/macos/Runner/Base.lproj/MainMenu.xib b/frb_example/integrate_third_party/macos/Runner/Base.lproj/MainMenu.xib new file mode 100644 index 0000000000..80e867a4e0 --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner/Base.lproj/MainMenu.xib @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frb_example/integrate_third_party/macos/Runner/Configs/AppInfo.xcconfig b/frb_example/integrate_third_party/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000000..00562e0b04 --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = frb_example_integrate_third_party + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.frbExampleIntegrateThirdParty + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2024 com.example. All rights reserved. diff --git a/frb_example/integrate_third_party/macos/Runner/Configs/Debug.xcconfig b/frb_example/integrate_third_party/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000000..36b0fd9464 --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/frb_example/integrate_third_party/macos/Runner/Configs/Release.xcconfig b/frb_example/integrate_third_party/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000000..dff4f49561 --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/frb_example/integrate_third_party/macos/Runner/Configs/Warnings.xcconfig b/frb_example/integrate_third_party/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000000..42bcbf4780 --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/frb_example/integrate_third_party/macos/Runner/DebugProfile.entitlements b/frb_example/integrate_third_party/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000000..dddb8a30c8 --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + diff --git a/frb_example/integrate_third_party/macos/Runner/Info.plist b/frb_example/integrate_third_party/macos/Runner/Info.plist new file mode 100644 index 0000000000..4789daa6a4 --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/frb_example/integrate_third_party/macos/Runner/MainFlutterWindow.swift b/frb_example/integrate_third_party/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000000..3cc05eb234 --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/frb_example/integrate_third_party/macos/Runner/Release.entitlements b/frb_example/integrate_third_party/macos/Runner/Release.entitlements new file mode 100644 index 0000000000..852fa1a472 --- /dev/null +++ b/frb_example/integrate_third_party/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/frb_example/integrate_third_party/macos/RunnerTests/RunnerTests.swift b/frb_example/integrate_third_party/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000000..61f3bd1fc5 --- /dev/null +++ b/frb_example/integrate_third_party/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Cocoa +import FlutterMacOS +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/frb_example/integrate_third_party/pubspec.lock b/frb_example/integrate_third_party/pubspec.lock new file mode 100644 index 0000000000..41bcfd6b12 --- /dev/null +++ b/frb_example/integrate_third_party/pubspec.lock @@ -0,0 +1,706 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7" + url: "https://pub.dev" + source: hosted + version: "67.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d" + url: "https://pub.dev" + source: hosted + version: "6.4.1" + args: + dependency: transitive + description: + name: args + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + url: "https://pub.dev" + source: hosted + version: "2.5.0" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + build: + dependency: transitive + description: + name: build + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + build_cli_annotations: + dependency: transitive + description: + name: build_cli_annotations + sha256: b59d2769769efd6c9ff6d4c4cede0be115a566afc591705c2040b707534b1172 + url: "https://pub.dev" + source: hosted + version: "2.1.0" + build_config: + dependency: transitive + description: + name: build_config + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + url: "https://pub.dev" + source: hosted + version: "1.1.1" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "1414d6d733a85d8ad2f1dfcb3ea7945759e35a123cb99ccfac75d0758f75edfa" + url: "https://pub.dev" + source: hosted + version: "2.4.10" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + sha256: "4ae8ffe5ac758da294ecf1802f2aff01558d8b1b00616aa7538ea9a8a5d50799" + url: "https://pub.dev" + source: hosted + version: "7.3.0" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb + url: "https://pub.dev" + source: hosted + version: "8.9.2" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + url: "https://pub.dev" + source: hosted + version: "2.0.3" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 + url: "https://pub.dev" + source: hosted + version: "4.10.0" + collection: + dependency: transitive + description: + name: collection + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" + source: hosted + version: "1.18.0" + convert: + dependency: transitive + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + coverage: + dependency: transitive + description: + name: coverage + sha256: "3945034e86ea203af7a056d98e98e42a5518fff200d6e8e6647e1886b07e936e" + url: "https://pub.dev" + source: hosted + version: "1.8.0" + crypto: + dependency: transitive + description: + name: crypto + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + url: "https://pub.dev" + source: hosted + version: "3.0.3" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + url: "https://pub.dev" + source: hosted + version: "1.0.8" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" + url: "https://pub.dev" + source: hosted + version: "2.3.6" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + file: + dependency: transitive + description: + name: file + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_driver: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_rust_bridge: + dependency: "direct main" + description: + path: "../../frb_dart" + relative: true + source: path + version: "2.0.0-dev.37" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + freezed: + dependency: "direct dev" + description: + name: freezed + sha256: a434911f643466d78462625df76fd9eb13e57348ff43fe1f77bbe909522c67a1 + url: "https://pub.dev" + source: hosted + version: "2.5.2" + freezed_annotation: + dependency: "direct main" + description: + name: freezed_annotation + sha256: c3fd9336eb55a38cc1bbd79ab17573113a8deccd0ecbbf926cca3c62803b5c2d + url: "https://pub.dev" + source: hosted + version: "2.4.1" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + fuchsia_remote_debug_protocol: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + graphs: + dependency: transitive + description: + name: graphs + sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19 + url: "https://pub.dev" + source: hosted + version: "2.3.1" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + integration_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + io: + dependency: transitive + description: + name: io + sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + js: + dependency: transitive + description: + name: js + sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf + url: "https://pub.dev" + source: hosted + version: "0.7.1" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + url: "https://pub.dev" + source: hosted + version: "10.0.4" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + url: "https://pub.dev" + source: hosted + version: "3.0.3" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + lints: + dependency: "direct dev" + description: + name: lints + sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + logging: + dependency: transitive + description: + name: logging + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" + source: hosted + version: "0.12.16+1" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + url: "https://pub.dev" + source: hosted + version: "0.8.0" + meta: + dependency: transitive + description: + name: meta + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + url: "https://pub.dev" + source: hosted + version: "1.12.0" + mime: + dependency: transitive + description: + name: mime + sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" + url: "https://pub.dev" + source: hosted + version: "1.0.5" + node_preamble: + dependency: transitive + description: + name: node_preamble + sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + path: + dependency: transitive + description: + name: path + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + platform: + dependency: transitive + description: + name: platform + sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" + url: "https://pub.dev" + source: hosted + version: "3.1.4" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + process: + dependency: transitive + description: + name: process + sha256: "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32" + url: "https://pub.dev" + source: hosted + version: "5.0.2" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + rust_lib_frb_example_integrate_third_party: + dependency: "direct main" + description: + path: rust_builder + relative: true + source: path + version: "0.0.1" + shelf: + dependency: transitive + description: + name: shelf + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + url: "https://pub.dev" + source: hosted + version: "1.4.1" + shelf_packages_handler: + dependency: transitive + description: + name: shelf_packages_handler + sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + shelf_static: + dependency: transitive + description: + name: shelf_static + sha256: a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e + url: "https://pub.dev" + source: hosted + version: "1.1.2" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + source_map_stack_trace: + dependency: transitive + description: + name: source_map_stack_trace + sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + source_maps: + dependency: transitive + description: + name: source_maps + sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" + url: "https://pub.dev" + source: hosted + version: "0.10.12" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" + source: hosted + version: "1.11.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" + source: hosted + version: "2.1.2" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + sync_http: + dependency: transitive + description: + name: sync_http + sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961" + url: "https://pub.dev" + source: hosted + version: "0.3.1" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test: + dependency: "direct dev" + description: + name: test + sha256: "7ee446762c2c50b3bd4ea96fe13ffac69919352bd3b4b17bac3f3465edc58073" + url: "https://pub.dev" + source: hosted + version: "1.25.2" + test_api: + dependency: transitive + description: + name: test_api + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + url: "https://pub.dev" + source: hosted + version: "0.7.0" + test_core: + dependency: transitive + description: + name: test_core + sha256: "2bc4b4ecddd75309300d8096f781c0e3280ca1ef85beda558d33fcbedc2eead4" + url: "https://pub.dev" + source: hosted + version: "0.6.0" + timing: + dependency: transitive + description: + name: timing + sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + url: "https://pub.dev" + source: hosted + version: "1.3.2" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + url: "https://pub.dev" + source: hosted + version: "14.2.1" + watcher: + dependency: transitive + description: + name: watcher + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" + url: "https://pub.dev" + source: hosted + version: "0.5.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42" + url: "https://pub.dev" + source: hosted + version: "2.4.5" + webdriver: + dependency: transitive + description: + name: webdriver + sha256: "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e" + url: "https://pub.dev" + source: hosted + version: "3.0.3" + webkit_inspection_protocol: + dependency: transitive + description: + name: webkit_inspection_protocol + sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + yaml: + dependency: transitive + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.dev" + source: hosted + version: "3.1.2" +sdks: + dart: ">=3.4.0 <4.0.0" + flutter: ">=3.18.0-18.0.pre.54" diff --git a/frb_example/integrate_third_party/pubspec.yaml b/frb_example/integrate_third_party/pubspec.yaml new file mode 100644 index 0000000000..433fe7efb1 --- /dev/null +++ b/frb_example/integrate_third_party/pubspec.yaml @@ -0,0 +1,94 @@ +name: frb_example_integrate_third_party +description: "A new Flutter project." +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: '>=3.4.0 <4.0.0' + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.6 + rust_lib_frb_example_integrate_third_party: + path: rust_builder + flutter_rust_bridge: + path: ../../frb_dart + freezed_annotation: ^2.4.1 + +dev_dependencies: + flutter_test: + sdk: flutter + lints: ^2.0.1 + integration_test: + sdk: flutter + build_runner: ^2.4.10 + freezed: ^2.5.2 + test: ^1.25.2 + +# 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: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, 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 from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/frb_example/integrate_third_party/rust/.gitignore b/frb_example/integrate_third_party/rust/.gitignore new file mode 100644 index 0000000000..ea8c4bf7f3 --- /dev/null +++ b/frb_example/integrate_third_party/rust/.gitignore @@ -0,0 +1 @@ +/target diff --git a/frb_example/integrate_third_party/rust/Cargo.lock b/frb_example/integrate_third_party/rust/Cargo.lock new file mode 100644 index 0000000000..3dbacd0666 --- /dev/null +++ b/frb_example/integrate_third_party/rust/Cargo.lock @@ -0,0 +1,1036 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "allo-isolate" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b6d794345b06592d0ebeed8e477e41b71e5a0a49df4fc0e4184d5938b99509" +dependencies = [ + "anyhow", + "atomic", + "backtrace", +] + +[[package]] +name = "android_log-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ecc8056bf6ab9892dcd53216c83d1597487d7dacac16c8df6b877d127df9937" + +[[package]] +name = "android_logger" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c494134f746c14dc653a35a4ea5aca24ac368529da5370ecf41fe0341c35772f" +dependencies = [ + "android_log-sys", + "env_logger", + "log", + "once_cell", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "atomic" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "build-target" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "832133bbabbbaa9fbdba793456a2827627a7d2b8fb96032fa1e7666d7895832b" + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "bytemuck" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + +[[package]] +name = "creek" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0612d3ea4f7f492ad6190edc7aae6437a18fe3061c18274253462bcaee8f618" +dependencies = [ + "creek-core", + "creek-decode-symphonia", + "creek-encode-wav", +] + +[[package]] +name = "creek-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a298808e7679f7153180d236f024325c067c9783cf647394e819786ef7bec11c" +dependencies = [ + "rtrb", +] + +[[package]] +name = "creek-decode-symphonia" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49d411a2837d3ee56c9b54ed992bef632ab82f3ea2786f63edc0937d4bb74777" +dependencies = [ + "creek-core", + "log", + "symphonia", +] + +[[package]] +name = "creek-encode-wav" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f759b8919ae36eff8481dee59ea63daf7f6f36a53f2ba90b97fb3da25f8c0e6" +dependencies = [ + "byte-slice-cast", + "creek-core", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "dart-sys-fork" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "933dafff26172b719bb9695dd3715a1e7792f62dcdc8a5d4c740db7e0fedee8b" +dependencies = [ + "cc", +] + +[[package]] +name = "dashmap" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c" +dependencies = [ + "cfg-if", + "num_cpus", +] + +[[package]] +name = "dasp_sample" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" + +[[package]] +name = "delegate-attr" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51aac4c99b2e6775164b412ea33ae8441b2fde2dbf05a20bc0052a63d08c475b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "env_logger" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "extend" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "311a6d2f1f9d60bff73d2c78a0af97ed27f79672f15c238192a5bbb64db56d00" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "extended" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af9673d8203fcb076b19dfd17e38b3d4ae9f44959416ea532ce72415a6020365" + +[[package]] +name = "float_eq" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28a80e3145d8ad11ba0995949bbcf48b9df2be62772b3d351ef017dff6ecb853" + +[[package]] +name = "flutter_rust_bridge" +version = "2.0.0-dev.37" +dependencies = [ + "allo-isolate", + "android_logger", + "anyhow", + "build-target", + "bytemuck", + "byteorder", + "console_error_panic_hook", + "dart-sys-fork", + "delegate-attr", + "flutter_rust_bridge_macros", + "futures", + "js-sys", + "lazy_static", + "oslog", + "threadpool", + "tokio", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "flutter_rust_bridge_macros" +version = "2.0.0-dev.37" +dependencies = [ + "hex", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hound" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62adaabb884c94955b19907d60019f4e145d091c75345379e70d1ee696f7854f" + +[[package]] +name = "hrtf" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4de47a84fd55fa33aa5ef337016814fdc869fdad23e7898b5322fa290248e6" +dependencies = [ + "byteorder", + "rubato 0.14.1", + "rustfft", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "llq" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22edcb39a6fc7e511be7ba578a719af09125391ecde44e0bd61ad3c8e003a4a3" + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "no_denormals" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc8d4edce03a3be51d7736ddd5cf811f1852c2bb4d03637b82e2d1340e6f0bf9" + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "oslog" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8343ce955f18e7e68c0207dd0ea776ec453035685395ababd2ea651c569728b3" +dependencies = [ + "cc", + "dashmap", + "log", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piston-float" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad78bf43dcf80e8f950c92b84f938a0fc7590b7f6866fbcbeca781609c115590" + +[[package]] +name = "primal-check" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9df7f93fd637f083201473dab4fee2db4c429d32e55e3299980ab3957ab916a0" +dependencies = [ + "num-integer", +] + +[[package]] +name = "proc-macro2" +version = "1.0.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "realfft" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953d9f7e5cdd80963547b456251296efc2626ed4e3cbf36c869d9564e0220571" +dependencies = [ + "rustfft", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rtrb" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3f94e84c073f3b85d4012b44722fa8842b9986d741590d4f2636ad0a5b14143" + +[[package]] +name = "rubato" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6dd52e80cfc21894deadf554a5673002938ae4625f7a283e536f9cf7c17b0d5" +dependencies = [ + "num-complex", + "num-integer", + "num-traits", + "realfft", +] + +[[package]] +name = "rubato" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5d18b486e7d29a408ef3f825bc1327d8f87af091c987ca2f5b734625940e234" +dependencies = [ + "num-complex", + "num-integer", + "num-traits", + "realfft", +] + +[[package]] +name = "rust_lib_frb_example_integrate_third_party" +version = "0.1.0" +dependencies = [ + "anyhow", + "extend", + "flutter_rust_bridge", + "web-audio-api", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustfft" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43806561bc506d0c5d160643ad742e3161049ac01027b5e6d7524091fd401d86" +dependencies = [ + "num-complex", + "num-integer", + "num-traits", + "primal-check", + "strength_reduce", + "transpose", + "version_check", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "strength_reduce" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82" + +[[package]] +name = "symphonia" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "815c942ae7ee74737bb00f965fa5b5a2ac2ce7b6c01c0cc169bbeaf7abd5f5a9" +dependencies = [ + "lazy_static", + "symphonia-bundle-flac", + "symphonia-codec-adpcm", + "symphonia-codec-pcm", + "symphonia-codec-vorbis", + "symphonia-core", + "symphonia-format-mkv", + "symphonia-format-ogg", + "symphonia-format-riff", + "symphonia-metadata", +] + +[[package]] +name = "symphonia-bundle-flac" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72e34f34298a7308d4397a6c7fbf5b84c5d491231ce3dd379707ba673ab3bd97" +dependencies = [ + "log", + "symphonia-core", + "symphonia-metadata", + "symphonia-utils-xiph", +] + +[[package]] +name = "symphonia-codec-adpcm" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c94e1feac3327cd616e973d5be69ad36b3945f16b06f19c6773fc3ac0b426a0f" +dependencies = [ + "log", + "symphonia-core", +] + +[[package]] +name = "symphonia-codec-pcm" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f395a67057c2ebc5e84d7bb1be71cce1a7ba99f64e0f0f0e303a03f79116f89b" +dependencies = [ + "log", + "symphonia-core", +] + +[[package]] +name = "symphonia-codec-vorbis" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a98765fb46a0a6732b007f7e2870c2129b6f78d87db7987e6533c8f164a9f30" +dependencies = [ + "log", + "symphonia-core", + "symphonia-utils-xiph", +] + +[[package]] +name = "symphonia-core" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "798306779e3dc7d5231bd5691f5a813496dc79d3f56bf82e25789f2094e022c3" +dependencies = [ + "arrayvec", + "bitflags", + "bytemuck", + "lazy_static", + "log", +] + +[[package]] +name = "symphonia-format-mkv" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bb43471a100f7882dc9937395bd5ebee8329298e766250b15b3875652fe3d6f" +dependencies = [ + "lazy_static", + "log", + "symphonia-core", + "symphonia-metadata", + "symphonia-utils-xiph", +] + +[[package]] +name = "symphonia-format-ogg" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada3505789516bcf00fc1157c67729eded428b455c27ca370e41f4d785bfa931" +dependencies = [ + "log", + "symphonia-core", + "symphonia-metadata", + "symphonia-utils-xiph", +] + +[[package]] +name = "symphonia-format-riff" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f7be232f962f937f4b7115cbe62c330929345434c834359425e043bfd15f50" +dependencies = [ + "extended", + "log", + "symphonia-core", + "symphonia-metadata", +] + +[[package]] +name = "symphonia-metadata" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc622b9841a10089c5b18e99eb904f4341615d5aa55bbf4eedde1be721a4023c" +dependencies = [ + "encoding_rs", + "lazy_static", + "log", + "symphonia-core", +] + +[[package]] +name = "symphonia-utils-xiph" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "484472580fa49991afda5f6550ece662237b00c6f562c7d9638d1b086ed010fe" +dependencies = [ + "symphonia-core", + "symphonia-metadata", +] + +[[package]] +name = "syn" +version = "2.0.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "tokio" +version = "1.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" +dependencies = [ + "backtrace", + "num_cpus", + "pin-project-lite", +] + +[[package]] +name = "transpose" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad61aed86bc3faea4300c7aee358b4c6d0c8d6ccc36524c96e4c92ccf26e77e" +dependencies = [ + "num-integer", + "strength_reduce", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "vecmath" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ae1e0d85bca567dee1dcf87fb1ca2e792792f66f87dced8381f99cd91156a" +dependencies = [ + "piston-float", +] + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "web-audio-api" +version = "1.0.0-rc.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "984463bf3aaa88a71eae4345a5b2bc84ca22df78c8b8cf1a0da86f20139d9e09" +dependencies = [ + "arc-swap", + "arrayvec", + "creek", + "crossbeam-channel", + "dasp_sample", + "float_eq", + "futures-channel", + "futures-core", + "futures-util", + "hound", + "hrtf", + "llq", + "log", + "no_denormals", + "num-complex", + "realfft", + "rubato 0.15.0", + "smallvec", + "symphonia", + "vecmath", +] + +[[package]] +name = "web-sys" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] diff --git a/frb_example/integrate_third_party/rust/Cargo.toml b/frb_example/integrate_third_party/rust/Cargo.toml new file mode 100644 index 0000000000..3421aa3d2b --- /dev/null +++ b/frb_example/integrate_third_party/rust/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "rust_lib_frb_example_integrate_third_party" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["cdylib", "staticlib"] + +[dependencies] +flutter_rust_bridge = { path = "../../../frb_rust" } +web-audio-api = { version = "1.0.0-rc.6", default-features = false } +extend = "1.2.0" +anyhow = "1.0.86" diff --git a/frb_example/integrate_third_party/rust/src/api/mod.rs b/frb_example/integrate_third_party/rust/src/api/mod.rs new file mode 100644 index 0000000000..6b3a10d828 --- /dev/null +++ b/frb_example/integrate_third_party/rust/src/api/mod.rs @@ -0,0 +1,6 @@ +// +// Do not put code in `mod.rs`, but put in e.g. `simple.rs`. +// + +pub mod override_web_audio_api; +pub mod simple; diff --git a/frb_example/integrate_third_party/rust/src/api/override_web_audio_api.rs b/frb_example/integrate_third_party/rust/src/api/override_web_audio_api.rs new file mode 100644 index 0000000000..beed223cbb --- /dev/null +++ b/frb_example/integrate_third_party/rust/src/api/override_web_audio_api.rs @@ -0,0 +1,21 @@ +use extend::ext; +use flutter_rust_bridge::for_generated::anyhow; +use web_audio_api::context::{AudioContext, BaseAudioContext}; +use web_audio_api::AudioBuffer; + +#[ext] +pub impl AudioContext { + fn frb_override_decode_audio_data_sync( + &self, + input_path: String, + ) -> anyhow::Result { + let input = std::fs::File::open(input_path)?; + self.decode_audio_data_sync(input) + .map_err(|e| anyhow::anyhow!("{:?}", e)) + } + + // TODO only to test overriding an existing function, not to be really used (and should be reverted later)! + fn frb_override_output_latency(&self) -> String { + "hello this is dummy override".to_owned() + } +} diff --git a/frb_example/integrate_third_party/rust/src/api/simple.rs b/frb_example/integrate_third_party/rust/src/api/simple.rs new file mode 100644 index 0000000000..10d32a72da --- /dev/null +++ b/frb_example/integrate_third_party/rust/src/api/simple.rs @@ -0,0 +1,16 @@ +use flutter_rust_bridge::frb; +pub use std::any::Any; +pub use std::error::Error; + +#[frb(init)] +pub fn init_app() { + // Default utilities - feel free to customize + flutter_rust_bridge::setup_default_user_utils(); +} + +#[frb(opaque)] +pub struct DummyStruct; + +pub fn f(a: DummyStruct) { + let _ = a; +} diff --git a/frb_example/integrate_third_party/rust/src/frb_generated.io.rs b/frb_example/integrate_third_party/rust/src/frb_generated.io.rs new file mode 100644 index 0000000000..3f804a3217 --- /dev/null +++ b/frb_example/integrate_third_party/rust/src/frb_generated.io.rs @@ -0,0 +1,535 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +// Section: imports + +use super::*; +use crate::api::override_web_audio_api::AudioContextExt; +use crate::api::simple::*; +use flutter_rust_bridge::for_generated::byteorder::{NativeEndian, ReadBytesExt, WriteBytesExt}; +use flutter_rust_bridge::for_generated::transform_result_dco; +use flutter_rust_bridge::{Handler, IntoIntoDart}; +use web_audio_api::context::*; +use web_audio_api::media_devices::*; +use web_audio_api::media_recorder::*; +use web_audio_api::media_streams::*; +use web_audio_api::node::AudioNode; +use web_audio_api::node::*; +use web_audio_api::worklet::*; +use web_audio_api::*; + +// Section: boilerplate + +flutter_rust_bridge::frb_generated_boilerplate_io!(); + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBuffer( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContext( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioContextRegistration( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioDestinationNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioParam( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioProcessingEvent( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacity( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAudioWorkletNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBiquadFilterNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBlobEvent( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConstantSourceNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerConvolverNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDelayNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDummyStruct( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerEvent( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerGainNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaRecorder( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStream( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::< + flutter_rust_bridge::for_generated::RustAutoOpaqueInner, + >::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::< + flutter_rust_bridge::for_generated::RustAutoOpaqueInner, + >::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamConstraints( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrack( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::< + flutter_rust_bridge::for_generated::RustAutoOpaqueInner, + >::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::< + flutter_rust_bridge::for_generated::RustAutoOpaqueInner, + >::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioContext( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOscillatorNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPannerNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPeriodicWave( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerScriptProcessorNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerStereoPannerNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::increment_strong_count(ptr as _); +} + +#[no_mangle] +pub extern "C" fn frbgen_frb_example_integrate_third_party_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerWaveShaperNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} diff --git a/frb_example/integrate_third_party/rust/src/frb_generated.rs b/frb_example/integrate_third_party/rust/src/frb_generated.rs new file mode 100644 index 0000000000..01eb7b5c6f --- /dev/null +++ b/frb_example/integrate_third_party/rust/src/frb_generated.rs @@ -0,0 +1,8344 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +#![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 +)] + +// Section: imports + +use crate::api::override_web_audio_api::AudioContextExt; +use crate::api::simple::*; +use flutter_rust_bridge::for_generated::byteorder::{NativeEndian, ReadBytesExt, WriteBytesExt}; +use flutter_rust_bridge::for_generated::transform_result_dco; +use flutter_rust_bridge::{Handler, IntoIntoDart}; +use web_audio_api::context::*; +use web_audio_api::media_devices::*; +use web_audio_api::media_recorder::*; +use web_audio_api::media_streams::*; +use web_audio_api::node::AudioNode; +use web_audio_api::node::*; +use web_audio_api::worklet::*; +use web_audio_api::*; + +// 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.0.0-dev.37"; +pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_CONTENT_HASH: i32 = -597242817; + +// Section: executor + +flutter_rust_bridge::frb_generated_default_handler!(); + +// Section: wire_funcs + +fn wire__crate__api__override_web_audio_api__AudioContext_frb_override_decode_audio_data_sync_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: "AudioContext_frb_override_decode_audio_data_sync", 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_input_path = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + web_audio_api::context::AudioContext::frb_override_decode_audio_data_sync(&api_that, api_input_path) + })()) + } }) +} +fn wire__crate__api__override_web_audio_api__AudioContext_frb_override_output_latency_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: "AudioContext_frb_override_output_latency", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::context::AudioContext::frb_override_output_latency(&api_that)) + })()) + } }) +} +fn wire__crate__api__simple__f_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: "f", + 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_a = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse((move || { + Result::<_, ()>::Ok({ + crate::api::simple::f(api_a); + }) + })()) + } + }, + ) +} +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 || { + Result::<_, ()>::Ok({ + crate::api::simple::init_app(); + }) + })()) + } + }, + ) +} +fn wire__web_audio_api__AudioBuffer_duration_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: "AudioBuffer_duration", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::AudioBuffer::duration(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__AudioBuffer_from_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: "AudioBuffer_from", + 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_samples = >>::sse_decode(&mut deserializer); + let api_sample_rate = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse((move || { + Result::<_, ()>::Ok(web_audio_api::AudioBuffer::from( + api_samples, + api_sample_rate, + )) + })()) + } + }, + ) +} +fn wire__web_audio_api__AudioBuffer_get_channel_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_normal::(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "AudioBuffer_get_channel_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_channel_number = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::AudioBuffer::get_channel_data(&api_that, api_channel_number); }) + })()) + } }) +} +fn wire__web_audio_api__AudioBuffer_get_channel_data_mut_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: "AudioBuffer_get_channel_data_mut", 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_channel_number = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::AudioBuffer::get_channel_data_mut(&mut api_that, api_channel_number); }) + })()) + } }) +} +fn wire__web_audio_api__AudioBuffer_length_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: "AudioBuffer_length", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::AudioBuffer::length(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__AudioBuffer_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: "AudioBuffer_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_options = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse((move || { + Result::<_, ()>::Ok(web_audio_api::AudioBuffer::new(api_options)) + })()) + } + }, + ) +} +fn wire__web_audio_api__AudioBuffer_number_of_channels_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: "AudioBuffer_number_of_channels", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::AudioBuffer::number_of_channels(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__AudioBuffer_sample_rate_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: "AudioBuffer_sample_rate", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::AudioBuffer::sample_rate(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__AudioParam_automation_rate_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: "AudioParam_automation_rate", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::AudioParam::automation_rate(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__AudioParam_cancel_and_hold_at_time_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: "AudioParam_cancel_and_hold_at_time", 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_cancel_time = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::AudioParam::cancel_and_hold_at_time(&api_that, api_cancel_time); }) + })()) + } }) +} +fn wire__web_audio_api__AudioParam_cancel_scheduled_values_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: "AudioParam_cancel_scheduled_values", 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_cancel_time = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::AudioParam::cancel_scheduled_values(&api_that, api_cancel_time); }) + })()) + } }) +} +fn wire__web_audio_api__AudioParam_default_value_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: "AudioParam_default_value", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::AudioParam::default_value(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__AudioParam_exponential_ramp_to_value_at_time_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: "AudioParam_exponential_ramp_to_value_at_time", 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_value = ::sse_decode(&mut deserializer); +let api_end_time = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::AudioParam::exponential_ramp_to_value_at_time(&api_that, api_value, api_end_time); }) + })()) + } }) +} +fn wire__web_audio_api__AudioParam_linear_ramp_to_value_at_time_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: "AudioParam_linear_ramp_to_value_at_time", 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_value = ::sse_decode(&mut deserializer); +let api_end_time = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::AudioParam::linear_ramp_to_value_at_time(&api_that, api_value, api_end_time); }) + })()) + } }) +} +fn wire__web_audio_api__AudioParam_max_value_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: "AudioParam_max_value", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::AudioParam::max_value(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__AudioParam_min_value_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: "AudioParam_min_value", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::AudioParam::min_value(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__AudioParam_set_automation_rate_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: "AudioParam_set_automation_rate", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::AudioParam::set_automation_rate(&api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__AudioParam_set_target_at_time_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: "AudioParam_set_target_at_time", 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_value = ::sse_decode(&mut deserializer); +let api_start_time = ::sse_decode(&mut deserializer); +let api_time_constant = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::AudioParam::set_target_at_time(&api_that, api_value, api_start_time, api_time_constant); }) + })()) + } }) +} +fn wire__web_audio_api__AudioParam_set_value_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: "AudioParam_set_value", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::AudioParam::set_value(&api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__AudioParam_set_value_at_time_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: "AudioParam_set_value_at_time", 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_value = ::sse_decode(&mut deserializer); +let api_start_time = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::AudioParam::set_value_at_time(&api_that, api_value, api_start_time); }) + })()) + } }) +} +fn wire__web_audio_api__AudioParam_set_value_curve_at_time_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: "AudioParam_set_value_curve_at_time", 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_values = >::sse_decode(&mut deserializer); +let api_start_time = ::sse_decode(&mut deserializer); +let api_duration = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::AudioParam::set_value_curve_at_time(&api_that, &api_values, api_start_time, api_duration); }) + })()) + } }) +} +fn wire__web_audio_api__AudioParam_value_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: "AudioParam_value", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::AudioParam::value(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__AudioProcessingEvent_get_input_buffer_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: "AudioProcessingEvent_get_input_buffer", + 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_decoded = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order( + vec![ + flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info( + &api_that, 0, false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some( + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref( + &api_that, + ), + ), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_, ()>::Ok(api_that.input_buffer.clone()) + })()) + }, + ) +} +fn wire__web_audio_api__AudioProcessingEvent_get_output_buffer_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: "AudioProcessingEvent_get_output_buffer", + 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_decoded = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order( + vec![ + flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info( + &api_that, 0, false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some( + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref( + &api_that, + ), + ), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_, ()>::Ok(api_that.output_buffer.clone()) + })()) + }, + ) +} +fn wire__web_audio_api__AudioProcessingEvent_get_playback_time_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: "AudioProcessingEvent_get_playback_time", + 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_decoded = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order( + vec![ + flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info( + &api_that, 0, false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some( + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref( + &api_that, + ), + ), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_, ()>::Ok(api_that.playback_time.clone()) + })()) + }, + ) +} +fn wire__web_audio_api__AudioProcessingEvent_set_input_buffer_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: "AudioProcessingEvent_set_input_buffer", 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_input_buffer = ::sse_decode(&mut deserializer);deserializer.end(); + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ { api_that.input_buffer = api_input_buffer; }; }) + })()) }) +} +fn wire__web_audio_api__AudioProcessingEvent_set_output_buffer_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: "AudioProcessingEvent_set_output_buffer", 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_output_buffer = ::sse_decode(&mut deserializer);deserializer.end(); + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ { api_that.output_buffer = api_output_buffer; }; }) + })()) }) +} +fn wire__web_audio_api__AudioProcessingEvent_set_playback_time_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: "AudioProcessingEvent_set_playback_time", 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_playback_time = ::sse_decode(&mut deserializer);deserializer.end(); + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ { api_that.playback_time = api_playback_time; }; }) + })()) }) +} +fn wire__web_audio_api__AudioRenderCapacityEvent_get_average_load_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: "AudioRenderCapacityEvent_get_average_load", + 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_decoded = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order( + vec![ + flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info( + &api_that, 0, false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some( + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref( + &api_that, + ), + ), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_, ()>::Ok(api_that.average_load.clone()) + })()) + }, + ) +} +fn wire__web_audio_api__AudioRenderCapacityEvent_get_event_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: "AudioRenderCapacityEvent_get_event", + 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_decoded = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order( + vec![ + flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info( + &api_that, 0, false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some( + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref( + &api_that, + ), + ), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_, ()>::Ok(api_that.event.clone()) + })()) + }, + ) +} +fn wire__web_audio_api__AudioRenderCapacityEvent_get_peak_load_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: "AudioRenderCapacityEvent_get_peak_load", + 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_decoded = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order( + vec![ + flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info( + &api_that, 0, false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some( + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref( + &api_that, + ), + ), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_, ()>::Ok(api_that.peak_load.clone()) + })()) + }, + ) +} +fn wire__web_audio_api__AudioRenderCapacityEvent_get_timestamp_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: "AudioRenderCapacityEvent_get_timestamp", + 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_decoded = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order( + vec![ + flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info( + &api_that, 0, false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some( + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref( + &api_that, + ), + ), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_, ()>::Ok(api_that.timestamp.clone()) + })()) + }, + ) +} +fn wire__web_audio_api__AudioRenderCapacityEvent_get_underrun_ratio_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: "AudioRenderCapacityEvent_get_underrun_ratio", + 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_decoded = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order( + vec![ + flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info( + &api_that, 0, false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some( + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref( + &api_that, + ), + ), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_, ()>::Ok(api_that.underrun_ratio.clone()) + })()) + }, + ) +} +fn wire__web_audio_api__AudioRenderCapacityEvent_set_average_load_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: "AudioRenderCapacityEvent_set_average_load", 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_average_load = ::sse_decode(&mut deserializer);deserializer.end(); + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ { api_that.average_load = api_average_load; }; }) + })()) }) +} +fn wire__web_audio_api__AudioRenderCapacityEvent_set_event_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: "AudioRenderCapacityEvent_set_event", 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_event = ::sse_decode(&mut deserializer);deserializer.end(); + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ { api_that.event = api_event; }; }) + })()) }) +} +fn wire__web_audio_api__AudioRenderCapacityEvent_set_peak_load_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: "AudioRenderCapacityEvent_set_peak_load", 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_peak_load = ::sse_decode(&mut deserializer);deserializer.end(); + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ { api_that.peak_load = api_peak_load; }; }) + })()) }) +} +fn wire__web_audio_api__AudioRenderCapacityEvent_set_timestamp_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: "AudioRenderCapacityEvent_set_timestamp", 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_timestamp = ::sse_decode(&mut deserializer);deserializer.end(); + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ { api_that.timestamp = api_timestamp; }; }) + })()) }) +} +fn wire__web_audio_api__AudioRenderCapacityEvent_set_underrun_ratio_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: "AudioRenderCapacityEvent_set_underrun_ratio", 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_underrun_ratio = ::sse_decode(&mut deserializer);deserializer.end(); + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ { api_that.underrun_ratio = api_underrun_ratio; }; }) + })()) }) +} +fn wire__web_audio_api__AudioRenderCapacity_clear_onupdate_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: "AudioRenderCapacity_clear_onupdate", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::AudioRenderCapacity::clear_onupdate(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__AudioRenderCapacity_start_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: "AudioRenderCapacity_start", 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_options = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::AudioRenderCapacity::start(&api_that, api_options); }) + })()) + } }) +} +fn wire__web_audio_api__AudioRenderCapacity_stop_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: "AudioRenderCapacity_stop", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::AudioRenderCapacity::stop(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__OfflineAudioCompletionEvent_get_event_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: "OfflineAudioCompletionEvent_get_event", + 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_decoded = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order( + vec![ + flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info( + &api_that, 0, false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some( + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref( + &api_that, + ), + ), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_, ()>::Ok(api_that.event.clone()) + })()) + }, + ) +} +fn wire__web_audio_api__OfflineAudioCompletionEvent_get_rendered_buffer_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: "OfflineAudioCompletionEvent_get_rendered_buffer", + 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_decoded = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order( + vec![ + flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info( + &api_that, 0, false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some( + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref( + &api_that, + ), + ), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_, ()>::Ok(api_that.rendered_buffer.clone()) + })()) + }, + ) +} +fn wire__web_audio_api__OfflineAudioCompletionEvent_set_event_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: "OfflineAudioCompletionEvent_set_event", 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_event = ::sse_decode(&mut deserializer);deserializer.end(); + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ { api_that.event = api_event; }; }) + })()) }) +} +fn wire__web_audio_api__OfflineAudioCompletionEvent_set_rendered_buffer_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: "OfflineAudioCompletionEvent_set_rendered_buffer", 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_rendered_buffer = ::sse_decode(&mut deserializer);deserializer.end(); + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ { api_that.rendered_buffer = api_rendered_buffer; }; }) + })()) }) +} +fn wire__web_audio_api__context__AudioContext_base_latency_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: "AudioContext_base_latency", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::context::AudioContext::base_latency(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__context__AudioContext_clear_onsinkchange_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: "AudioContext_clear_onsinkchange", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::context::AudioContext::clear_onsinkchange(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__context__AudioContext_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: "AudioContext_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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_async_ref(&api_that).await), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::context::AudioContext::close(&api_that).await; }) + })().await) + } }) +} +fn wire__web_audio_api__context__AudioContext_close_sync_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: "AudioContext_close_sync", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::context::AudioContext::close_sync(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__context__AudioContext_create_media_stream_destination_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: "AudioContext_create_media_stream_destination", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::context::AudioContext::create_media_stream_destination(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__context__AudioContext_create_media_stream_source_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: "AudioContext_create_media_stream_source", 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 = >>::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let mut api_media_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false), flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_media, 1, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), +1 => api_media_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_media)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); +let api_media = api_media_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::context::AudioContext::create_media_stream_source(&api_that, &api_media)) + })()) + } }) +} +fn wire__web_audio_api__context__AudioContext_create_media_stream_track_source_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: "AudioContext_create_media_stream_track_source", 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 = >>::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let mut api_media_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false), flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_media, 1, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), +1 => api_media_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_media)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); +let api_media = api_media_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::context::AudioContext::create_media_stream_track_source(&api_that, &api_media)) + })()) + } }) +} +fn wire__web_audio_api__context__AudioContext_new_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: "AudioContext_new", + 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_options = + ::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse((move || { + Result::<_, ()>::Ok(web_audio_api::context::AudioContext::new(api_options)) + })()) + }, + ) +} +fn wire__web_audio_api__context__AudioContext_output_latency_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: "AudioContext_output_latency", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::context::AudioContext::output_latency(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__context__AudioContext_render_capacity_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: "AudioContext_render_capacity", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::context::AudioContext::render_capacity(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__context__AudioContext_resume_sync_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: "AudioContext_resume_sync", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::context::AudioContext::resume_sync(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__context__AudioContext_sink_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: "AudioContext_sink_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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::context::AudioContext::sink_id(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__context__AudioContext_suspend_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: "AudioContext_suspend", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_async_ref(&api_that).await), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::context::AudioContext::suspend(&api_that).await; }) + })().await) + } }) +} +fn wire__web_audio_api__context__AudioContext_suspend_sync_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: "AudioContext_suspend_sync", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::context::AudioContext::suspend_sync(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__context__ConcreteBaseAudioContext_mark_cycle_breaker_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: "ConcreteBaseAudioContext_mark_cycle_breaker", 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_reg = >>::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let mut api_reg_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false), flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_reg, 1, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), +1 => api_reg_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_reg)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); +let api_reg = api_reg_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::context::ConcreteBaseAudioContext::mark_cycle_breaker(&api_that, &api_reg); }) + })()) + } }) +} +fn wire__web_audio_api__context__OfflineAudioContext_clear_oncomplete_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: "OfflineAudioContext_clear_oncomplete", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::context::OfflineAudioContext::clear_oncomplete(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__context__OfflineAudioContext_length_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: "OfflineAudioContext_length", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::context::OfflineAudioContext::length(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__context__OfflineAudioContext_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: "OfflineAudioContext_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_number_of_channels = ::sse_decode(&mut deserializer); + let api_length = ::sse_decode(&mut deserializer); + let api_sample_rate = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse((move || { + Result::<_, ()>::Ok(web_audio_api::context::OfflineAudioContext::new( + api_number_of_channels, + api_length, + api_sample_rate, + )) + })()) + } + }, + ) +} +fn wire__web_audio_api__context__OfflineAudioContext_resume_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: "OfflineAudioContext_resume", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_async_ref(&api_that).await), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::context::OfflineAudioContext::resume(&api_that).await; }) + })().await) + } }) +} +fn wire__web_audio_api__context__OfflineAudioContext_start_rendering_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: "OfflineAudioContext_start_rendering", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_async_ref(&api_that).await), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::context::OfflineAudioContext::start_rendering(&api_that).await) + })().await) + } }) +} +fn wire__web_audio_api__context__OfflineAudioContext_start_rendering_sync_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: "OfflineAudioContext_start_rendering_sync", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::context::OfflineAudioContext::start_rendering_sync(&mut api_that)) + })()) + } }) +} +fn wire__web_audio_api__context__OfflineAudioContext_suspend_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: "OfflineAudioContext_suspend", 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_suspend_time = ::sse_decode(&mut deserializer);deserializer.end(); move |context| async move { + transform_result_sse((move || async move { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_async_ref(&api_that).await), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::context::OfflineAudioContext::suspend(&api_that, api_suspend_time).await; }) + })().await) + } }) +} +fn wire__web_audio_api__media_devices__get_user_media_sync_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: "get_user_media_sync", + 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_constraints = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse((move || { + Result::<_, ()>::Ok(web_audio_api::media_devices::get_user_media_sync( + api_constraints, + )) + })()) + } + }, + ) +} +fn wire__web_audio_api__media_recorder__BlobEvent_get_blob_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: "BlobEvent_get_blob", + 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_decoded = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order( + vec![ + flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info( + &api_that, 0, false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some( + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref( + &api_that, + ), + ), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_, ()>::Ok(api_that.blob.clone()) + })()) + }, + ) +} +fn wire__web_audio_api__media_recorder__BlobEvent_get_event_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: "BlobEvent_get_event", + 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_decoded = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order( + vec![ + flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info( + &api_that, 0, false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some( + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref( + &api_that, + ), + ), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_, ()>::Ok(api_that.event.clone()) + })()) + }, + ) +} +fn wire__web_audio_api__media_recorder__BlobEvent_get_timecode_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: "BlobEvent_get_timecode", + 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_decoded = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order( + vec![ + flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info( + &api_that, 0, false, + ), + ], + ); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some( + flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref( + &api_that, + ), + ), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_, ()>::Ok(api_that.timecode.clone()) + })()) + }, + ) +} +fn wire__web_audio_api__media_recorder__BlobEvent_set_blob_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: "BlobEvent_set_blob", 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_blob = >::sse_decode(&mut deserializer);deserializer.end(); + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ { api_that.blob = api_blob; }; }) + })()) }) +} +fn wire__web_audio_api__media_recorder__BlobEvent_set_event_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: "BlobEvent_set_event", 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_event = ::sse_decode(&mut deserializer);deserializer.end(); + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ { api_that.event = api_event; }; }) + })()) }) +} +fn wire__web_audio_api__media_recorder__BlobEvent_set_timecode_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: "BlobEvent_set_timecode", 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_timecode = ::sse_decode(&mut deserializer);deserializer.end(); + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ { api_that.timecode = api_timecode; }; }) + })()) }) +} +fn wire__web_audio_api__media_recorder__MediaRecorder_clear_ondataavailable_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: "MediaRecorder_clear_ondataavailable", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::media_recorder::MediaRecorder::clear_ondataavailable(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__media_recorder__MediaRecorder_clear_onerror_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: "MediaRecorder_clear_onerror", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::media_recorder::MediaRecorder::clear_onerror(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__media_recorder__MediaRecorder_clear_onstop_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: "MediaRecorder_clear_onstop", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::media_recorder::MediaRecorder::clear_onstop(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__media_recorder__MediaRecorder_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: "MediaRecorder_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_stream = >>::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_stream_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_stream, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_stream_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_stream)), + _ => unreachable!(), + } + } + let api_stream = api_stream_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::media_recorder::MediaRecorder::new(&api_stream)) + })()) + } }) +} +fn wire__web_audio_api__media_recorder__MediaRecorder_start_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: "MediaRecorder_start", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::media_recorder::MediaRecorder::start(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__media_recorder__MediaRecorder_stop_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: "MediaRecorder_stop", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::media_recorder::MediaRecorder::stop(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__media_streams__MediaStreamTrack_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_normal::(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "MediaStreamTrack_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| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::media_streams::MediaStreamTrack::close(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__media_streams__MediaStreamTrack_ready_state_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: "MediaStreamTrack_ready_state", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::media_streams::MediaStreamTrack::ready_state(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__media_streams__MediaStream_from_tracks_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: "MediaStream_from_tracks", + 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_tracks = >::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse((move || { + Result::<_, ()>::Ok(web_audio_api::media_streams::MediaStream::from_tracks( + api_tracks, + )) + })()) + } + }, + ) +} +fn wire__web_audio_api__media_streams__MediaStream_get_tracks_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: "MediaStream_get_tracks", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::media_streams::MediaStream::get_tracks(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__AnalyserNode_fft_size_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: "AnalyserNode_fft_size", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::AnalyserNode::fft_size(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__AnalyserNode_frequency_bin_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: "AnalyserNode_frequency_bin_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_that = >>::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::AnalyserNode::frequency_bin_count(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__AnalyserNode_max_decibels_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: "AnalyserNode_max_decibels", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::AnalyserNode::max_decibels(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__AnalyserNode_min_decibels_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: "AnalyserNode_min_decibels", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::AnalyserNode::min_decibels(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__AnalyserNode_set_fft_size_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: "AnalyserNode_set_fft_size", 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_fft_size = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::AnalyserNode::set_fft_size(&mut api_that, api_fft_size); }) + })()) + } }) +} +fn wire__web_audio_api__node__AnalyserNode_set_max_decibels_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: "AnalyserNode_set_max_decibels", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::AnalyserNode::set_max_decibels(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__AnalyserNode_set_min_decibels_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: "AnalyserNode_set_min_decibels", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::AnalyserNode::set_min_decibels(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__AnalyserNode_set_smoothing_time_constant_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: "AnalyserNode_set_smoothing_time_constant", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::AnalyserNode::set_smoothing_time_constant(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__AnalyserNode_smoothing_time_constant_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: "AnalyserNode_smoothing_time_constant", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::AnalyserNode::smoothing_time_constant(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__AudioBufferSourceNode_detune_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: "AudioBufferSourceNode_detune", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::AudioBufferSourceNode::detune(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__AudioBufferSourceNode_loop__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: "AudioBufferSourceNode_loop_", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::AudioBufferSourceNode::loop_(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__AudioBufferSourceNode_loop_end_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: "AudioBufferSourceNode_loop_end", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::AudioBufferSourceNode::loop_end(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__AudioBufferSourceNode_loop_start_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: "AudioBufferSourceNode_loop_start", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::AudioBufferSourceNode::loop_start(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__AudioBufferSourceNode_playback_rate_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: "AudioBufferSourceNode_playback_rate", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::AudioBufferSourceNode::playback_rate(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__AudioBufferSourceNode_position_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: "AudioBufferSourceNode_position", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::AudioBufferSourceNode::position(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__AudioBufferSourceNode_set_buffer_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: "AudioBufferSourceNode_set_buffer", 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_audio_buffer = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::AudioBufferSourceNode::set_buffer(&mut api_that, api_audio_buffer); }) + })()) + } }) +} +fn wire__web_audio_api__node__AudioBufferSourceNode_set_loop_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: "AudioBufferSourceNode_set_loop", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::AudioBufferSourceNode::set_loop(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__AudioBufferSourceNode_set_loop_end_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: "AudioBufferSourceNode_set_loop_end", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::AudioBufferSourceNode::set_loop_end(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__AudioBufferSourceNode_set_loop_start_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: "AudioBufferSourceNode_set_loop_start", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::AudioBufferSourceNode::set_loop_start(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__AudioBufferSourceNode_start_at_with_offset_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: "AudioBufferSourceNode_start_at_with_offset", 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_start = ::sse_decode(&mut deserializer); +let api_offset = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::AudioBufferSourceNode::start_at_with_offset(&mut api_that, api_start, api_offset); }) + })()) + } }) +} +fn wire__web_audio_api__node__AudioBufferSourceNode_start_at_with_offset_and_duration_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: "AudioBufferSourceNode_start_at_with_offset_and_duration", 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_start = ::sse_decode(&mut deserializer); +let api_offset = ::sse_decode(&mut deserializer); +let api_duration = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::AudioBufferSourceNode::start_at_with_offset_and_duration(&mut api_that, api_start, api_offset, api_duration); }) + })()) + } }) +} +fn wire__web_audio_api__node__AudioDestinationNode_max_channel_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: "AudioDestinationNode_max_channel_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_that = >>::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::AudioDestinationNode::max_channel_count(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__BiquadFilterNode_detune_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: "BiquadFilterNode_detune", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::BiquadFilterNode::detune(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__BiquadFilterNode_frequency_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: "BiquadFilterNode_frequency", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::BiquadFilterNode::frequency(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__BiquadFilterNode_gain_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: "BiquadFilterNode_gain", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::BiquadFilterNode::gain(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__BiquadFilterNode_q_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: "BiquadFilterNode_q", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::BiquadFilterNode::q(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__BiquadFilterNode_set_type_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: "BiquadFilterNode_set_type", 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_type_ = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::BiquadFilterNode::set_type(&mut api_that, api_type_); }) + })()) + } }) +} +fn wire__web_audio_api__node__BiquadFilterNode_type__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: "BiquadFilterNode_type_", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::BiquadFilterNode::type_(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__ConstantSourceNode_offset_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: "ConstantSourceNode_offset", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::ConstantSourceNode::offset(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__ConvolverNode_normalize_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: "ConvolverNode_normalize", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::ConvolverNode::normalize(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__ConvolverNode_set_buffer_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: "ConvolverNode_set_buffer", 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_buffer = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::ConvolverNode::set_buffer(&mut api_that, api_buffer); }) + })()) + } }) +} +fn wire__web_audio_api__node__ConvolverNode_set_normalize_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: "ConvolverNode_set_normalize", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::ConvolverNode::set_normalize(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__DelayNode_delay_time_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: "DelayNode_delay_time", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::DelayNode::delay_time(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__DynamicsCompressorNode_attack_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: "DynamicsCompressorNode_attack", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::DynamicsCompressorNode::attack(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__DynamicsCompressorNode_knee_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: "DynamicsCompressorNode_knee", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::DynamicsCompressorNode::knee(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__DynamicsCompressorNode_ratio_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: "DynamicsCompressorNode_ratio", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::DynamicsCompressorNode::ratio(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__DynamicsCompressorNode_reduction_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: "DynamicsCompressorNode_reduction", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::DynamicsCompressorNode::reduction(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__DynamicsCompressorNode_release_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: "DynamicsCompressorNode_release", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::DynamicsCompressorNode::release(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__DynamicsCompressorNode_threshold_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: "DynamicsCompressorNode_threshold", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::DynamicsCompressorNode::threshold(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__GainNode_gain_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: "GainNode_gain", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::GainNode::gain(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__MediaStreamAudioDestinationNode_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_normal::(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "MediaStreamAudioDestinationNode_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_that = >>::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::MediaStreamAudioDestinationNode::stream(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__OscillatorNode_detune_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: "OscillatorNode_detune", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::OscillatorNode::detune(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__OscillatorNode_frequency_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: "OscillatorNode_frequency", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::OscillatorNode::frequency(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__OscillatorNode_set_periodic_wave_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: "OscillatorNode_set_periodic_wave", 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_periodic_wave = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::OscillatorNode::set_periodic_wave(&mut api_that, api_periodic_wave); }) + })()) + } }) +} +fn wire__web_audio_api__node__OscillatorNode_set_type_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: "OscillatorNode_set_type", 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_type_ = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::OscillatorNode::set_type(&mut api_that, api_type_); }) + })()) + } }) +} +fn wire__web_audio_api__node__OscillatorNode_type__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: "OscillatorNode_type_", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::OscillatorNode::type_(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_cone_inner_angle_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: "PannerNode_cone_inner_angle", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::PannerNode::cone_inner_angle(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_cone_outer_angle_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: "PannerNode_cone_outer_angle", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::PannerNode::cone_outer_angle(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_cone_outer_gain_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: "PannerNode_cone_outer_gain", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::PannerNode::cone_outer_gain(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_distance_model_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: "PannerNode_distance_model", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::PannerNode::distance_model(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_max_distance_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: "PannerNode_max_distance", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::PannerNode::max_distance(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_orientation_x_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: "PannerNode_orientation_x", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::orientation_x(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_orientation_y_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: "PannerNode_orientation_y", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::orientation_y(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_orientation_z_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: "PannerNode_orientation_z", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::orientation_z(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_panning_model_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: "PannerNode_panning_model", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::PannerNode::panning_model(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_position_x_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: "PannerNode_position_x", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::position_x(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_position_y_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: "PannerNode_position_y", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::position_y(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_position_z_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: "PannerNode_position_z", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::position_z(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_ref_distance_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: "PannerNode_ref_distance", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::PannerNode::ref_distance(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_rolloff_factor_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: "PannerNode_rolloff_factor", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::PannerNode::rolloff_factor(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_set_cone_inner_angle_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: "PannerNode_set_cone_inner_angle", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::set_cone_inner_angle(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_set_cone_outer_angle_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: "PannerNode_set_cone_outer_angle", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::set_cone_outer_angle(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_set_cone_outer_gain_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: "PannerNode_set_cone_outer_gain", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::set_cone_outer_gain(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_set_distance_model_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: "PannerNode_set_distance_model", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::set_distance_model(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_set_max_distance_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: "PannerNode_set_max_distance", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::set_max_distance(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_set_orientation_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: "PannerNode_set_orientation", 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_x = ::sse_decode(&mut deserializer); +let api_y = ::sse_decode(&mut deserializer); +let api_z = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::set_orientation(&api_that, api_x, api_y, api_z); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_set_panning_model_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: "PannerNode_set_panning_model", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::set_panning_model(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_set_position_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: "PannerNode_set_position", 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_x = ::sse_decode(&mut deserializer); +let api_y = ::sse_decode(&mut deserializer); +let api_z = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::set_position(&api_that, api_x, api_y, api_z); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_set_ref_distance_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: "PannerNode_set_ref_distance", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::set_ref_distance(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__PannerNode_set_rolloff_factor_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: "PannerNode_set_rolloff_factor", 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_value = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::PannerNode::set_rolloff_factor(&mut api_that, api_value); }) + })()) + } }) +} +fn wire__web_audio_api__node__ScriptProcessorNode_buffer_size_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: "ScriptProcessorNode_buffer_size", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::ScriptProcessorNode::buffer_size(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__ScriptProcessorNode_clear_onaudioprocess_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: "ScriptProcessorNode_clear_onaudioprocess", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::ScriptProcessorNode::clear_onaudioprocess(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__StereoPannerNode_pan_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: "StereoPannerNode_pan", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::StereoPannerNode::pan(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__node__WaveShaperNode_oversample_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: "WaveShaperNode_oversample", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::node::WaveShaperNode::oversample(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__node__WaveShaperNode_set_curve_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: "WaveShaperNode_set_curve", 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_curve = >::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::WaveShaperNode::set_curve(&mut api_that, api_curve); }) + })()) + } }) +} +fn wire__web_audio_api__node__WaveShaperNode_set_oversample_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: "WaveShaperNode_set_oversample", 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_oversample = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, true)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref_mut(&api_that)), + _ => unreachable!(), + } + } + let mut api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::node::WaveShaperNode::set_oversample(&mut api_that, api_oversample); }) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_channel_config_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: "AudioWorkletNode_channel_config", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::worklet::AudioWorkletNode::channel_config(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_channel_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: "AudioWorkletNode_channel_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_that = >>::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::worklet::AudioWorkletNode::channel_count(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_channel_count_mode_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: "AudioWorkletNode_channel_count_mode", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::worklet::AudioWorkletNode::channel_count_mode(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_channel_interpretation_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: "AudioWorkletNode_channel_interpretation", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::worklet::AudioWorkletNode::channel_interpretation(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_clear_onprocessorerror_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: "AudioWorkletNode_clear_onprocessorerror", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::worklet::AudioWorkletNode::clear_onprocessorerror(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_context_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: "AudioWorkletNode_context", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::worklet::AudioWorkletNode::context(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_disconnect_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: "AudioWorkletNode_disconnect", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::worklet::AudioWorkletNode::disconnect(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_disconnect_output_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: "AudioWorkletNode_disconnect_output", 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_output = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::worklet::AudioWorkletNode::disconnect_output(&api_that, api_output); }) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_number_of_inputs_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: "AudioWorkletNode_number_of_inputs", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::worklet::AudioWorkletNode::number_of_inputs(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_number_of_outputs_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: "AudioWorkletNode_number_of_outputs", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok(web_audio_api::worklet::AudioWorkletNode::number_of_outputs(&api_that)) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_parameters_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: "AudioWorkletNode_parameters", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::worklet::AudioWorkletNode::parameters(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_registration_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: "AudioWorkletNode_registration", 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_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::worklet::AudioWorkletNode::registration(&api_that); }) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_set_channel_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: "AudioWorkletNode_set_channel_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_that = >>::sse_decode(&mut deserializer); +let api_v = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::worklet::AudioWorkletNode::set_channel_count(&api_that, api_v); }) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_set_channel_count_mode_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: "AudioWorkletNode_set_channel_count_mode", 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_v = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::worklet::AudioWorkletNode::set_channel_count_mode(&api_that, api_v); }) + })()) + } }) +} +fn wire__web_audio_api__worklet__AudioWorkletNode_set_channel_interpretation_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: "AudioWorkletNode_set_channel_interpretation", 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_v = ::sse_decode(&mut deserializer);deserializer.end(); move |context| { + transform_result_sse((move || { + let mut api_that_decoded = None; +let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]); + for i in decode_indices_ { + match i { + 0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)), + _ => unreachable!(), + } + } + let api_that = api_that_decoded.unwrap(); + Result::<_,()>::Ok({ web_audio_api::worklet::AudioWorkletNode::set_channel_interpretation(&api_that, api_v); }) + })()) + } }) +} + +// Section: static_checks + +#[allow(clippy::unnecessary_literal_unwrap)] +const _: fn() = || { + { + let AudioBufferOptions = None::.unwrap(); + let _: usize = AudioBufferOptions.number_of_channels; + let _: usize = AudioBufferOptions.length; + let _: f32 = AudioBufferOptions.sample_rate; + } + match None::.unwrap() { + web_audio_api::context::AudioContextLatencyCategory::Balanced => {} + web_audio_api::context::AudioContextLatencyCategory::Interactive => {} + web_audio_api::context::AudioContextLatencyCategory::Playback => {} + web_audio_api::context::AudioContextLatencyCategory::Custom(field0) => { + let _: f64 = field0; + } + } + { + let AudioContextOptions = None::.unwrap(); + let _: web_audio_api::context::AudioContextLatencyCategory = + AudioContextOptions.latency_hint; + let _: Option = AudioContextOptions.sample_rate; + let _: String = AudioContextOptions.sink_id; + let _: web_audio_api::context::AudioContextRenderSizeCategory = + AudioContextOptions.render_size_hint; + } + { + let AudioRenderCapacityOptions = None::.unwrap(); + let _: f64 = AudioRenderCapacityOptions.update_interval; + } +}; + +// 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 +); +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 AnalyserNode { + // 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 AudioBuffer { + // 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 AudioBufferSourceNode { + // 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 AudioContext { + // 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 AudioDestinationNode { + // 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 AudioParam { + // 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 AudioProcessingEvent { + // 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 AudioRenderCapacity { + // 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 AudioRenderCapacityEvent { + // 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 AudioWorkletNode { + // 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 BiquadFilterNode { + // 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 BlobEvent { + // 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 ConcreteBaseAudioContext { + // 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 ConstantSourceNode { + // 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 ConvolverNode { + // 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 DelayNode { + // 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 DummyStruct { + // 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 DynamicsCompressorNode { + // 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 Event { + // 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 GainNode { + // 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 MediaRecorder { + // 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 MediaStream { + // 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 MediaStreamAudioDestinationNode { + // 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 MediaStreamAudioSourceNode { + // 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 MediaStreamConstraints { + // 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 MediaStreamTrack { + // 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 MediaStreamTrackAudioSourceNode { + // 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 OfflineAudioCompletionEvent { + // 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 OfflineAudioContext { + // 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 OscillatorNode { + // 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 PannerNode { + // 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 PeriodicWave { + // 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 ScriptProcessorNode { + // 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 StereoPannerNode { + // 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 WaveShaperNode { + // 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< + 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< + 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< + 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< + 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< + 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< + 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< + 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< + 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< + 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< + 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 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 web_audio_api::AudioBufferOptions { + // 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_numberOfChannels = ::sse_decode(deserializer); + let mut var_length = ::sse_decode(deserializer); + let mut var_sampleRate = ::sse_decode(deserializer); + return web_audio_api::AudioBufferOptions { + number_of_channels: var_numberOfChannels, + length: var_length, + sample_rate: var_sampleRate, + }; + } +} + +impl SseDecode for web_audio_api::context::AudioContextLatencyCategory { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut tag_ = ::sse_decode(deserializer); + match tag_ { + 0 => { + return web_audio_api::context::AudioContextLatencyCategory::Balanced; + } + 1 => { + return web_audio_api::context::AudioContextLatencyCategory::Interactive; + } + 2 => { + return web_audio_api::context::AudioContextLatencyCategory::Playback; + } + 3 => { + let mut var_field0 = ::sse_decode(deserializer); + return web_audio_api::context::AudioContextLatencyCategory::Custom(var_field0); + } + _ => { + unimplemented!(""); + } + } + } +} + +impl SseDecode for web_audio_api::context::AudioContextOptions { + // 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_latencyHint = + ::sse_decode(deserializer); + let mut var_sampleRate = >::sse_decode(deserializer); + let mut var_sinkId = ::sse_decode(deserializer); + let mut var_renderSizeHint = + ::sse_decode(deserializer); + return web_audio_api::context::AudioContextOptions { + latency_hint: var_latencyHint, + sample_rate: var_sampleRate, + sink_id: var_sinkId, + render_size_hint: var_renderSizeHint, + }; + } +} + +impl SseDecode for web_audio_api::context::AudioContextRenderSizeCategory { + // 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 => web_audio_api::context::AudioContextRenderSizeCategory::Default, + _ => unreachable!( + "Invalid variant for AudioContextRenderSizeCategory: {}", + inner + ), + }; + } +} + +impl SseDecode for web_audio_api::AudioRenderCapacityOptions { + // 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_updateInterval = ::sse_decode(deserializer); + return web_audio_api::AudioRenderCapacityOptions { + update_interval: var_updateInterval, + }; + } +} + +impl SseDecode for web_audio_api::AutomationRate { + // 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 => web_audio_api::AutomationRate::A, + 1 => web_audio_api::AutomationRate::K, + _ => unreachable!("Invalid variant for AutomationRate: {}", inner), + }; + } +} + +impl SseDecode for web_audio_api::node::BiquadFilterType { + // 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 => web_audio_api::node::BiquadFilterType::Lowpass, + 1 => web_audio_api::node::BiquadFilterType::Highpass, + 2 => web_audio_api::node::BiquadFilterType::Bandpass, + 3 => web_audio_api::node::BiquadFilterType::Notch, + 4 => web_audio_api::node::BiquadFilterType::Allpass, + 5 => web_audio_api::node::BiquadFilterType::Peaking, + 6 => web_audio_api::node::BiquadFilterType::Lowshelf, + 7 => web_audio_api::node::BiquadFilterType::Highshelf, + _ => unreachable!("Invalid variant for BiquadFilterType: {}", 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 web_audio_api::node::ChannelCountMode { + // 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 => web_audio_api::node::ChannelCountMode::Max, + 1 => web_audio_api::node::ChannelCountMode::ClampedMax, + 2 => web_audio_api::node::ChannelCountMode::Explicit, + _ => unreachable!("Invalid variant for ChannelCountMode: {}", inner), + }; + } +} + +impl SseDecode for web_audio_api::node::ChannelInterpretation { + // 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 => web_audio_api::node::ChannelInterpretation::Speakers, + 1 => web_audio_api::node::ChannelInterpretation::Discrete, + _ => unreachable!("Invalid variant for ChannelInterpretation: {}", inner), + }; + } +} + +impl SseDecode for web_audio_api::node::DistanceModelType { + // 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 => web_audio_api::node::DistanceModelType::Linear, + 1 => web_audio_api::node::DistanceModelType::Inverse, + 2 => web_audio_api::node::DistanceModelType::Exponential, + _ => unreachable!("Invalid variant for DistanceModelType: {}", inner), + }; + } +} + +impl SseDecode for f32 { + // 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_f32::().unwrap() + } +} + +impl SseDecode for f64 { + // 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_f64::().unwrap() + } +} + +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 web_audio_api::media_streams::MediaStreamTrackState { + // 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 => web_audio_api::media_streams::MediaStreamTrackState::Live, + 1 => web_audio_api::media_streams::MediaStreamTrackState::Ended, + _ => unreachable!("Invalid variant for MediaStreamTrackState: {}", inner), + }; + } +} + +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 web_audio_api::node::OscillatorType { + // 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 => web_audio_api::node::OscillatorType::Sine, + 1 => web_audio_api::node::OscillatorType::Square, + 2 => web_audio_api::node::OscillatorType::Sawtooth, + 3 => web_audio_api::node::OscillatorType::Triangle, + 4 => web_audio_api::node::OscillatorType::Custom, + _ => unreachable!("Invalid variant for OscillatorType: {}", inner), + }; + } +} + +impl SseDecode for web_audio_api::node::OverSampleType { + // 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 => web_audio_api::node::OverSampleType::None, + 1 => web_audio_api::node::OverSampleType::X2, + 2 => web_audio_api::node::OverSampleType::X4, + _ => unreachable!("Invalid variant for OverSampleType: {}", inner), + }; + } +} + +impl SseDecode for web_audio_api::node::PanningModelType { + // 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 => web_audio_api::node::PanningModelType::EqualPower, + 1 => web_audio_api::node::PanningModelType::HRTF, + _ => unreachable!("Invalid variant for PanningModelType: {}", inner), + }; + } +} + +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 _ + } +} + +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__crate__api__override_web_audio_api__AudioContext_frb_override_decode_audio_data_sync_impl(port, ptr, rust_vec_len, data_len), +2 => wire__crate__api__override_web_audio_api__AudioContext_frb_override_output_latency_impl(port, ptr, rust_vec_len, data_len), +3 => wire__crate__api__simple__f_impl(port, ptr, rust_vec_len, data_len), +4 => wire__crate__api__simple__init_app_impl(port, ptr, rust_vec_len, data_len), +5 => wire__web_audio_api__AudioBuffer_duration_impl(port, ptr, rust_vec_len, data_len), +6 => wire__web_audio_api__AudioBuffer_from_impl(port, ptr, rust_vec_len, data_len), +7 => wire__web_audio_api__AudioBuffer_get_channel_data_impl(port, ptr, rust_vec_len, data_len), +8 => wire__web_audio_api__AudioBuffer_get_channel_data_mut_impl(port, ptr, rust_vec_len, data_len), +9 => wire__web_audio_api__AudioBuffer_length_impl(port, ptr, rust_vec_len, data_len), +10 => wire__web_audio_api__AudioBuffer_new_impl(port, ptr, rust_vec_len, data_len), +11 => wire__web_audio_api__AudioBuffer_number_of_channels_impl(port, ptr, rust_vec_len, data_len), +12 => wire__web_audio_api__AudioBuffer_sample_rate_impl(port, ptr, rust_vec_len, data_len), +13 => wire__web_audio_api__AudioParam_automation_rate_impl(port, ptr, rust_vec_len, data_len), +14 => wire__web_audio_api__AudioParam_cancel_and_hold_at_time_impl(port, ptr, rust_vec_len, data_len), +15 => wire__web_audio_api__AudioParam_cancel_scheduled_values_impl(port, ptr, rust_vec_len, data_len), +16 => wire__web_audio_api__AudioParam_default_value_impl(port, ptr, rust_vec_len, data_len), +17 => wire__web_audio_api__AudioParam_exponential_ramp_to_value_at_time_impl(port, ptr, rust_vec_len, data_len), +18 => wire__web_audio_api__AudioParam_linear_ramp_to_value_at_time_impl(port, ptr, rust_vec_len, data_len), +19 => wire__web_audio_api__AudioParam_max_value_impl(port, ptr, rust_vec_len, data_len), +20 => wire__web_audio_api__AudioParam_min_value_impl(port, ptr, rust_vec_len, data_len), +21 => wire__web_audio_api__AudioParam_set_automation_rate_impl(port, ptr, rust_vec_len, data_len), +22 => wire__web_audio_api__AudioParam_set_target_at_time_impl(port, ptr, rust_vec_len, data_len), +23 => wire__web_audio_api__AudioParam_set_value_impl(port, ptr, rust_vec_len, data_len), +24 => wire__web_audio_api__AudioParam_set_value_at_time_impl(port, ptr, rust_vec_len, data_len), +25 => wire__web_audio_api__AudioParam_set_value_curve_at_time_impl(port, ptr, rust_vec_len, data_len), +26 => wire__web_audio_api__AudioParam_value_impl(port, ptr, rust_vec_len, data_len), +43 => wire__web_audio_api__AudioRenderCapacity_clear_onupdate_impl(port, ptr, rust_vec_len, data_len), +44 => wire__web_audio_api__AudioRenderCapacity_start_impl(port, ptr, rust_vec_len, data_len), +45 => wire__web_audio_api__AudioRenderCapacity_stop_impl(port, ptr, rust_vec_len, data_len), +50 => wire__web_audio_api__context__AudioContext_base_latency_impl(port, ptr, rust_vec_len, data_len), +51 => wire__web_audio_api__context__AudioContext_clear_onsinkchange_impl(port, ptr, rust_vec_len, data_len), +52 => wire__web_audio_api__context__AudioContext_close_impl(port, ptr, rust_vec_len, data_len), +53 => wire__web_audio_api__context__AudioContext_close_sync_impl(port, ptr, rust_vec_len, data_len), +54 => wire__web_audio_api__context__AudioContext_create_media_stream_destination_impl(port, ptr, rust_vec_len, data_len), +55 => wire__web_audio_api__context__AudioContext_create_media_stream_source_impl(port, ptr, rust_vec_len, data_len), +56 => wire__web_audio_api__context__AudioContext_create_media_stream_track_source_impl(port, ptr, rust_vec_len, data_len), +58 => wire__web_audio_api__context__AudioContext_output_latency_impl(port, ptr, rust_vec_len, data_len), +59 => wire__web_audio_api__context__AudioContext_render_capacity_impl(port, ptr, rust_vec_len, data_len), +60 => wire__web_audio_api__context__AudioContext_resume_sync_impl(port, ptr, rust_vec_len, data_len), +61 => wire__web_audio_api__context__AudioContext_sink_id_impl(port, ptr, rust_vec_len, data_len), +62 => wire__web_audio_api__context__AudioContext_suspend_impl(port, ptr, rust_vec_len, data_len), +63 => wire__web_audio_api__context__AudioContext_suspend_sync_impl(port, ptr, rust_vec_len, data_len), +64 => wire__web_audio_api__context__ConcreteBaseAudioContext_mark_cycle_breaker_impl(port, ptr, rust_vec_len, data_len), +65 => wire__web_audio_api__context__OfflineAudioContext_clear_oncomplete_impl(port, ptr, rust_vec_len, data_len), +66 => wire__web_audio_api__context__OfflineAudioContext_length_impl(port, ptr, rust_vec_len, data_len), +67 => wire__web_audio_api__context__OfflineAudioContext_new_impl(port, ptr, rust_vec_len, data_len), +68 => wire__web_audio_api__context__OfflineAudioContext_resume_impl(port, ptr, rust_vec_len, data_len), +69 => wire__web_audio_api__context__OfflineAudioContext_start_rendering_impl(port, ptr, rust_vec_len, data_len), +70 => wire__web_audio_api__context__OfflineAudioContext_start_rendering_sync_impl(port, ptr, rust_vec_len, data_len), +71 => wire__web_audio_api__context__OfflineAudioContext_suspend_impl(port, ptr, rust_vec_len, data_len), +72 => wire__web_audio_api__media_devices__get_user_media_sync_impl(port, ptr, rust_vec_len, data_len), +79 => wire__web_audio_api__media_recorder__MediaRecorder_clear_ondataavailable_impl(port, ptr, rust_vec_len, data_len), +80 => wire__web_audio_api__media_recorder__MediaRecorder_clear_onerror_impl(port, ptr, rust_vec_len, data_len), +81 => wire__web_audio_api__media_recorder__MediaRecorder_clear_onstop_impl(port, ptr, rust_vec_len, data_len), +82 => wire__web_audio_api__media_recorder__MediaRecorder_new_impl(port, ptr, rust_vec_len, data_len), +83 => wire__web_audio_api__media_recorder__MediaRecorder_start_impl(port, ptr, rust_vec_len, data_len), +84 => wire__web_audio_api__media_recorder__MediaRecorder_stop_impl(port, ptr, rust_vec_len, data_len), +85 => wire__web_audio_api__media_streams__MediaStreamTrack_close_impl(port, ptr, rust_vec_len, data_len), +86 => wire__web_audio_api__media_streams__MediaStreamTrack_ready_state_impl(port, ptr, rust_vec_len, data_len), +87 => wire__web_audio_api__media_streams__MediaStream_from_tracks_impl(port, ptr, rust_vec_len, data_len), +88 => wire__web_audio_api__media_streams__MediaStream_get_tracks_impl(port, ptr, rust_vec_len, data_len), +89 => wire__web_audio_api__node__AnalyserNode_fft_size_impl(port, ptr, rust_vec_len, data_len), +90 => wire__web_audio_api__node__AnalyserNode_frequency_bin_count_impl(port, ptr, rust_vec_len, data_len), +91 => wire__web_audio_api__node__AnalyserNode_max_decibels_impl(port, ptr, rust_vec_len, data_len), +92 => wire__web_audio_api__node__AnalyserNode_min_decibels_impl(port, ptr, rust_vec_len, data_len), +93 => wire__web_audio_api__node__AnalyserNode_set_fft_size_impl(port, ptr, rust_vec_len, data_len), +94 => wire__web_audio_api__node__AnalyserNode_set_max_decibels_impl(port, ptr, rust_vec_len, data_len), +95 => wire__web_audio_api__node__AnalyserNode_set_min_decibels_impl(port, ptr, rust_vec_len, data_len), +96 => wire__web_audio_api__node__AnalyserNode_set_smoothing_time_constant_impl(port, ptr, rust_vec_len, data_len), +97 => wire__web_audio_api__node__AnalyserNode_smoothing_time_constant_impl(port, ptr, rust_vec_len, data_len), +98 => wire__web_audio_api__node__AudioBufferSourceNode_detune_impl(port, ptr, rust_vec_len, data_len), +99 => wire__web_audio_api__node__AudioBufferSourceNode_loop__impl(port, ptr, rust_vec_len, data_len), +100 => wire__web_audio_api__node__AudioBufferSourceNode_loop_end_impl(port, ptr, rust_vec_len, data_len), +101 => wire__web_audio_api__node__AudioBufferSourceNode_loop_start_impl(port, ptr, rust_vec_len, data_len), +102 => wire__web_audio_api__node__AudioBufferSourceNode_playback_rate_impl(port, ptr, rust_vec_len, data_len), +103 => wire__web_audio_api__node__AudioBufferSourceNode_position_impl(port, ptr, rust_vec_len, data_len), +104 => wire__web_audio_api__node__AudioBufferSourceNode_set_buffer_impl(port, ptr, rust_vec_len, data_len), +105 => wire__web_audio_api__node__AudioBufferSourceNode_set_loop_impl(port, ptr, rust_vec_len, data_len), +106 => wire__web_audio_api__node__AudioBufferSourceNode_set_loop_end_impl(port, ptr, rust_vec_len, data_len), +107 => wire__web_audio_api__node__AudioBufferSourceNode_set_loop_start_impl(port, ptr, rust_vec_len, data_len), +108 => wire__web_audio_api__node__AudioBufferSourceNode_start_at_with_offset_impl(port, ptr, rust_vec_len, data_len), +109 => wire__web_audio_api__node__AudioBufferSourceNode_start_at_with_offset_and_duration_impl(port, ptr, rust_vec_len, data_len), +110 => wire__web_audio_api__node__AudioDestinationNode_max_channel_count_impl(port, ptr, rust_vec_len, data_len), +111 => wire__web_audio_api__node__BiquadFilterNode_detune_impl(port, ptr, rust_vec_len, data_len), +112 => wire__web_audio_api__node__BiquadFilterNode_frequency_impl(port, ptr, rust_vec_len, data_len), +113 => wire__web_audio_api__node__BiquadFilterNode_gain_impl(port, ptr, rust_vec_len, data_len), +114 => wire__web_audio_api__node__BiquadFilterNode_q_impl(port, ptr, rust_vec_len, data_len), +115 => wire__web_audio_api__node__BiquadFilterNode_set_type_impl(port, ptr, rust_vec_len, data_len), +116 => wire__web_audio_api__node__BiquadFilterNode_type__impl(port, ptr, rust_vec_len, data_len), +117 => wire__web_audio_api__node__ConstantSourceNode_offset_impl(port, ptr, rust_vec_len, data_len), +118 => wire__web_audio_api__node__ConvolverNode_normalize_impl(port, ptr, rust_vec_len, data_len), +119 => wire__web_audio_api__node__ConvolverNode_set_buffer_impl(port, ptr, rust_vec_len, data_len), +120 => wire__web_audio_api__node__ConvolverNode_set_normalize_impl(port, ptr, rust_vec_len, data_len), +121 => wire__web_audio_api__node__DelayNode_delay_time_impl(port, ptr, rust_vec_len, data_len), +122 => wire__web_audio_api__node__DynamicsCompressorNode_attack_impl(port, ptr, rust_vec_len, data_len), +123 => wire__web_audio_api__node__DynamicsCompressorNode_knee_impl(port, ptr, rust_vec_len, data_len), +124 => wire__web_audio_api__node__DynamicsCompressorNode_ratio_impl(port, ptr, rust_vec_len, data_len), +125 => wire__web_audio_api__node__DynamicsCompressorNode_reduction_impl(port, ptr, rust_vec_len, data_len), +126 => wire__web_audio_api__node__DynamicsCompressorNode_release_impl(port, ptr, rust_vec_len, data_len), +127 => wire__web_audio_api__node__DynamicsCompressorNode_threshold_impl(port, ptr, rust_vec_len, data_len), +128 => wire__web_audio_api__node__GainNode_gain_impl(port, ptr, rust_vec_len, data_len), +129 => wire__web_audio_api__node__MediaStreamAudioDestinationNode_stream_impl(port, ptr, rust_vec_len, data_len), +130 => wire__web_audio_api__node__OscillatorNode_detune_impl(port, ptr, rust_vec_len, data_len), +131 => wire__web_audio_api__node__OscillatorNode_frequency_impl(port, ptr, rust_vec_len, data_len), +132 => wire__web_audio_api__node__OscillatorNode_set_periodic_wave_impl(port, ptr, rust_vec_len, data_len), +133 => wire__web_audio_api__node__OscillatorNode_set_type_impl(port, ptr, rust_vec_len, data_len), +134 => wire__web_audio_api__node__OscillatorNode_type__impl(port, ptr, rust_vec_len, data_len), +135 => wire__web_audio_api__node__PannerNode_cone_inner_angle_impl(port, ptr, rust_vec_len, data_len), +136 => wire__web_audio_api__node__PannerNode_cone_outer_angle_impl(port, ptr, rust_vec_len, data_len), +137 => wire__web_audio_api__node__PannerNode_cone_outer_gain_impl(port, ptr, rust_vec_len, data_len), +138 => wire__web_audio_api__node__PannerNode_distance_model_impl(port, ptr, rust_vec_len, data_len), +139 => wire__web_audio_api__node__PannerNode_max_distance_impl(port, ptr, rust_vec_len, data_len), +140 => wire__web_audio_api__node__PannerNode_orientation_x_impl(port, ptr, rust_vec_len, data_len), +141 => wire__web_audio_api__node__PannerNode_orientation_y_impl(port, ptr, rust_vec_len, data_len), +142 => wire__web_audio_api__node__PannerNode_orientation_z_impl(port, ptr, rust_vec_len, data_len), +143 => wire__web_audio_api__node__PannerNode_panning_model_impl(port, ptr, rust_vec_len, data_len), +144 => wire__web_audio_api__node__PannerNode_position_x_impl(port, ptr, rust_vec_len, data_len), +145 => wire__web_audio_api__node__PannerNode_position_y_impl(port, ptr, rust_vec_len, data_len), +146 => wire__web_audio_api__node__PannerNode_position_z_impl(port, ptr, rust_vec_len, data_len), +147 => wire__web_audio_api__node__PannerNode_ref_distance_impl(port, ptr, rust_vec_len, data_len), +148 => wire__web_audio_api__node__PannerNode_rolloff_factor_impl(port, ptr, rust_vec_len, data_len), +149 => wire__web_audio_api__node__PannerNode_set_cone_inner_angle_impl(port, ptr, rust_vec_len, data_len), +150 => wire__web_audio_api__node__PannerNode_set_cone_outer_angle_impl(port, ptr, rust_vec_len, data_len), +151 => wire__web_audio_api__node__PannerNode_set_cone_outer_gain_impl(port, ptr, rust_vec_len, data_len), +152 => wire__web_audio_api__node__PannerNode_set_distance_model_impl(port, ptr, rust_vec_len, data_len), +153 => wire__web_audio_api__node__PannerNode_set_max_distance_impl(port, ptr, rust_vec_len, data_len), +154 => wire__web_audio_api__node__PannerNode_set_orientation_impl(port, ptr, rust_vec_len, data_len), +155 => wire__web_audio_api__node__PannerNode_set_panning_model_impl(port, ptr, rust_vec_len, data_len), +156 => wire__web_audio_api__node__PannerNode_set_position_impl(port, ptr, rust_vec_len, data_len), +157 => wire__web_audio_api__node__PannerNode_set_ref_distance_impl(port, ptr, rust_vec_len, data_len), +158 => wire__web_audio_api__node__PannerNode_set_rolloff_factor_impl(port, ptr, rust_vec_len, data_len), +159 => wire__web_audio_api__node__ScriptProcessorNode_buffer_size_impl(port, ptr, rust_vec_len, data_len), +160 => wire__web_audio_api__node__ScriptProcessorNode_clear_onaudioprocess_impl(port, ptr, rust_vec_len, data_len), +161 => wire__web_audio_api__node__StereoPannerNode_pan_impl(port, ptr, rust_vec_len, data_len), +162 => wire__web_audio_api__node__WaveShaperNode_oversample_impl(port, ptr, rust_vec_len, data_len), +163 => wire__web_audio_api__node__WaveShaperNode_set_curve_impl(port, ptr, rust_vec_len, data_len), +164 => wire__web_audio_api__node__WaveShaperNode_set_oversample_impl(port, ptr, rust_vec_len, data_len), +165 => wire__web_audio_api__worklet__AudioWorkletNode_channel_config_impl(port, ptr, rust_vec_len, data_len), +166 => wire__web_audio_api__worklet__AudioWorkletNode_channel_count_impl(port, ptr, rust_vec_len, data_len), +167 => wire__web_audio_api__worklet__AudioWorkletNode_channel_count_mode_impl(port, ptr, rust_vec_len, data_len), +168 => wire__web_audio_api__worklet__AudioWorkletNode_channel_interpretation_impl(port, ptr, rust_vec_len, data_len), +169 => wire__web_audio_api__worklet__AudioWorkletNode_clear_onprocessorerror_impl(port, ptr, rust_vec_len, data_len), +170 => wire__web_audio_api__worklet__AudioWorkletNode_context_impl(port, ptr, rust_vec_len, data_len), +171 => wire__web_audio_api__worklet__AudioWorkletNode_disconnect_impl(port, ptr, rust_vec_len, data_len), +172 => wire__web_audio_api__worklet__AudioWorkletNode_disconnect_output_impl(port, ptr, rust_vec_len, data_len), +173 => wire__web_audio_api__worklet__AudioWorkletNode_number_of_inputs_impl(port, ptr, rust_vec_len, data_len), +174 => wire__web_audio_api__worklet__AudioWorkletNode_number_of_outputs_impl(port, ptr, rust_vec_len, data_len), +175 => wire__web_audio_api__worklet__AudioWorkletNode_parameters_impl(port, ptr, rust_vec_len, data_len), +176 => wire__web_audio_api__worklet__AudioWorkletNode_registration_impl(port, ptr, rust_vec_len, data_len), +177 => wire__web_audio_api__worklet__AudioWorkletNode_set_channel_count_impl(port, ptr, rust_vec_len, data_len), +178 => wire__web_audio_api__worklet__AudioWorkletNode_set_channel_count_mode_impl(port, ptr, rust_vec_len, data_len), +179 => wire__web_audio_api__worklet__AudioWorkletNode_set_channel_interpretation_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 { + 27 => wire__web_audio_api__AudioProcessingEvent_get_input_buffer_impl( + ptr, + rust_vec_len, + data_len, + ), + 28 => wire__web_audio_api__AudioProcessingEvent_get_output_buffer_impl( + ptr, + rust_vec_len, + data_len, + ), + 29 => wire__web_audio_api__AudioProcessingEvent_get_playback_time_impl( + ptr, + rust_vec_len, + data_len, + ), + 30 => wire__web_audio_api__AudioProcessingEvent_set_input_buffer_impl( + ptr, + rust_vec_len, + data_len, + ), + 31 => wire__web_audio_api__AudioProcessingEvent_set_output_buffer_impl( + ptr, + rust_vec_len, + data_len, + ), + 32 => wire__web_audio_api__AudioProcessingEvent_set_playback_time_impl( + ptr, + rust_vec_len, + data_len, + ), + 33 => wire__web_audio_api__AudioRenderCapacityEvent_get_average_load_impl( + ptr, + rust_vec_len, + data_len, + ), + 34 => wire__web_audio_api__AudioRenderCapacityEvent_get_event_impl( + ptr, + rust_vec_len, + data_len, + ), + 35 => wire__web_audio_api__AudioRenderCapacityEvent_get_peak_load_impl( + ptr, + rust_vec_len, + data_len, + ), + 36 => wire__web_audio_api__AudioRenderCapacityEvent_get_timestamp_impl( + ptr, + rust_vec_len, + data_len, + ), + 37 => wire__web_audio_api__AudioRenderCapacityEvent_get_underrun_ratio_impl( + ptr, + rust_vec_len, + data_len, + ), + 38 => wire__web_audio_api__AudioRenderCapacityEvent_set_average_load_impl( + ptr, + rust_vec_len, + data_len, + ), + 39 => wire__web_audio_api__AudioRenderCapacityEvent_set_event_impl( + ptr, + rust_vec_len, + data_len, + ), + 40 => wire__web_audio_api__AudioRenderCapacityEvent_set_peak_load_impl( + ptr, + rust_vec_len, + data_len, + ), + 41 => wire__web_audio_api__AudioRenderCapacityEvent_set_timestamp_impl( + ptr, + rust_vec_len, + data_len, + ), + 42 => wire__web_audio_api__AudioRenderCapacityEvent_set_underrun_ratio_impl( + ptr, + rust_vec_len, + data_len, + ), + 46 => wire__web_audio_api__OfflineAudioCompletionEvent_get_event_impl( + ptr, + rust_vec_len, + data_len, + ), + 47 => wire__web_audio_api__OfflineAudioCompletionEvent_get_rendered_buffer_impl( + ptr, + rust_vec_len, + data_len, + ), + 48 => wire__web_audio_api__OfflineAudioCompletionEvent_set_event_impl( + ptr, + rust_vec_len, + data_len, + ), + 49 => wire__web_audio_api__OfflineAudioCompletionEvent_set_rendered_buffer_impl( + ptr, + rust_vec_len, + data_len, + ), + 57 => wire__web_audio_api__context__AudioContext_new_impl(ptr, rust_vec_len, data_len), + 73 => wire__web_audio_api__media_recorder__BlobEvent_get_blob_impl( + ptr, + rust_vec_len, + data_len, + ), + 74 => wire__web_audio_api__media_recorder__BlobEvent_get_event_impl( + ptr, + rust_vec_len, + data_len, + ), + 75 => wire__web_audio_api__media_recorder__BlobEvent_get_timecode_impl( + ptr, + rust_vec_len, + data_len, + ), + 76 => wire__web_audio_api__media_recorder__BlobEvent_set_blob_impl( + ptr, + rust_vec_len, + data_len, + ), + 77 => wire__web_audio_api__media_recorder__BlobEvent_set_event_impl( + ptr, + rust_vec_len, + data_len, + ), + 78 => wire__web_audio_api__media_recorder__BlobEvent_set_timecode_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 AnalyserNode { + 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 AudioBuffer { + 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 AudioBufferSourceNode +{ + 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 AudioContext { + 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 AudioDestinationNode { + 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 AudioParam { + 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 AudioProcessingEvent { + 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 AudioRenderCapacity { + 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 AudioRenderCapacityEvent +{ + 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 AudioWorkletNode { + 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 BiquadFilterNode { + 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 BlobEvent { + 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 ConcreteBaseAudioContext +{ + 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 ConstantSourceNode { + 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 ConvolverNode { + 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 DelayNode { + 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 DummyStruct { + 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 DynamicsCompressorNode +{ + 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 Event { + 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 GainNode { + 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 MediaRecorder { + 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 MediaStream { + 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 MediaStreamAudioDestinationNode +{ + 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 MediaStreamAudioSourceNode +{ + 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 MediaStreamConstraints +{ + 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 MediaStreamTrack { + 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 MediaStreamTrackAudioSourceNode +{ + 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 OfflineAudioCompletionEvent +{ + 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 OfflineAudioContext { + 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 OscillatorNode { + 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 PannerNode { + 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 PeriodicWave { + 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 ScriptProcessorNode { + 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 StereoPannerNode { + 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 WaveShaperNode { + 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.number_of_channels.into_into_dart().into_dart(), + self.0.length.into_into_dart().into_dart(), + self.0.sample_rate.into_into_dart().into_dart(), + ] + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl flutter_rust_bridge::IntoIntoDart> + for web_audio_api::AudioBufferOptions +{ + 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 { + web_audio_api::context::AudioContextLatencyCategory::Balanced => { + [0.into_dart()].into_dart() + } + web_audio_api::context::AudioContextLatencyCategory::Interactive => { + [1.into_dart()].into_dart() + } + web_audio_api::context::AudioContextLatencyCategory::Playback => { + [2.into_dart()].into_dart() + } + web_audio_api::context::AudioContextLatencyCategory::Custom(field0) => { + [3.into_dart(), field0.into_into_dart().into_dart()].into_dart() + } + _ => { + unimplemented!(""); + } + } + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl + flutter_rust_bridge::IntoIntoDart< + FrbWrapper, + > for web_audio_api::context::AudioContextLatencyCategory +{ + 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.latency_hint.into_into_dart().into_dart(), + self.0.sample_rate.into_into_dart().into_dart(), + self.0.sink_id.into_into_dart().into_dart(), + self.0.render_size_hint.into_into_dart().into_dart(), + ] + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl flutter_rust_bridge::IntoIntoDart> + for web_audio_api::context::AudioContextOptions +{ + 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 { + web_audio_api::context::AudioContextRenderSizeCategory::Default => 0.into_dart(), + _ => unreachable!(), + } + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl + flutter_rust_bridge::IntoIntoDart< + FrbWrapper, + > for web_audio_api::context::AudioContextRenderSizeCategory +{ + 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.update_interval.into_into_dart().into_dart()].into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl flutter_rust_bridge::IntoIntoDart> + for web_audio_api::AudioRenderCapacityOptions +{ + 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 { + web_audio_api::AutomationRate::A => 0.into_dart(), + web_audio_api::AutomationRate::K => 1.into_dart(), + _ => unreachable!(), + } + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl flutter_rust_bridge::IntoIntoDart> + for web_audio_api::AutomationRate +{ + 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 { + web_audio_api::node::BiquadFilterType::Lowpass => 0.into_dart(), + web_audio_api::node::BiquadFilterType::Highpass => 1.into_dart(), + web_audio_api::node::BiquadFilterType::Bandpass => 2.into_dart(), + web_audio_api::node::BiquadFilterType::Notch => 3.into_dart(), + web_audio_api::node::BiquadFilterType::Allpass => 4.into_dart(), + web_audio_api::node::BiquadFilterType::Peaking => 5.into_dart(), + web_audio_api::node::BiquadFilterType::Lowshelf => 6.into_dart(), + web_audio_api::node::BiquadFilterType::Highshelf => 7.into_dart(), + _ => unreachable!(), + } + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl flutter_rust_bridge::IntoIntoDart> + for web_audio_api::node::BiquadFilterType +{ + 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 { + web_audio_api::node::ChannelCountMode::Max => 0.into_dart(), + web_audio_api::node::ChannelCountMode::ClampedMax => 1.into_dart(), + web_audio_api::node::ChannelCountMode::Explicit => 2.into_dart(), + _ => unreachable!(), + } + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl flutter_rust_bridge::IntoIntoDart> + for web_audio_api::node::ChannelCountMode +{ + 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 { + web_audio_api::node::ChannelInterpretation::Speakers => 0.into_dart(), + web_audio_api::node::ChannelInterpretation::Discrete => 1.into_dart(), + _ => unreachable!(), + } + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl flutter_rust_bridge::IntoIntoDart> + for web_audio_api::node::ChannelInterpretation +{ + 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 { + web_audio_api::node::DistanceModelType::Linear => 0.into_dart(), + web_audio_api::node::DistanceModelType::Inverse => 1.into_dart(), + web_audio_api::node::DistanceModelType::Exponential => 2.into_dart(), + _ => unreachable!(), + } + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl flutter_rust_bridge::IntoIntoDart> + for web_audio_api::node::DistanceModelType +{ + 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 { + web_audio_api::media_streams::MediaStreamTrackState::Live => 0.into_dart(), + web_audio_api::media_streams::MediaStreamTrackState::Ended => 1.into_dart(), + _ => unreachable!(), + } + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl + flutter_rust_bridge::IntoIntoDart< + FrbWrapper, + > for web_audio_api::media_streams::MediaStreamTrackState +{ + 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 { + web_audio_api::node::OscillatorType::Sine => 0.into_dart(), + web_audio_api::node::OscillatorType::Square => 1.into_dart(), + web_audio_api::node::OscillatorType::Sawtooth => 2.into_dart(), + web_audio_api::node::OscillatorType::Triangle => 3.into_dart(), + web_audio_api::node::OscillatorType::Custom => 4.into_dart(), + _ => unreachable!(), + } + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl flutter_rust_bridge::IntoIntoDart> + for web_audio_api::node::OscillatorType +{ + 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 { + web_audio_api::node::OverSampleType::None => 0.into_dart(), + web_audio_api::node::OverSampleType::X2 => 1.into_dart(), + web_audio_api::node::OverSampleType::X4 => 2.into_dart(), + _ => unreachable!(), + } + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl flutter_rust_bridge::IntoIntoDart> + for web_audio_api::node::OverSampleType +{ + 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 { + web_audio_api::node::PanningModelType::EqualPower => 0.into_dart(), + web_audio_api::node::PanningModelType::HRTF => 1.into_dart(), + _ => unreachable!(), + } + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for FrbWrapper +{ +} +impl flutter_rust_bridge::IntoIntoDart> + for web_audio_api::node::PanningModelType +{ + 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 AnalyserNode { + // 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 AudioBuffer { + // 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 AudioBufferSourceNode { + // 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 AudioContext { + // 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 AudioDestinationNode { + // 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 AudioParam { + // 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 AudioProcessingEvent { + // 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 AudioRenderCapacity { + // 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 AudioRenderCapacityEvent { + // 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 AudioWorkletNode { + // 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 BiquadFilterNode { + // 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 BlobEvent { + // 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 ConcreteBaseAudioContext { + // 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 ConstantSourceNode { + // 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 ConvolverNode { + // 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 DelayNode { + // 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 DummyStruct { + // 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 DynamicsCompressorNode { + // 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 Event { + // 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 GainNode { + // 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 MediaRecorder { + // 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 MediaStream { + // 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 MediaStreamAudioDestinationNode { + // 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 MediaStreamAudioSourceNode { + // 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 MediaStreamConstraints { + // 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 MediaStreamTrack { + // 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 MediaStreamTrackAudioSourceNode { + // 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 OfflineAudioCompletionEvent { + // 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 OfflineAudioContext { + // 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 OscillatorNode { + // 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 PannerNode { + // 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 PeriodicWave { + // 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 ScriptProcessorNode { + // 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 StereoPannerNode { + // 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 WaveShaperNode { + // 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< + 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< + 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< + 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< + 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< + 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< + 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< + 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< + 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< + 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< + 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 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 web_audio_api::AudioBufferOptions { + // 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.number_of_channels, serializer); + ::sse_encode(self.length, serializer); + ::sse_encode(self.sample_rate, serializer); + } +} + +impl SseEncode for web_audio_api::context::AudioContextLatencyCategory { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + match self { + web_audio_api::context::AudioContextLatencyCategory::Balanced => { + ::sse_encode(0, serializer); + } + web_audio_api::context::AudioContextLatencyCategory::Interactive => { + ::sse_encode(1, serializer); + } + web_audio_api::context::AudioContextLatencyCategory::Playback => { + ::sse_encode(2, serializer); + } + web_audio_api::context::AudioContextLatencyCategory::Custom(field0) => { + ::sse_encode(3, serializer); + ::sse_encode(field0, serializer); + } + _ => { + unimplemented!(""); + } + } + } +} + +impl SseEncode for web_audio_api::context::AudioContextOptions { + // 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.latency_hint, + serializer, + ); + >::sse_encode(self.sample_rate, serializer); + ::sse_encode(self.sink_id, serializer); + ::sse_encode( + self.render_size_hint, + serializer, + ); + } +} + +impl SseEncode for web_audio_api::context::AudioContextRenderSizeCategory { + // 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 { + web_audio_api::context::AudioContextRenderSizeCategory::Default => 0, + _ => { + unimplemented!(""); + } + }, + serializer, + ); + } +} + +impl SseEncode for web_audio_api::AudioRenderCapacityOptions { + // 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.update_interval, serializer); + } +} + +impl SseEncode for web_audio_api::AutomationRate { + // 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 { + web_audio_api::AutomationRate::A => 0, + web_audio_api::AutomationRate::K => 1, + _ => { + unimplemented!(""); + } + }, + serializer, + ); + } +} + +impl SseEncode for web_audio_api::node::BiquadFilterType { + // 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 { + web_audio_api::node::BiquadFilterType::Lowpass => 0, + web_audio_api::node::BiquadFilterType::Highpass => 1, + web_audio_api::node::BiquadFilterType::Bandpass => 2, + web_audio_api::node::BiquadFilterType::Notch => 3, + web_audio_api::node::BiquadFilterType::Allpass => 4, + web_audio_api::node::BiquadFilterType::Peaking => 5, + web_audio_api::node::BiquadFilterType::Lowshelf => 6, + web_audio_api::node::BiquadFilterType::Highshelf => 7, + _ => { + 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 web_audio_api::node::ChannelCountMode { + // 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 { + web_audio_api::node::ChannelCountMode::Max => 0, + web_audio_api::node::ChannelCountMode::ClampedMax => 1, + web_audio_api::node::ChannelCountMode::Explicit => 2, + _ => { + unimplemented!(""); + } + }, + serializer, + ); + } +} + +impl SseEncode for web_audio_api::node::ChannelInterpretation { + // 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 { + web_audio_api::node::ChannelInterpretation::Speakers => 0, + web_audio_api::node::ChannelInterpretation::Discrete => 1, + _ => { + unimplemented!(""); + } + }, + serializer, + ); + } +} + +impl SseEncode for web_audio_api::node::DistanceModelType { + // 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 { + web_audio_api::node::DistanceModelType::Linear => 0, + web_audio_api::node::DistanceModelType::Inverse => 1, + web_audio_api::node::DistanceModelType::Exponential => 2, + _ => { + unimplemented!(""); + } + }, + serializer, + ); + } +} + +impl SseEncode for f32 { + // 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_f32::(self).unwrap(); + } +} + +impl SseEncode for f64 { + // 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_f64::(self).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 web_audio_api::media_streams::MediaStreamTrackState { + // 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 { + web_audio_api::media_streams::MediaStreamTrackState::Live => 0, + web_audio_api::media_streams::MediaStreamTrackState::Ended => 1, + _ => { + unimplemented!(""); + } + }, + 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 web_audio_api::node::OscillatorType { + // 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 { + web_audio_api::node::OscillatorType::Sine => 0, + web_audio_api::node::OscillatorType::Square => 1, + web_audio_api::node::OscillatorType::Sawtooth => 2, + web_audio_api::node::OscillatorType::Triangle => 3, + web_audio_api::node::OscillatorType::Custom => 4, + _ => { + unimplemented!(""); + } + }, + serializer, + ); + } +} + +impl SseEncode for web_audio_api::node::OverSampleType { + // 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 { + web_audio_api::node::OverSampleType::None => 0, + web_audio_api::node::OverSampleType::X2 => 1, + web_audio_api::node::OverSampleType::X4 => 2, + _ => { + unimplemented!(""); + } + }, + serializer, + ); + } +} + +impl SseEncode for web_audio_api::node::PanningModelType { + // 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 { + web_audio_api::node::PanningModelType::EqualPower => 0, + web_audio_api::node::PanningModelType::HRTF => 1, + _ => { + unimplemented!(""); + } + }, + serializer, + ); + } +} + +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(); + } +} + +#[cfg(not(target_family = "wasm"))] +#[path = "frb_generated.io.rs"] +mod io; +#[cfg(not(target_family = "wasm"))] +pub use io::*; + +/// cbindgen:ignore +#[cfg(target_family = "wasm")] +#[path = "frb_generated.web.rs"] +mod web; +#[cfg(target_family = "wasm")] +pub use web::*; diff --git a/frb_example/integrate_third_party/rust/src/frb_generated.web.rs b/frb_example/integrate_third_party/rust/src/frb_generated.web.rs new file mode 100644 index 0000000000..3387810cb3 --- /dev/null +++ b/frb_example/integrate_third_party/rust/src/frb_generated.web.rs @@ -0,0 +1,537 @@ +// This file is automatically generated, so please do not edit it. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. + +// Section: imports + +use super::*; +use crate::api::override_web_audio_api::AudioContextExt; +use crate::api::simple::*; +use flutter_rust_bridge::for_generated::byteorder::{NativeEndian, ReadBytesExt, WriteBytesExt}; +use flutter_rust_bridge::for_generated::transform_result_dco; +use flutter_rust_bridge::for_generated::wasm_bindgen; +use flutter_rust_bridge::for_generated::wasm_bindgen::prelude::*; +use flutter_rust_bridge::{Handler, IntoIntoDart}; +use web_audio_api::context::*; +use web_audio_api::media_devices::*; +use web_audio_api::media_recorder::*; +use web_audio_api::media_streams::*; +use web_audio_api::node::AudioNode; +use web_audio_api::node::*; +use web_audio_api::worklet::*; +use web_audio_api::*; + +// Section: boilerplate + +flutter_rust_bridge::frb_generated_boilerplate_web!(); + +#[wasm_bindgen] +pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerAnalyserNode( + 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_generatedRustAutoOpaqueInnerAnalyserNode( + 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_generatedRustAutoOpaqueInnerAudioBuffer( + 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_generatedRustAutoOpaqueInnerAudioBuffer( + 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_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + 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_generatedRustAutoOpaqueInnerAudioBufferSourceNode( + 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_generatedRustAutoOpaqueInnerAudioContext( + 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_generatedRustAutoOpaqueInnerAudioContext( + 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_generatedRustAutoOpaqueInnerAudioContextRegistration( + 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_generatedRustAutoOpaqueInnerAudioContextRegistration( + 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_generatedRustAutoOpaqueInnerAudioDestinationNode( + 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_generatedRustAutoOpaqueInnerAudioDestinationNode( + 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_generatedRustAutoOpaqueInnerAudioParam( + 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_generatedRustAutoOpaqueInnerAudioParam( + 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_generatedRustAutoOpaqueInnerAudioProcessingEvent( + 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_generatedRustAutoOpaqueInnerAudioProcessingEvent( + 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_generatedRustAutoOpaqueInnerAudioRenderCapacity( + 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_generatedRustAutoOpaqueInnerAudioRenderCapacity( + 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_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + 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_generatedRustAutoOpaqueInnerAudioRenderCapacityEvent( + 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_generatedRustAutoOpaqueInnerAudioWorkletNode( + 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_generatedRustAutoOpaqueInnerAudioWorkletNode( + 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_generatedRustAutoOpaqueInnerBiquadFilterNode( + 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_generatedRustAutoOpaqueInnerBiquadFilterNode( + 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_generatedRustAutoOpaqueInnerBlobEvent( + 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_generatedRustAutoOpaqueInnerBlobEvent( + 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_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + 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_generatedRustAutoOpaqueInnerConcreteBaseAudioContext( + 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_generatedRustAutoOpaqueInnerConstantSourceNode( + 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_generatedRustAutoOpaqueInnerConstantSourceNode( + 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_generatedRustAutoOpaqueInnerConvolverNode( + 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_generatedRustAutoOpaqueInnerConvolverNode( + 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_generatedRustAutoOpaqueInnerDelayNode( + 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_generatedRustAutoOpaqueInnerDelayNode( + 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_generatedRustAutoOpaqueInnerDummyStruct( + 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_generatedRustAutoOpaqueInnerDummyStruct( + 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_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + 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_generatedRustAutoOpaqueInnerDynamicsCompressorNode( + 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_generatedRustAutoOpaqueInnerEvent( + 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_generatedRustAutoOpaqueInnerEvent( + 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_generatedRustAutoOpaqueInnerGainNode( + 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_generatedRustAutoOpaqueInnerGainNode( + 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_generatedRustAutoOpaqueInnerMediaRecorder( + 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_generatedRustAutoOpaqueInnerMediaRecorder( + 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_generatedRustAutoOpaqueInnerMediaStream( + 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_generatedRustAutoOpaqueInnerMediaStream( + 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_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::< + flutter_rust_bridge::for_generated::RustAutoOpaqueInner, + >::increment_strong_count(ptr as _); +} + +#[wasm_bindgen] +pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioDestinationNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::< + flutter_rust_bridge::for_generated::RustAutoOpaqueInner, + >::decrement_strong_count(ptr as _); +} + +#[wasm_bindgen] +pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + 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_generatedRustAutoOpaqueInnerMediaStreamAudioSourceNode( + 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_generatedRustAutoOpaqueInnerMediaStreamConstraints( + 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_generatedRustAutoOpaqueInnerMediaStreamConstraints( + 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_generatedRustAutoOpaqueInnerMediaStreamTrack( + 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_generatedRustAutoOpaqueInnerMediaStreamTrack( + 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_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::< + flutter_rust_bridge::for_generated::RustAutoOpaqueInner, + >::increment_strong_count(ptr as _); +} + +#[wasm_bindgen] +pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMediaStreamTrackAudioSourceNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::< + flutter_rust_bridge::for_generated::RustAutoOpaqueInner, + >::decrement_strong_count(ptr as _); +} + +#[wasm_bindgen] +pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + 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_generatedRustAutoOpaqueInnerOfflineAudioCompletionEvent( + 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_generatedRustAutoOpaqueInnerOfflineAudioContext( + 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_generatedRustAutoOpaqueInnerOfflineAudioContext( + 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_generatedRustAutoOpaqueInnerOscillatorNode( + 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_generatedRustAutoOpaqueInnerOscillatorNode( + 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_generatedRustAutoOpaqueInnerPannerNode( + 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_generatedRustAutoOpaqueInnerPannerNode( + 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_generatedRustAutoOpaqueInnerPeriodicWave( + 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_generatedRustAutoOpaqueInnerPeriodicWave( + 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_generatedRustAutoOpaqueInnerScriptProcessorNode( + 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_generatedRustAutoOpaqueInnerScriptProcessorNode( + 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_generatedRustAutoOpaqueInnerStereoPannerNode( + 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_generatedRustAutoOpaqueInnerStereoPannerNode( + 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_generatedRustAutoOpaqueInnerWaveShaperNode( + 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_generatedRustAutoOpaqueInnerWaveShaperNode( + ptr: *const std::ffi::c_void, +) { + MoiArc::>::decrement_strong_count(ptr as _); +} diff --git a/frb_example/integrate_third_party/rust/src/lib.rs b/frb_example/integrate_third_party/rust/src/lib.rs new file mode 100644 index 0000000000..b464c85de8 --- /dev/null +++ b/frb_example/integrate_third_party/rust/src/lib.rs @@ -0,0 +1,3 @@ +pub mod api; +mod frb_generated; /* AUTO INJECTED BY flutter_rust_bridge. This line may not be accurate, and you can change it according to your needs. */ +pub mod third_party; diff --git a/frb_example/integrate_third_party/rust/src/third_party/mod.rs b/frb_example/integrate_third_party/rust/src/third_party/mod.rs new file mode 100644 index 0000000000..ea050e2d9c --- /dev/null +++ b/frb_example/integrate_third_party/rust/src/third_party/mod.rs @@ -0,0 +1 @@ +pub mod web_audio_api; diff --git a/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/context/mod.rs b/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/context/mod.rs new file mode 100644 index 0000000000..10dcadfb65 --- /dev/null +++ b/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/context/mod.rs @@ -0,0 +1,23 @@ +use flutter_rust_bridge::frb; +use web_audio_api::context::AudioContext; + +#[frb(external)] +impl AudioContext { + #[frb(sync)] + fn new() {} + + #[frb(ignore)] + fn create_media_element_source() {} + + #[frb(ignore)] + fn set_sink_id_sync() {} + + #[frb(ignore)] + fn resume() {} +} + +#[frb(non_opaque)] +pub struct AudioContextOptions; + +#[frb(non_opaque)] +pub enum AudioContextLatencyCategory {} diff --git a/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/media_devices/mod.rs b/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/media_devices/mod.rs new file mode 100644 index 0000000000..9f6da2b9a4 --- /dev/null +++ b/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/media_devices/mod.rs @@ -0,0 +1,13 @@ +use flutter_rust_bridge::frb; + +#[frb(ignore)] +pub struct MediaDeviceInfo; + +// #[frb(external)] +// impl MediaDeviceInfo { +// #[frb(ignore)] +// fn group_id() {} +// } + +#[frb(ignore)] +fn enumerate_devices_sync() {} diff --git a/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/media_element/mod.rs b/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/media_element/mod.rs new file mode 100644 index 0000000000..cb377ba9e5 --- /dev/null +++ b/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/media_element/mod.rs @@ -0,0 +1,4 @@ +use flutter_rust_bridge::frb; + +#[frb(ignore)] +pub struct MediaElement; diff --git a/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/mod.rs b/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/mod.rs new file mode 100644 index 0000000000..64168bd048 --- /dev/null +++ b/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/mod.rs @@ -0,0 +1,29 @@ +pub mod context; +pub mod media_devices; +pub mod media_element; +pub mod node; +pub mod worklet; + +use flutter_rust_bridge::frb; +use web_audio_api::{AudioBuffer, AudioRenderCapacity}; + +#[frb(external)] +impl AudioRenderCapacity { + #[frb(ignore)] + pub fn set_onupdate() {} +} + +#[frb(external)] +impl AudioBuffer { + #[frb(ignore)] + pub fn copy_from_channel() {} + #[frb(ignore)] + pub fn copy_from_channel_with_offset() {} + #[frb(ignore)] + pub fn copy_to_channel() {} + #[frb(ignore)] + pub fn copy_to_channel_with_offset() {} +} + +#[frb(ignore)] +pub struct ErrorEvent; diff --git a/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/node/mod.rs b/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/node/mod.rs new file mode 100644 index 0000000000..fa3375a982 --- /dev/null +++ b/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/node/mod.rs @@ -0,0 +1,50 @@ +use flutter_rust_bridge::frb; +use web_audio_api::node::{ + AnalyserNode, AudioBufferSourceNode, BiquadFilterNode, ConvolverNode, IIRFilterNode, + WaveShaperNode, +}; + +#[frb(external)] +impl AnalyserNode { + #[frb(ignore)] + pub fn get_float_time_domain_data() {} + + #[frb(ignore)] + pub fn get_byte_time_domain_data() {} + + #[frb(ignore)] + pub fn get_float_frequency_data() {} + + #[frb(ignore)] + pub fn get_byte_frequency_data() {} +} + +#[frb(external)] +impl BiquadFilterNode { + #[frb(ignore)] + pub fn get_frequency_response() {} +} + +#[frb(external)] +impl IIRFilterNode { + #[frb(ignore)] + pub fn get_frequency_response() {} +} + +#[frb(external)] +impl WaveShaperNode { + #[frb(ignore)] + pub fn curve() {} +} + +#[frb(external)] +impl ConvolverNode { + #[frb(ignore)] + pub fn buffer() {} +} + +#[frb(external)] +impl AudioBufferSourceNode { + #[frb(ignore)] + pub fn buffer() {} +} diff --git a/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/worklet/mod.rs b/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/worklet/mod.rs new file mode 100644 index 0000000000..34b67805ce --- /dev/null +++ b/frb_example/integrate_third_party/rust/src/third_party/web_audio_api/worklet/mod.rs @@ -0,0 +1,20 @@ +use flutter_rust_bridge::frb; +use web_audio_api::worklet::AudioWorkletNode; + +#[frb(external)] +impl AudioWorkletNode { + #[frb(ignore)] + pub fn port() {} + + #[frb(ignore)] + pub fn set_onprocessorerror() {} + + #[frb(ignore)] + pub fn disconnect_dest() {} + + #[frb(ignore)] + pub fn disconnect_dest_from_output() {} + + #[frb(ignore)] + pub fn disconnect_dest_from_output_to_input() {} +} diff --git a/frb_example/integrate_third_party/rust_builder/.gitignore b/frb_example/integrate_third_party/rust_builder/.gitignore new file mode 100644 index 0000000000..ac5aa9893e --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/.gitignore @@ -0,0 +1,29 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# 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 +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. +/pubspec.lock +**/doc/api/ +.dart_tool/ +build/ diff --git a/frb_example/integrate_third_party/rust_builder/README.md b/frb_example/integrate_third_party/rust_builder/README.md new file mode 100644 index 0000000000..922615f9c1 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/README.md @@ -0,0 +1 @@ +Please ignore this folder, which is just glue to build Rust with Flutter. \ No newline at end of file diff --git a/frb_example/integrate_third_party/rust_builder/android/.gitignore b/frb_example/integrate_third_party/rust_builder/android/.gitignore new file mode 100644 index 0000000000..161bdcdaf8 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/android/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.cxx diff --git a/frb_example/integrate_third_party/rust_builder/android/build.gradle b/frb_example/integrate_third_party/rust_builder/android/build.gradle new file mode 100644 index 0000000000..16ef8c87a5 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/android/build.gradle @@ -0,0 +1,56 @@ +// The Android Gradle Plugin builds the native code with the Android NDK. + +group 'com.flutter_rust_bridge.rust_lib_frb_example_integrate_third_party' +version '1.0' + +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + // The Android Gradle Plugin knows how to build native code with the NDK. + classpath 'com.android.tools.build:gradle:7.3.0' + } +} + +rootProject.allprojects { + repositories { + google() + mavenCentral() + } +} + +apply plugin: 'com.android.library' + +android { + if (project.android.hasProperty("namespace")) { + namespace 'com.flutter_rust_bridge.rust_lib_frb_example_integrate_third_party' + } + + // Bumping the plugin compileSdkVersion requires all clients of this plugin + // to bump the version in their app. + compileSdkVersion 33 + + // Use the NDK version + // declared in /android/app/build.gradle file of the Flutter project. + // Replace it with a version number if this plugin requires a specfic NDK version. + // (e.g. ndkVersion "23.1.7779620") + ndkVersion android.ndkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + defaultConfig { + minSdkVersion 19 + } +} + +apply from: "../cargokit/gradle/plugin.gradle" +cargokit { + manifestDir = "../../rust" + libname = "rust_lib_frb_example_integrate_third_party" +} diff --git a/frb_example/integrate_third_party/rust_builder/android/settings.gradle b/frb_example/integrate_third_party/rust_builder/android/settings.gradle new file mode 100644 index 0000000000..bc65330d48 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'rust_lib_frb_example_integrate_third_party' diff --git a/frb_example/integrate_third_party/rust_builder/android/src/main/AndroidManifest.xml b/frb_example/integrate_third_party/rust_builder/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..a1e874beef --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/android/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/.gitignore b/frb_example/integrate_third_party/rust_builder/cargokit/.gitignore new file mode 100644 index 0000000000..cf7bb868c0 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/.gitignore @@ -0,0 +1,4 @@ +target +.dart_tool +*.iml +!pubspec.lock diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/LICENSE b/frb_example/integrate_third_party/rust_builder/cargokit/LICENSE new file mode 100644 index 0000000000..d33a5fea52 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/LICENSE @@ -0,0 +1,42 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +Copyright 2022 Matej Knopp + +================================================================================ + +MIT LICENSE + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +================================================================================ + +APACHE LICENSE, VERSION 2.0 + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/README b/frb_example/integrate_third_party/rust_builder/cargokit/README new file mode 100644 index 0000000000..398474dbc8 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/README @@ -0,0 +1,11 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +Experimental repository to provide glue for seamlessly integrating cargo build +with flutter plugins and packages. + +See https://matejknopp.com/post/flutter_plugin_in_rust_with_no_prebuilt_binaries/ +for a tutorial on how to use Cargokit. + +Example plugin available at https://github.com/irondash/hello_rust_ffi_plugin. + diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_pod.sh b/frb_example/integrate_third_party/rust_builder/cargokit/build_pod.sh new file mode 100755 index 0000000000..ed0e0d987d --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_pod.sh @@ -0,0 +1,58 @@ +#!/bin/sh +set -e + +BASEDIR=$(dirname "$0") + +# Workaround for https://github.com/dart-lang/pub/issues/4010 +BASEDIR=$(cd "$BASEDIR" ; pwd -P) + +# Remove XCode SDK from path. Otherwise this breaks tool compilation when building iOS project +NEW_PATH=`echo $PATH | tr ":" "\n" | grep -v "Contents/Developer/" | tr "\n" ":"` + +export PATH=${NEW_PATH%?} # remove trailing : + +env + +# Platform name (macosx, iphoneos, iphonesimulator) +export CARGOKIT_DARWIN_PLATFORM_NAME=$PLATFORM_NAME + +# Arctive architectures (arm64, armv7, x86_64), space separated. +export CARGOKIT_DARWIN_ARCHS=$ARCHS + +# Current build configuration (Debug, Release) +export CARGOKIT_CONFIGURATION=$CONFIGURATION + +# Path to directory containing Cargo.toml. +export CARGOKIT_MANIFEST_DIR=$PODS_TARGET_SRCROOT/$1 + +# Temporary directory for build artifacts. +export CARGOKIT_TARGET_TEMP_DIR=$TARGET_TEMP_DIR + +# Output directory for final artifacts. +export CARGOKIT_OUTPUT_DIR=$PODS_CONFIGURATION_BUILD_DIR/$PRODUCT_NAME + +# Directory to store built tool artifacts. +export CARGOKIT_TOOL_TEMP_DIR=$TARGET_TEMP_DIR/build_tool + +# Directory inside root project. Not necessarily the top level directory of root project. +export CARGOKIT_ROOT_PROJECT_DIR=$SRCROOT + +FLUTTER_EXPORT_BUILD_ENVIRONMENT=( + "$PODS_ROOT/../Flutter/ephemeral/flutter_export_environment.sh" # macOS + "$PODS_ROOT/../Flutter/flutter_export_environment.sh" # iOS +) + +for path in "${FLUTTER_EXPORT_BUILD_ENVIRONMENT[@]}" +do + if [[ -f "$path" ]]; then + source "$path" + fi +done + +sh "$BASEDIR/run_build_tool.sh" build-pod "$@" + +# Make a symlink from built framework to phony file, which will be used as input to +# build script. This should force rebuild (podspec currently doesn't support alwaysOutOfDate +# attribute on custom build phase) +ln -fs "$OBJROOT/XCBuildData/build.db" "${BUILT_PRODUCTS_DIR}/cargokit_phony" +ln -fs "${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}" "${BUILT_PRODUCTS_DIR}/cargokit_phony_out" diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/README.md b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/README.md new file mode 100644 index 0000000000..a878c27964 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/README.md @@ -0,0 +1,5 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +A sample command-line application with an entrypoint in `bin/`, library code +in `lib/`, and example unit test in `test/`. diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/analysis_options.yaml b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/analysis_options.yaml new file mode 100644 index 0000000000..0e16a8b092 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/analysis_options.yaml @@ -0,0 +1,34 @@ +# This is copied from Cargokit (which is the official way to use it currently) +# Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +# This file configures the static analysis results for your project (errors, +# warnings, and lints). +# +# This enables the 'recommended' set of lints from `package:lints`. +# This set helps identify many issues that may lead to problems when running +# or consuming Dart code, and enforces writing Dart using a single, idiomatic +# style and format. +# +# If you want a smaller set of lints you can change this to specify +# 'package:lints/core.yaml'. These are just the most critical lints +# (the recommended set includes the core lints). +# The core lints are also what is used by pub.dev for scoring packages. + +include: package:lints/recommended.yaml + +# Uncomment the following section to specify additional rules. + +linter: + rules: + - prefer_relative_imports + - directives_ordering + +# analyzer: +# exclude: +# - path/to/excluded/files/** + +# For more information about the core and recommended set of lints, see +# https://dart.dev/go/core-lints + +# For additional information about configuring this file, see +# https://dart.dev/guides/language/analysis-options diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/bin/build_tool.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/bin/build_tool.dart new file mode 100644 index 0000000000..268eb524dc --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/bin/build_tool.dart @@ -0,0 +1,8 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'package:build_tool/build_tool.dart' as build_tool; + +void main(List arguments) { + build_tool.runMain(arguments); +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/build_tool.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/build_tool.dart new file mode 100644 index 0000000000..7c1bb750a4 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/build_tool.dart @@ -0,0 +1,8 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'src/build_tool.dart' as build_tool; + +Future runMain(List args) async { + return build_tool.runMain(args); +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/android_environment.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/android_environment.dart new file mode 100644 index 0000000000..15fc9eedac --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/android_environment.dart @@ -0,0 +1,195 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:io'; +import 'dart:isolate'; +import 'dart:math' as math; + +import 'package:collection/collection.dart'; +import 'package:path/path.dart' as path; +import 'package:version/version.dart'; + +import 'target.dart'; +import 'util.dart'; + +class AndroidEnvironment { + AndroidEnvironment({ + required this.sdkPath, + required this.ndkVersion, + required this.minSdkVersion, + required this.targetTempDir, + required this.target, + }); + + static void clangLinkerWrapper(List args) { + final clang = Platform.environment['_CARGOKIT_NDK_LINK_CLANG']; + if (clang == null) { + throw Exception( + "cargo-ndk rustc linker: didn't find _CARGOKIT_NDK_LINK_CLANG env var"); + } + final target = Platform.environment['_CARGOKIT_NDK_LINK_TARGET']; + if (target == null) { + throw Exception( + "cargo-ndk rustc linker: didn't find _CARGOKIT_NDK_LINK_TARGET env var"); + } + + runCommand(clang, [ + target, + ...args, + ]); + } + + /// Full path to Android SDK. + final String sdkPath; + + /// Full version of Android NDK. + final String ndkVersion; + + /// Minimum supported SDK version. + final int minSdkVersion; + + /// Target directory for build artifacts. + final String targetTempDir; + + /// Target being built. + final Target target; + + bool ndkIsInstalled() { + final ndkPath = path.join(sdkPath, 'ndk', ndkVersion); + final ndkPackageXml = File(path.join(ndkPath, 'package.xml')); + return ndkPackageXml.existsSync(); + } + + void installNdk({ + required String javaHome, + }) { + final sdkManagerExtension = Platform.isWindows ? '.bat' : ''; + final sdkManager = path.join( + sdkPath, + 'cmdline-tools', + 'latest', + 'bin', + 'sdkmanager$sdkManagerExtension', + ); + + log.info('Installing NDK $ndkVersion'); + runCommand(sdkManager, [ + '--install', + 'ndk;$ndkVersion', + ], environment: { + 'JAVA_HOME': javaHome, + }); + } + + Future> buildEnvironment() async { + final hostArch = Platform.isMacOS + ? "darwin-x86_64" + : (Platform.isLinux ? "linux-x86_64" : "windows-x86_64"); + + final ndkPath = path.join(sdkPath, 'ndk', ndkVersion); + final toolchainPath = path.join( + ndkPath, + 'toolchains', + 'llvm', + 'prebuilt', + hostArch, + 'bin', + ); + + final minSdkVersion = + math.max(target.androidMinSdkVersion!, this.minSdkVersion); + + final exe = Platform.isWindows ? '.exe' : ''; + + final arKey = 'AR_${target.rust}'; + final arValue = ['${target.rust}-ar', 'llvm-ar', 'llvm-ar.exe'] + .map((e) => path.join(toolchainPath, e)) + .firstWhereOrNull((element) => File(element).existsSync()); + if (arValue == null) { + throw Exception('Failed to find ar for $target in $toolchainPath'); + } + + final targetArg = '--target=${target.rust}$minSdkVersion'; + + final ccKey = 'CC_${target.rust}'; + final ccValue = path.join(toolchainPath, 'clang$exe'); + final cfFlagsKey = 'CFLAGS_${target.rust}'; + final cFlagsValue = targetArg; + + final cxxKey = 'CXX_${target.rust}'; + final cxxValue = path.join(toolchainPath, 'clang++$exe'); + final cxxFlagsKey = 'CXXFLAGS_${target.rust}'; + final cxxFlagsValue = targetArg; + + final linkerKey = + 'cargo_target_${target.rust.replaceAll('-', '_')}_linker'.toUpperCase(); + + final ranlibKey = 'RANLIB_${target.rust}'; + final ranlibValue = path.join(toolchainPath, 'llvm-ranlib$exe'); + + final ndkVersionParsed = Version.parse(ndkVersion); + final rustFlagsKey = 'CARGO_ENCODED_RUSTFLAGS'; + final rustFlagsValue = _libGccWorkaround(targetTempDir, ndkVersionParsed); + + final runRustTool = + Platform.isWindows ? 'run_build_tool.cmd' : 'run_build_tool.sh'; + + final packagePath = (await Isolate.resolvePackageUri( + Uri.parse('package:build_tool/buildtool.dart')))! + .toFilePath(); + final selfPath = path.canonicalize(path.join( + packagePath, + '..', + '..', + '..', + runRustTool, + )); + + // Make sure that run_build_tool is working properly even initially launched directly + // through dart run. + final toolTempDir = + Platform.environment['CARGOKIT_TOOL_TEMP_DIR'] ?? targetTempDir; + + return { + arKey: arValue, + ccKey: ccValue, + cfFlagsKey: cFlagsValue, + cxxKey: cxxValue, + cxxFlagsKey: cxxFlagsValue, + ranlibKey: ranlibValue, + rustFlagsKey: rustFlagsValue, + linkerKey: selfPath, + // Recognized by main() so we know when we're acting as a wrapper + '_CARGOKIT_NDK_LINK_TARGET': targetArg, + '_CARGOKIT_NDK_LINK_CLANG': ccValue, + 'CARGOKIT_TOOL_TEMP_DIR': toolTempDir, + }; + } + + // Workaround for libgcc missing in NDK23, inspired by cargo-ndk + String _libGccWorkaround(String buildDir, Version ndkVersion) { + final workaroundDir = path.join( + buildDir, + 'cargokit', + 'libgcc_workaround', + '${ndkVersion.major}', + ); + Directory(workaroundDir).createSync(recursive: true); + if (ndkVersion.major >= 23) { + File(path.join(workaroundDir, 'libgcc.a')) + .writeAsStringSync('INPUT(-lunwind)'); + } else { + // Other way around, untested, forward libgcc.a from libunwind once Rust + // gets updated for NDK23+. + File(path.join(workaroundDir, 'libunwind.a')) + .writeAsStringSync('INPUT(-lgcc)'); + } + + var rustFlags = Platform.environment['CARGO_ENCODED_RUSTFLAGS'] ?? ''; + if (rustFlags.isNotEmpty) { + rustFlags = '$rustFlags\x1f'; + } + rustFlags = '$rustFlags-L\x1f$workaroundDir'; + return rustFlags; + } +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/artifacts_provider.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/artifacts_provider.dart new file mode 100644 index 0000000000..e608cece73 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/artifacts_provider.dart @@ -0,0 +1,266 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:io'; + +import 'package:ed25519_edwards/ed25519_edwards.dart'; +import 'package:http/http.dart'; +import 'package:logging/logging.dart'; +import 'package:path/path.dart' as path; + +import 'builder.dart'; +import 'crate_hash.dart'; +import 'options.dart'; +import 'precompile_binaries.dart'; +import 'rustup.dart'; +import 'target.dart'; + +class Artifact { + /// File system location of the artifact. + final String path; + + /// Actual file name that the artifact should have in destination folder. + final String finalFileName; + + AritifactType get type { + if (finalFileName.endsWith('.dll') || + finalFileName.endsWith('.dll.lib') || + finalFileName.endsWith('.pdb') || + finalFileName.endsWith('.so') || + finalFileName.endsWith('.dylib')) { + return AritifactType.dylib; + } else if (finalFileName.endsWith('.lib') || finalFileName.endsWith('.a')) { + return AritifactType.staticlib; + } else { + throw Exception('Unknown artifact type for $finalFileName'); + } + } + + Artifact({ + required this.path, + required this.finalFileName, + }); +} + +final _log = Logger('artifacts_provider'); + +class ArtifactProvider { + ArtifactProvider({ + required this.environment, + required this.userOptions, + }); + + final BuildEnvironment environment; + final CargokitUserOptions userOptions; + + Future>> getArtifacts(List targets) async { + final result = await _getPrecompiledArtifacts(targets); + + final pendingTargets = List.of(targets); + pendingTargets.removeWhere((element) => result.containsKey(element)); + + if (pendingTargets.isEmpty) { + return result; + } + + final rustup = Rustup(); + for (final target in targets) { + final builder = RustBuilder(target: target, environment: environment); + builder.prepare(rustup); + _log.info('Building ${environment.crateInfo.packageName} for $target'); + final targetDir = await builder.build(); + // For local build accept both static and dynamic libraries. + final artifactNames = { + ...getArtifactNames( + target: target, + libraryName: environment.crateInfo.packageName, + aritifactType: AritifactType.dylib, + remote: false, + ), + ...getArtifactNames( + target: target, + libraryName: environment.crateInfo.packageName, + aritifactType: AritifactType.staticlib, + remote: false, + ) + }; + final artifacts = artifactNames + .map((artifactName) => Artifact( + path: path.join(targetDir, artifactName), + finalFileName: artifactName, + )) + .where((element) => File(element.path).existsSync()) + .toList(); + result[target] = artifacts; + } + return result; + } + + Future>> _getPrecompiledArtifacts( + List targets) async { + if (userOptions.usePrecompiledBinaries == false) { + _log.info('Precompiled binaries are disabled'); + return {}; + } + if (environment.crateOptions.precompiledBinaries == null) { + _log.fine('Precompiled binaries not enabled for this crate'); + return {}; + } + + final start = Stopwatch()..start(); + final crateHash = CrateHash.compute(environment.manifestDir, + tempStorage: environment.targetTempDir); + _log.fine( + 'Computed crate hash $crateHash in ${start.elapsedMilliseconds}ms'); + + final downloadedArtifactsDir = + path.join(environment.targetTempDir, 'precompiled', crateHash); + Directory(downloadedArtifactsDir).createSync(recursive: true); + + final res = >{}; + + for (final target in targets) { + final requiredArtifacts = getArtifactNames( + target: target, + libraryName: environment.crateInfo.packageName, + remote: true, + ); + final artifactsForTarget = []; + + for (final artifact in requiredArtifacts) { + final fileName = PrecompileBinaries.fileName(target, artifact); + final downloadedPath = path.join(downloadedArtifactsDir, fileName); + if (!File(downloadedPath).existsSync()) { + final signatureFileName = + PrecompileBinaries.signatureFileName(target, artifact); + await _tryDownloadArtifacts( + crateHash: crateHash, + fileName: fileName, + signatureFileName: signatureFileName, + finalPath: downloadedPath, + ); + } + if (File(downloadedPath).existsSync()) { + artifactsForTarget.add(Artifact( + path: downloadedPath, + finalFileName: artifact, + )); + } else { + break; + } + } + + // Only provide complete set of artifacts. + if (artifactsForTarget.length == requiredArtifacts.length) { + _log.fine('Found precompiled artifacts for $target'); + res[target] = artifactsForTarget; + } + } + + return res; + } + + static Future _get(Uri url, {Map? headers}) async { + int attempt = 0; + const maxAttempts = 10; + while (true) { + try { + return await get(url, headers: headers); + } on SocketException catch (e) { + // Try to detect reset by peer error and retry. + if (attempt++ < maxAttempts && + (e.osError?.errorCode == 54 || e.osError?.errorCode == 10054)) { + _log.severe( + 'Failed to download $url: $e, attempt $attempt of $maxAttempts, will retry...'); + await Future.delayed(Duration(seconds: 1)); + continue; + } else { + rethrow; + } + } + } + } + + Future _tryDownloadArtifacts({ + required String crateHash, + required String fileName, + required String signatureFileName, + required String finalPath, + }) async { + final precompiledBinaries = environment.crateOptions.precompiledBinaries!; + final prefix = precompiledBinaries.uriPrefix; + final url = Uri.parse('$prefix$crateHash/$fileName'); + final signatureUrl = Uri.parse('$prefix$crateHash/$signatureFileName'); + _log.fine('Downloading signature from $signatureUrl'); + final signature = await _get(signatureUrl); + if (signature.statusCode == 404) { + _log.warning( + 'Precompiled binaries not available for crate hash $crateHash ($fileName)'); + return; + } + if (signature.statusCode != 200) { + _log.severe( + 'Failed to download signature $signatureUrl: status ${signature.statusCode}'); + return; + } + _log.fine('Downloading binary from $url'); + final res = await _get(url); + if (res.statusCode != 200) { + _log.severe('Failed to download binary $url: status ${res.statusCode}'); + return; + } + if (verify( + precompiledBinaries.publicKey, res.bodyBytes, signature.bodyBytes)) { + File(finalPath).writeAsBytesSync(res.bodyBytes); + } else { + _log.shout('Signature verification failed! Ignoring binary.'); + } + } +} + +enum AritifactType { + staticlib, + dylib, +} + +AritifactType artifactTypeForTarget(Target target) { + if (target.darwinPlatform != null) { + return AritifactType.staticlib; + } else { + return AritifactType.dylib; + } +} + +List getArtifactNames({ + required Target target, + required String libraryName, + required bool remote, + AritifactType? aritifactType, +}) { + aritifactType ??= artifactTypeForTarget(target); + if (target.darwinArch != null) { + if (aritifactType == AritifactType.staticlib) { + return ['lib$libraryName.a']; + } else { + return ['lib$libraryName.dylib']; + } + } else if (target.rust.contains('-windows-')) { + if (aritifactType == AritifactType.staticlib) { + return ['$libraryName.lib']; + } else { + return [ + '$libraryName.dll', + '$libraryName.dll.lib', + if (!remote) '$libraryName.pdb' + ]; + } + } else if (target.rust.contains('-linux-')) { + if (aritifactType == AritifactType.staticlib) { + return ['lib$libraryName.a']; + } else { + return ['lib$libraryName.so']; + } + } else { + throw Exception("Unsupported target: ${target.rust}"); + } +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/build_cmake.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/build_cmake.dart new file mode 100644 index 0000000000..6f3b2a4ec1 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/build_cmake.dart @@ -0,0 +1,40 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:io'; + +import 'package:path/path.dart' as path; + +import 'artifacts_provider.dart'; +import 'builder.dart'; +import 'environment.dart'; +import 'options.dart'; +import 'target.dart'; + +class BuildCMake { + final CargokitUserOptions userOptions; + + BuildCMake({required this.userOptions}); + + Future build() async { + final targetPlatform = Environment.targetPlatform; + final target = Target.forFlutterName(Environment.targetPlatform); + if (target == null) { + throw Exception("Unknown target platform: $targetPlatform"); + } + + final environment = BuildEnvironment.fromEnvironment(isAndroid: false); + final provider = + ArtifactProvider(environment: environment, userOptions: userOptions); + final artifacts = await provider.getArtifacts([target]); + + final libs = artifacts[target]!; + + for (final lib in libs) { + if (lib.type == AritifactType.dylib) { + File(lib.path) + .copySync(path.join(Environment.outputDir, lib.finalFileName)); + } + } + } +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/build_gradle.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/build_gradle.dart new file mode 100644 index 0000000000..7e61fcbb7c --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/build_gradle.dart @@ -0,0 +1,49 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:io'; + +import 'package:logging/logging.dart'; +import 'package:path/path.dart' as path; + +import 'artifacts_provider.dart'; +import 'builder.dart'; +import 'environment.dart'; +import 'options.dart'; +import 'target.dart'; + +final log = Logger('build_gradle'); + +class BuildGradle { + BuildGradle({required this.userOptions}); + + final CargokitUserOptions userOptions; + + Future build() async { + final targets = Environment.targetPlatforms.map((arch) { + final target = Target.forFlutterName(arch); + if (target == null) { + throw Exception( + "Unknown darwin target or platform: $arch, ${Environment.darwinPlatformName}"); + } + return target; + }).toList(); + + final environment = BuildEnvironment.fromEnvironment(isAndroid: true); + final provider = + ArtifactProvider(environment: environment, userOptions: userOptions); + final artifacts = await provider.getArtifacts(targets); + + for (final target in targets) { + final libs = artifacts[target]!; + final outputDir = path.join(Environment.outputDir, target.android!); + Directory(outputDir).createSync(recursive: true); + + for (final lib in libs) { + if (lib.type == AritifactType.dylib) { + File(lib.path).copySync(path.join(outputDir, lib.finalFileName)); + } + } + } + } +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/build_pod.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/build_pod.dart new file mode 100644 index 0000000000..8a9c0db5de --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/build_pod.dart @@ -0,0 +1,89 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:io'; + +import 'package:path/path.dart' as path; + +import 'artifacts_provider.dart'; +import 'builder.dart'; +import 'environment.dart'; +import 'options.dart'; +import 'target.dart'; +import 'util.dart'; + +class BuildPod { + BuildPod({required this.userOptions}); + + final CargokitUserOptions userOptions; + + Future build() async { + final targets = Environment.darwinArchs.map((arch) { + final target = Target.forDarwin( + platformName: Environment.darwinPlatformName, darwinAarch: arch); + if (target == null) { + throw Exception( + "Unknown darwin target or platform: $arch, ${Environment.darwinPlatformName}"); + } + return target; + }).toList(); + + final environment = BuildEnvironment.fromEnvironment(isAndroid: false); + final provider = + ArtifactProvider(environment: environment, userOptions: userOptions); + final artifacts = await provider.getArtifacts(targets); + + void performLipo(String targetFile, Iterable sourceFiles) { + runCommand("lipo", [ + '-create', + ...sourceFiles, + '-output', + targetFile, + ]); + } + + final outputDir = Environment.outputDir; + + Directory(outputDir).createSync(recursive: true); + + final staticLibs = artifacts.values + .expand((element) => element) + .where((element) => element.type == AritifactType.staticlib) + .toList(); + final dynamicLibs = artifacts.values + .expand((element) => element) + .where((element) => element.type == AritifactType.dylib) + .toList(); + + final libName = environment.crateInfo.packageName; + + // If there is static lib, use it and link it with pod + if (staticLibs.isNotEmpty) { + final finalTargetFile = path.join(outputDir, "lib$libName.a"); + performLipo(finalTargetFile, staticLibs.map((e) => e.path)); + } else { + // Otherwise try to replace bundle dylib with our dylib + final bundlePaths = [ + '$libName.framework/Versions/A/$libName', + '$libName.framework/$libName', + ]; + + for (final bundlePath in bundlePaths) { + final targetFile = path.join(outputDir, bundlePath); + if (File(targetFile).existsSync()) { + performLipo(targetFile, dynamicLibs.map((e) => e.path)); + + // Replace absolute id with @rpath one so that it works properly + // when moved to Frameworks. + runCommand("install_name_tool", [ + '-id', + '@rpath/$bundlePath', + targetFile, + ]); + return; + } + } + throw Exception('Unable to find bundle for dynamic library'); + } + } +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/build_tool.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/build_tool.dart new file mode 100644 index 0000000000..c8f36981b5 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/build_tool.dart @@ -0,0 +1,271 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:io'; + +import 'package:args/command_runner.dart'; +import 'package:ed25519_edwards/ed25519_edwards.dart'; +import 'package:github/github.dart'; +import 'package:hex/hex.dart'; +import 'package:logging/logging.dart'; + +import 'android_environment.dart'; +import 'build_cmake.dart'; +import 'build_gradle.dart'; +import 'build_pod.dart'; +import 'logging.dart'; +import 'options.dart'; +import 'precompile_binaries.dart'; +import 'target.dart'; +import 'util.dart'; +import 'verify_binaries.dart'; + +final log = Logger('build_tool'); + +abstract class BuildCommand extends Command { + Future runBuildCommand(CargokitUserOptions options); + + @override + Future run() async { + final options = CargokitUserOptions.load(); + + if (options.verboseLogging || + Platform.environment['CARGOKIT_VERBOSE'] == '1') { + enableVerboseLogging(); + } + + await runBuildCommand(options); + } +} + +class BuildPodCommand extends BuildCommand { + @override + final name = 'build-pod'; + + @override + final description = 'Build cocoa pod library'; + + @override + Future runBuildCommand(CargokitUserOptions options) async { + final build = BuildPod(userOptions: options); + await build.build(); + } +} + +class BuildGradleCommand extends BuildCommand { + @override + final name = 'build-gradle'; + + @override + final description = 'Build android library'; + + @override + Future runBuildCommand(CargokitUserOptions options) async { + final build = BuildGradle(userOptions: options); + await build.build(); + } +} + +class BuildCMakeCommand extends BuildCommand { + @override + final name = 'build-cmake'; + + @override + final description = 'Build CMake library'; + + @override + Future runBuildCommand(CargokitUserOptions options) async { + final build = BuildCMake(userOptions: options); + await build.build(); + } +} + +class GenKeyCommand extends Command { + @override + final name = 'gen-key'; + + @override + final description = 'Generate key pair for signing precompiled binaries'; + + @override + void run() { + final kp = generateKey(); + final private = HEX.encode(kp.privateKey.bytes); + final public = HEX.encode(kp.publicKey.bytes); + print("Private Key: $private"); + print("Public Key: $public"); + } +} + +class PrecompileBinariesCommand extends Command { + PrecompileBinariesCommand() { + argParser + ..addOption( + 'repository', + mandatory: true, + help: 'Github repository slug in format owner/name', + ) + ..addOption( + 'manifest-dir', + mandatory: true, + help: 'Directory containing Cargo.toml', + ) + ..addMultiOption('target', + help: 'Rust target triple of artifact to build.\n' + 'Can be specified multiple times or omitted in which case\n' + 'all targets for current platform will be built.') + ..addOption( + 'android-sdk-location', + help: 'Location of Android SDK (if available)', + ) + ..addOption( + 'android-ndk-version', + help: 'Android NDK version (if available)', + ) + ..addOption( + 'android-min-sdk-version', + help: 'Android minimum rquired version (if available)', + ) + ..addOption( + 'temp-dir', + help: 'Directory to store temporary build artifacts', + ) + ..addFlag( + "verbose", + abbr: "v", + defaultsTo: false, + help: "Enable verbose logging", + ); + } + + @override + final name = 'precompile-binaries'; + + @override + final description = 'Prebuild and upload binaries\n' + 'Private key must be passed through PRIVATE_KEY environment variable. ' + 'Use gen_key through generate priave key.\n' + 'Github token must be passed as GITHUB_TOKEN environment variable.\n'; + + @override + Future run() async { + final verbose = argResults!['verbose'] as bool; + if (verbose) { + enableVerboseLogging(); + } + + final privateKeyString = Platform.environment['PRIVATE_KEY']; + if (privateKeyString == null) { + throw ArgumentError('Missing PRIVATE_KEY environment variable'); + } + final githubToken = Platform.environment['GITHUB_TOKEN']; + if (githubToken == null) { + throw ArgumentError('Missing GITHUB_TOKEN environment variable'); + } + final privateKey = HEX.decode(privateKeyString); + if (privateKey.length != 64) { + throw ArgumentError('Private key must be 64 bytes long'); + } + final manifestDir = argResults!['manifest-dir'] as String; + if (!Directory(manifestDir).existsSync()) { + throw ArgumentError('Manifest directory does not exist: $manifestDir'); + } + String? androidMinSdkVersionString = + argResults!['android-min-sdk-version'] as String?; + int? androidMinSdkVersion; + if (androidMinSdkVersionString != null) { + androidMinSdkVersion = int.tryParse(androidMinSdkVersionString); + if (androidMinSdkVersion == null) { + throw ArgumentError( + 'Invalid android-min-sdk-version: $androidMinSdkVersionString'); + } + } + final targetStrigns = argResults!['target'] as List; + final targets = targetStrigns.map((target) { + final res = Target.forRustTriple(target); + if (res == null) { + throw ArgumentError('Invalid target: $target'); + } + return res; + }).toList(growable: false); + final precompileBinaries = PrecompileBinaries( + privateKey: PrivateKey(privateKey), + githubToken: githubToken, + manifestDir: manifestDir, + repositorySlug: RepositorySlug.full(argResults!['repository'] as String), + targets: targets, + androidSdkLocation: argResults!['android-sdk-location'] as String?, + androidNdkVersion: argResults!['android-ndk-version'] as String?, + androidMinSdkVersion: androidMinSdkVersion, + tempDir: argResults!['temp-dir'] as String?, + ); + + await precompileBinaries.run(); + } +} + +class VerifyBinariesCommand extends Command { + VerifyBinariesCommand() { + argParser.addOption( + 'manifest-dir', + mandatory: true, + help: 'Directory containing Cargo.toml', + ); + } + + @override + final name = "verify-binaries"; + + @override + final description = 'Verifies published binaries\n' + 'Checks whether there is a binary published for each targets\n' + 'and checks the signature.'; + + @override + Future run() async { + final manifestDir = argResults!['manifest-dir'] as String; + final verifyBinaries = VerifyBinaries( + manifestDir: manifestDir, + ); + await verifyBinaries.run(); + } +} + +Future runMain(List args) async { + try { + // Init logging before options are loaded + initLogging(); + + if (Platform.environment['_CARGOKIT_NDK_LINK_TARGET'] != null) { + return AndroidEnvironment.clangLinkerWrapper(args); + } + + final runner = CommandRunner('build_tool', 'Cargokit built_tool') + ..addCommand(BuildPodCommand()) + ..addCommand(BuildGradleCommand()) + ..addCommand(BuildCMakeCommand()) + ..addCommand(GenKeyCommand()) + ..addCommand(PrecompileBinariesCommand()) + ..addCommand(VerifyBinariesCommand()); + + await runner.run(args); + } on ArgumentError catch (e) { + stderr.writeln(e.toString()); + exit(1); + } catch (e, s) { + log.severe(kDoubleSeparator); + log.severe('Cargokit BuildTool failed with error:'); + log.severe(kSeparator); + log.severe(e); + // This tells user to install Rust, there's no need to pollute the log with + // stack trace. + if (e is! RustupNotFoundException) { + log.severe(kSeparator); + log.severe(s); + log.severe(kSeparator); + log.severe('BuildTool arguments: $args'); + } + log.severe(kDoubleSeparator); + exit(1); + } +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/builder.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/builder.dart new file mode 100644 index 0000000000..84c46e4f54 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/builder.dart @@ -0,0 +1,198 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'package:collection/collection.dart'; +import 'package:logging/logging.dart'; +import 'package:path/path.dart' as path; + +import 'android_environment.dart'; +import 'cargo.dart'; +import 'environment.dart'; +import 'options.dart'; +import 'rustup.dart'; +import 'target.dart'; +import 'util.dart'; + +final _log = Logger('builder'); + +enum BuildConfiguration { + debug, + release, + profile, +} + +extension on BuildConfiguration { + bool get isDebug => this == BuildConfiguration.debug; + String get rustName => switch (this) { + BuildConfiguration.debug => 'debug', + BuildConfiguration.release => 'release', + BuildConfiguration.profile => 'release', + }; +} + +class BuildException implements Exception { + final String message; + + BuildException(this.message); + + @override + String toString() { + return 'BuildException: $message'; + } +} + +class BuildEnvironment { + final BuildConfiguration configuration; + final CargokitCrateOptions crateOptions; + final String targetTempDir; + final String manifestDir; + final CrateInfo crateInfo; + + final bool isAndroid; + final String? androidSdkPath; + final String? androidNdkVersion; + final int? androidMinSdkVersion; + final String? javaHome; + + BuildEnvironment({ + required this.configuration, + required this.crateOptions, + required this.targetTempDir, + required this.manifestDir, + required this.crateInfo, + required this.isAndroid, + this.androidSdkPath, + this.androidNdkVersion, + this.androidMinSdkVersion, + this.javaHome, + }); + + static BuildConfiguration parseBuildConfiguration(String value) { + // XCode configuration adds the flavor to configuration name. + final firstSegment = value.split('-').first; + final buildConfiguration = BuildConfiguration.values.firstWhereOrNull( + (e) => e.name == firstSegment, + ); + if (buildConfiguration == null) { + _log.warning('Unknown build configuraiton $value, will assume release'); + return BuildConfiguration.release; + } + return buildConfiguration; + } + + static BuildEnvironment fromEnvironment({ + required bool isAndroid, + }) { + final buildConfiguration = + parseBuildConfiguration(Environment.configuration); + final manifestDir = Environment.manifestDir; + final crateOptions = CargokitCrateOptions.load( + manifestDir: manifestDir, + ); + final crateInfo = CrateInfo.load(manifestDir); + return BuildEnvironment( + configuration: buildConfiguration, + crateOptions: crateOptions, + targetTempDir: Environment.targetTempDir, + manifestDir: manifestDir, + crateInfo: crateInfo, + isAndroid: isAndroid, + androidSdkPath: isAndroid ? Environment.sdkPath : null, + androidNdkVersion: isAndroid ? Environment.ndkVersion : null, + androidMinSdkVersion: + isAndroid ? int.parse(Environment.minSdkVersion) : null, + javaHome: isAndroid ? Environment.javaHome : null, + ); + } +} + +class RustBuilder { + final Target target; + final BuildEnvironment environment; + + RustBuilder({ + required this.target, + required this.environment, + }); + + void prepare( + Rustup rustup, + ) { + final toolchain = _toolchain; + if (rustup.installedTargets(toolchain) == null) { + rustup.installToolchain(toolchain); + } + if (toolchain == 'nightly') { + rustup.installRustSrcForNightly(); + } + if (!rustup.installedTargets(toolchain)!.contains(target.rust)) { + rustup.installTarget(target.rust, toolchain: toolchain); + } + } + + CargoBuildOptions? get _buildOptions => + environment.crateOptions.cargo[environment.configuration]; + + String get _toolchain => _buildOptions?.toolchain.name ?? 'stable'; + + /// Returns the path of directory containing build artifacts. + Future build() async { + final extraArgs = _buildOptions?.flags ?? []; + final manifestPath = path.join(environment.manifestDir, 'Cargo.toml'); + runCommand( + 'rustup', + [ + 'run', + _toolchain, + 'cargo', + 'build', + ...extraArgs, + '--manifest-path', + manifestPath, + '-p', + environment.crateInfo.packageName, + if (!environment.configuration.isDebug) '--release', + '--target', + target.rust, + '--target-dir', + environment.targetTempDir, + ], + environment: await _buildEnvironment(), + ); + return path.join( + environment.targetTempDir, + target.rust, + environment.configuration.rustName, + ); + } + + Future> _buildEnvironment() async { + if (target.android == null) { + return {}; + } else { + final sdkPath = environment.androidSdkPath; + final ndkVersion = environment.androidNdkVersion; + final minSdkVersion = environment.androidMinSdkVersion; + if (sdkPath == null) { + throw BuildException('androidSdkPath is not set'); + } + if (ndkVersion == null) { + throw BuildException('androidNdkVersion is not set'); + } + if (minSdkVersion == null) { + throw BuildException('androidMinSdkVersion is not set'); + } + final env = AndroidEnvironment( + sdkPath: sdkPath, + ndkVersion: ndkVersion, + minSdkVersion: minSdkVersion, + targetTempDir: environment.targetTempDir, + target: target, + ); + if (!env.ndkIsInstalled() && environment.javaHome != null) { + env.installNdk(javaHome: environment.javaHome!); + } + return env.buildEnvironment(); + } + } +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/cargo.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/cargo.dart new file mode 100644 index 0000000000..0d8958ff2e --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/cargo.dart @@ -0,0 +1,48 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:io'; + +import 'package:path/path.dart' as path; +import 'package:toml/toml.dart'; + +class ManifestException { + ManifestException(this.message, {required this.fileName}); + + final String? fileName; + final String message; + + @override + String toString() { + if (fileName != null) { + return 'Failed to parse package manifest at $fileName: $message'; + } else { + return 'Failed to parse package manifest: $message'; + } + } +} + +class CrateInfo { + CrateInfo({required this.packageName}); + + final String packageName; + + static CrateInfo parseManifest(String manifest, {final String? fileName}) { + final toml = TomlDocument.parse(manifest); + final package = toml.toMap()['package']; + if (package == null) { + throw ManifestException('Missing package section', fileName: fileName); + } + final name = package['name']; + if (name == null) { + throw ManifestException('Missing package name', fileName: fileName); + } + return CrateInfo(packageName: name); + } + + static CrateInfo load(String manifestDir) { + final manifestFile = File(path.join(manifestDir, 'Cargo.toml')); + final manifest = manifestFile.readAsStringSync(); + return parseManifest(manifest, fileName: manifestFile.path); + } +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/crate_hash.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/crate_hash.dart new file mode 100644 index 0000000000..0c4d88d16b --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/crate_hash.dart @@ -0,0 +1,124 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:convert'; +import 'dart:io'; +import 'dart:typed_data'; + +import 'package:collection/collection.dart'; +import 'package:convert/convert.dart'; +import 'package:crypto/crypto.dart'; +import 'package:path/path.dart' as path; + +class CrateHash { + /// Computes a hash uniquely identifying crate content. This takes into account + /// content all all .rs files inside the src directory, as well as Cargo.toml, + /// Cargo.lock, build.rs and cargokit.yaml. + /// + /// If [tempStorage] is provided, computed hash is stored in a file in that directory + /// and reused on subsequent calls if the crate content hasn't changed. + static String compute(String manifestDir, {String? tempStorage}) { + return CrateHash._( + manifestDir: manifestDir, + tempStorage: tempStorage, + )._compute(); + } + + CrateHash._({ + required this.manifestDir, + required this.tempStorage, + }); + + String _compute() { + final files = getFiles(); + final tempStorage = this.tempStorage; + if (tempStorage != null) { + final quickHash = _computeQuickHash(files); + final quickHashFolder = Directory(path.join(tempStorage, 'crate_hash')); + quickHashFolder.createSync(recursive: true); + final quickHashFile = File(path.join(quickHashFolder.path, quickHash)); + if (quickHashFile.existsSync()) { + return quickHashFile.readAsStringSync(); + } + final hash = _computeHash(files); + quickHashFile.writeAsStringSync(hash); + return hash; + } else { + return _computeHash(files); + } + } + + /// Computes a quick hash based on files stat (without reading contents). This + /// is used to cache the real hash, which is slower to compute since it involves + /// reading every single file. + String _computeQuickHash(List files) { + final output = AccumulatorSink(); + final input = sha256.startChunkedConversion(output); + + final data = ByteData(8); + for (final file in files) { + input.add(utf8.encode(file.path)); + final stat = file.statSync(); + data.setUint64(0, stat.size); + input.add(data.buffer.asUint8List()); + data.setUint64(0, stat.modified.millisecondsSinceEpoch); + input.add(data.buffer.asUint8List()); + } + + input.close(); + return base64Url.encode(output.events.single.bytes); + } + + String _computeHash(List files) { + final output = AccumulatorSink(); + final input = sha256.startChunkedConversion(output); + + void addTextFile(File file) { + // text Files are hashed by lines in case we're dealing with github checkout + // that auto-converts line endings. + final splitter = LineSplitter(); + if (file.existsSync()) { + final data = file.readAsStringSync(); + final lines = splitter.convert(data); + for (final line in lines) { + input.add(utf8.encode(line)); + } + } + } + + for (final file in files) { + addTextFile(file); + } + + input.close(); + final res = output.events.single; + + // Truncate to 128bits. + final hash = res.bytes.sublist(0, 16); + return hex.encode(hash); + } + + List getFiles() { + final src = Directory(path.join(manifestDir, 'src')); + final files = src + .listSync(recursive: true, followLinks: false) + .whereType() + .toList(); + files.sortBy((element) => element.path); + void addFile(String relative) { + final file = File(path.join(manifestDir, relative)); + if (file.existsSync()) { + files.add(file); + } + } + + addFile('Cargo.toml'); + addFile('Cargo.lock'); + addFile('build.rs'); + addFile('cargokit.yaml'); + return files; + } + + final String manifestDir; + final String? tempStorage; +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/environment.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/environment.dart new file mode 100644 index 0000000000..996483a180 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/environment.dart @@ -0,0 +1,68 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:io'; + +extension on String { + String resolveSymlink() => File(this).resolveSymbolicLinksSync(); +} + +class Environment { + /// Current build configuration (debug or release). + static String get configuration => + _getEnv("CARGOKIT_CONFIGURATION").toLowerCase(); + + static bool get isDebug => configuration == 'debug'; + static bool get isRelease => configuration == 'release'; + + /// Temporary directory where Rust build artifacts are placed. + static String get targetTempDir => _getEnv("CARGOKIT_TARGET_TEMP_DIR"); + + /// Final output directory where the build artifacts are placed. + static String get outputDir => _getEnvPath('CARGOKIT_OUTPUT_DIR'); + + /// Path to the crate manifest (containing Cargo.toml). + static String get manifestDir => _getEnvPath('CARGOKIT_MANIFEST_DIR'); + + /// Directory inside root project. Not necessarily root folder. Symlinks are + /// not resolved on purpose. + static String get rootProjectDir => _getEnv('CARGOKIT_ROOT_PROJECT_DIR'); + + // Pod + + /// Platform name (macosx, iphoneos, iphonesimulator). + static String get darwinPlatformName => + _getEnv("CARGOKIT_DARWIN_PLATFORM_NAME"); + + /// List of architectures to build for (arm64, armv7, x86_64). + static List get darwinArchs => + _getEnv("CARGOKIT_DARWIN_ARCHS").split(' '); + + // Gradle + static String get minSdkVersion => _getEnv("CARGOKIT_MIN_SDK_VERSION"); + static String get ndkVersion => _getEnv("CARGOKIT_NDK_VERSION"); + static String get sdkPath => _getEnvPath("CARGOKIT_SDK_DIR"); + static String get javaHome => _getEnvPath("CARGOKIT_JAVA_HOME"); + static List get targetPlatforms => + _getEnv("CARGOKIT_TARGET_PLATFORMS").split(','); + + // CMAKE + static String get targetPlatform => _getEnv("CARGOKIT_TARGET_PLATFORM"); + + static String _getEnv(String key) { + final res = Platform.environment[key]; + if (res == null) { + throw Exception("Missing environment variable $key"); + } + return res; + } + + static String _getEnvPath(String key) { + final res = _getEnv(key); + if (Directory(res).existsSync()) { + return res.resolveSymlink(); + } else { + return res; + } + } +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/logging.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/logging.dart new file mode 100644 index 0000000000..5edd4fd184 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/logging.dart @@ -0,0 +1,52 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:io'; + +import 'package:logging/logging.dart'; + +const String kSeparator = "--"; +const String kDoubleSeparator = "=="; + +bool _lastMessageWasSeparator = false; + +void _log(LogRecord rec) { + final prefix = '${rec.level.name}: '; + final out = rec.level == Level.SEVERE ? stderr : stdout; + if (rec.message == kSeparator) { + if (!_lastMessageWasSeparator) { + out.write(prefix); + out.writeln('-' * 80); + _lastMessageWasSeparator = true; + } + return; + } else if (rec.message == kDoubleSeparator) { + out.write(prefix); + out.writeln('=' * 80); + _lastMessageWasSeparator = true; + return; + } + out.write(prefix); + out.writeln(rec.message); + _lastMessageWasSeparator = false; +} + +void initLogging() { + Logger.root.level = Level.INFO; + Logger.root.onRecord.listen((LogRecord rec) { + final lines = rec.message.split('\n'); + for (final line in lines) { + if (line.isNotEmpty || lines.length == 1 || line != lines.last) { + _log(LogRecord( + rec.level, + line, + rec.loggerName, + )); + } + } + }); +} + +void enableVerboseLogging() { + Logger.root.level = Level.ALL; +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/options.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/options.dart new file mode 100644 index 0000000000..22aef1d371 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/options.dart @@ -0,0 +1,309 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:io'; + +import 'package:collection/collection.dart'; +import 'package:ed25519_edwards/ed25519_edwards.dart'; +import 'package:hex/hex.dart'; +import 'package:logging/logging.dart'; +import 'package:path/path.dart' as path; +import 'package:source_span/source_span.dart'; +import 'package:yaml/yaml.dart'; + +import 'builder.dart'; +import 'environment.dart'; +import 'rustup.dart'; + +final _log = Logger('options'); + +/// A class for exceptions that have source span information attached. +class SourceSpanException implements Exception { + // This is a getter so that subclasses can override it. + /// A message describing the exception. + String get message => _message; + final String _message; + + // This is a getter so that subclasses can override it. + /// The span associated with this exception. + /// + /// This may be `null` if the source location can't be determined. + SourceSpan? get span => _span; + final SourceSpan? _span; + + SourceSpanException(this._message, this._span); + + /// Returns a string representation of `this`. + /// + /// [color] may either be a [String], a [bool], or `null`. If it's a string, + /// it indicates an ANSI terminal color escape that should be used to + /// highlight the span's text. If it's `true`, it indicates that the text + /// should be highlighted using the default color. If it's `false` or `null`, + /// it indicates that the text shouldn't be highlighted. + @override + String toString({Object? color}) { + if (span == null) return message; + return 'Error on ${span!.message(message, color: color)}'; + } +} + +enum Toolchain { + stable, + beta, + nightly, +} + +class CargoBuildOptions { + final Toolchain toolchain; + final List flags; + + CargoBuildOptions({ + required this.toolchain, + required this.flags, + }); + + static Toolchain _toolchainFromNode(YamlNode node) { + if (node case YamlScalar(value: String name)) { + final toolchain = + Toolchain.values.firstWhereOrNull((element) => element.name == name); + if (toolchain != null) { + return toolchain; + } + } + throw SourceSpanException( + 'Unknown toolchain. Must be one of ${Toolchain.values.map((e) => e.name)}.', + node.span); + } + + static CargoBuildOptions parse(YamlNode node) { + if (node is! YamlMap) { + throw SourceSpanException('Cargo options must be a map', node.span); + } + Toolchain toolchain = Toolchain.stable; + List flags = []; + for (final MapEntry(:key, :value) in node.nodes.entries) { + if (key case YamlScalar(value: 'toolchain')) { + toolchain = _toolchainFromNode(value); + } else if (key case YamlScalar(value: 'extra_flags')) { + if (value case YamlList(nodes: List list)) { + if (list.every((element) { + if (element case YamlScalar(value: String _)) { + return true; + } + return false; + })) { + flags = list.map((e) => e.value as String).toList(); + continue; + } + } + throw SourceSpanException( + 'Extra flags must be a list of strings', value.span); + } else { + throw SourceSpanException( + 'Unknown cargo option type. Must be "toolchain" or "extra_flags".', + key.span); + } + } + return CargoBuildOptions(toolchain: toolchain, flags: flags); + } +} + +extension on YamlMap { + /// Map that extracts keys so that we can do map case check on them. + Map get valueMap => + nodes.map((key, value) => MapEntry(key.value, value)); +} + +class PrecompiledBinaries { + final String uriPrefix; + final PublicKey publicKey; + + PrecompiledBinaries({ + required this.uriPrefix, + required this.publicKey, + }); + + static PublicKey _publicKeyFromHex(String key, SourceSpan? span) { + final bytes = HEX.decode(key); + if (bytes.length != 32) { + throw SourceSpanException( + 'Invalid public key. Must be 32 bytes long.', span); + } + return PublicKey(bytes); + } + + static PrecompiledBinaries parse(YamlNode node) { + if (node case YamlMap(valueMap: Map map)) { + if (map + case { + 'url_prefix': YamlNode urlPrefixNode, + 'public_key': YamlNode publicKeyNode, + }) { + final urlPrefix = switch (urlPrefixNode) { + YamlScalar(value: String urlPrefix) => urlPrefix, + _ => throw SourceSpanException( + 'Invalid URL prefix value.', urlPrefixNode.span), + }; + final publicKey = switch (publicKeyNode) { + YamlScalar(value: String publicKey) => + _publicKeyFromHex(publicKey, publicKeyNode.span), + _ => throw SourceSpanException( + 'Invalid public key value.', publicKeyNode.span), + }; + return PrecompiledBinaries( + uriPrefix: urlPrefix, + publicKey: publicKey, + ); + } + } + throw SourceSpanException( + 'Invalid precompiled binaries value. ' + 'Expected Map with "url_prefix" and "public_key".', + node.span); + } +} + +/// Cargokit options specified for Rust crate. +class CargokitCrateOptions { + CargokitCrateOptions({ + this.cargo = const {}, + this.precompiledBinaries, + }); + + final Map cargo; + final PrecompiledBinaries? precompiledBinaries; + + static CargokitCrateOptions parse(YamlNode node) { + if (node is! YamlMap) { + throw SourceSpanException('Cargokit options must be a map', node.span); + } + final options = {}; + PrecompiledBinaries? precompiledBinaries; + + for (final entry in node.nodes.entries) { + if (entry + case MapEntry( + key: YamlScalar(value: 'cargo'), + value: YamlNode node, + )) { + if (node is! YamlMap) { + throw SourceSpanException('Cargo options must be a map', node.span); + } + for (final MapEntry(:YamlNode key, :value) in node.nodes.entries) { + if (key case YamlScalar(value: String name)) { + final configuration = BuildConfiguration.values + .firstWhereOrNull((element) => element.name == name); + if (configuration != null) { + options[configuration] = CargoBuildOptions.parse(value); + continue; + } + } + throw SourceSpanException( + 'Unknown build configuration. Must be one of ${BuildConfiguration.values.map((e) => e.name)}.', + key.span); + } + } else if (entry.key case YamlScalar(value: 'precompiled_binaries')) { + precompiledBinaries = PrecompiledBinaries.parse(entry.value); + } else { + throw SourceSpanException( + 'Unknown cargokit option type. Must be "cargo" or "precompiled_binaries".', + entry.key.span); + } + } + return CargokitCrateOptions( + cargo: options, + precompiledBinaries: precompiledBinaries, + ); + } + + static CargokitCrateOptions load({ + required String manifestDir, + }) { + final uri = Uri.file(path.join(manifestDir, "cargokit.yaml")); + final file = File.fromUri(uri); + if (file.existsSync()) { + final contents = loadYamlNode(file.readAsStringSync(), sourceUrl: uri); + return parse(contents); + } else { + return CargokitCrateOptions(); + } + } +} + +class CargokitUserOptions { + // When Rustup is installed always build locally unless user opts into + // using precompiled binaries. + static bool defaultUsePrecompiledBinaries() { + return Rustup.executablePath() == null; + } + + CargokitUserOptions({ + required this.usePrecompiledBinaries, + required this.verboseLogging, + }); + + CargokitUserOptions._() + : usePrecompiledBinaries = defaultUsePrecompiledBinaries(), + verboseLogging = false; + + static CargokitUserOptions parse(YamlNode node) { + if (node is! YamlMap) { + throw SourceSpanException('Cargokit options must be a map', node.span); + } + bool usePrecompiledBinaries = defaultUsePrecompiledBinaries(); + bool verboseLogging = false; + + for (final entry in node.nodes.entries) { + if (entry.key case YamlScalar(value: 'use_precompiled_binaries')) { + if (entry.value case YamlScalar(value: bool value)) { + usePrecompiledBinaries = value; + continue; + } + throw SourceSpanException( + 'Invalid value for "use_precompiled_binaries". Must be a boolean.', + entry.value.span); + } else if (entry.key case YamlScalar(value: 'verbose_logging')) { + if (entry.value case YamlScalar(value: bool value)) { + verboseLogging = value; + continue; + } + throw SourceSpanException( + 'Invalid value for "verbose_logging". Must be a boolean.', + entry.value.span); + } else { + throw SourceSpanException( + 'Unknown cargokit option type. Must be "use_precompiled_binaries" or "verbose_logging".', + entry.key.span); + } + } + return CargokitUserOptions( + usePrecompiledBinaries: usePrecompiledBinaries, + verboseLogging: verboseLogging, + ); + } + + static CargokitUserOptions load() { + String fileName = "cargokit_options.yaml"; + var userProjectDir = Directory(Environment.rootProjectDir); + + while (userProjectDir.parent.path != userProjectDir.path) { + final configFile = File(path.join(userProjectDir.path, fileName)); + if (configFile.existsSync()) { + final contents = loadYamlNode( + configFile.readAsStringSync(), + sourceUrl: configFile.uri, + ); + final res = parse(contents); + if (res.verboseLogging) { + _log.info('Found user options file at ${configFile.path}'); + } + return res; + } + userProjectDir = userProjectDir.parent; + } + return CargokitUserOptions._(); + } + + final bool usePrecompiledBinaries; + final bool verboseLogging; +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/precompile_binaries.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/precompile_binaries.dart new file mode 100644 index 0000000000..c27f4195dd --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/precompile_binaries.dart @@ -0,0 +1,202 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:io'; + +import 'package:ed25519_edwards/ed25519_edwards.dart'; +import 'package:github/github.dart'; +import 'package:logging/logging.dart'; +import 'package:path/path.dart' as path; + +import 'artifacts_provider.dart'; +import 'builder.dart'; +import 'cargo.dart'; +import 'crate_hash.dart'; +import 'options.dart'; +import 'rustup.dart'; +import 'target.dart'; + +final _log = Logger('precompile_binaries'); + +class PrecompileBinaries { + PrecompileBinaries({ + required this.privateKey, + required this.githubToken, + required this.repositorySlug, + required this.manifestDir, + required this.targets, + this.androidSdkLocation, + this.androidNdkVersion, + this.androidMinSdkVersion, + this.tempDir, + }); + + final PrivateKey privateKey; + final String githubToken; + final RepositorySlug repositorySlug; + final String manifestDir; + final List targets; + final String? androidSdkLocation; + final String? androidNdkVersion; + final int? androidMinSdkVersion; + final String? tempDir; + + static String fileName(Target target, String name) { + return '${target.rust}_$name'; + } + + static String signatureFileName(Target target, String name) { + return '${target.rust}_$name.sig'; + } + + Future run() async { + final crateInfo = CrateInfo.load(manifestDir); + + final targets = List.of(this.targets); + if (targets.isEmpty) { + targets.addAll([ + ...Target.buildableTargets(), + if (androidSdkLocation != null) ...Target.androidTargets(), + ]); + } + + _log.info('Precompiling binaries for $targets'); + + final hash = CrateHash.compute(manifestDir); + _log.info('Computed crate hash: $hash'); + + final String tagName = 'precompiled_$hash'; + + final github = GitHub(auth: Authentication.withToken(githubToken)); + final repo = github.repositories; + final release = await _getOrCreateRelease( + repo: repo, + tagName: tagName, + packageName: crateInfo.packageName, + hash: hash, + ); + + final tempDir = this.tempDir != null + ? Directory(this.tempDir!) + : Directory.systemTemp.createTempSync('precompiled_'); + + tempDir.createSync(recursive: true); + + final crateOptions = CargokitCrateOptions.load( + manifestDir: manifestDir, + ); + + final buildEnvironment = BuildEnvironment( + configuration: BuildConfiguration.release, + crateOptions: crateOptions, + targetTempDir: tempDir.path, + manifestDir: manifestDir, + crateInfo: crateInfo, + isAndroid: androidSdkLocation != null, + androidSdkPath: androidSdkLocation, + androidNdkVersion: androidNdkVersion, + androidMinSdkVersion: androidMinSdkVersion, + ); + + final rustup = Rustup(); + + for (final target in targets) { + final artifactNames = getArtifactNames( + target: target, + libraryName: crateInfo.packageName, + remote: true, + ); + + if (artifactNames.every((name) { + final fileName = PrecompileBinaries.fileName(target, name); + return (release.assets ?? []).any((e) => e.name == fileName); + })) { + _log.info("All artifacts for $target already exist - skipping"); + continue; + } + + _log.info('Building for $target'); + + final builder = + RustBuilder(target: target, environment: buildEnvironment); + builder.prepare(rustup); + final res = await builder.build(); + + final assets = []; + for (final name in artifactNames) { + final file = File(path.join(res, name)); + if (!file.existsSync()) { + throw Exception('Missing artifact: ${file.path}'); + } + + final data = file.readAsBytesSync(); + final create = CreateReleaseAsset( + name: PrecompileBinaries.fileName(target, name), + contentType: "application/octet-stream", + assetData: data, + ); + final signature = sign(privateKey, data); + final signatureCreate = CreateReleaseAsset( + name: signatureFileName(target, name), + contentType: "application/octet-stream", + assetData: signature, + ); + bool verified = verify(public(privateKey), data, signature); + if (!verified) { + throw Exception('Signature verification failed'); + } + assets.add(create); + assets.add(signatureCreate); + } + _log.info('Uploading assets: ${assets.map((e) => e.name)}'); + for (final asset in assets) { + // This seems to be failing on CI so do it one by one + int retryCount = 0; + while (true) { + try { + await repo.uploadReleaseAssets(release, [asset]); + break; + } on Exception catch (e) { + if (retryCount == 10) { + rethrow; + } + ++retryCount; + _log.shout( + 'Upload failed (attempt $retryCount, will retry): ${e.toString()}'); + await Future.delayed(Duration(seconds: 2)); + } + } + } + } + + _log.info('Cleaning up'); + tempDir.deleteSync(recursive: true); + } + + Future _getOrCreateRelease({ + required RepositoriesService repo, + required String tagName, + required String packageName, + required String hash, + }) async { + Release release; + try { + _log.info('Fetching release $tagName'); + release = await repo.getReleaseByTagName(repositorySlug, tagName); + } on ReleaseNotFound { + _log.info('Release not found - creating release $tagName'); + release = await repo.createRelease( + repositorySlug, + CreateRelease.from( + tagName: tagName, + name: 'Precompiled binaries ${hash.substring(0, 8)}', + targetCommitish: null, + isDraft: false, + isPrerelease: false, + body: 'Precompiled binaries for crate $packageName, ' + 'crate hash $hash.', + )); + } + return release; + } +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/rustup.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/rustup.dart new file mode 100644 index 0000000000..0ac8d08616 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/rustup.dart @@ -0,0 +1,136 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:io'; + +import 'package:collection/collection.dart'; +import 'package:path/path.dart' as path; + +import 'util.dart'; + +class _Toolchain { + _Toolchain( + this.name, + this.targets, + ); + + final String name; + final List targets; +} + +class Rustup { + List? installedTargets(String toolchain) { + final targets = _installedTargets(toolchain); + return targets != null ? List.unmodifiable(targets) : null; + } + + void installToolchain(String toolchain) { + log.info("Installing Rust toolchain: $toolchain"); + runCommand("rustup", ['toolchain', 'install', toolchain]); + _installedToolchains + .add(_Toolchain(toolchain, _getInstalledTargets(toolchain))); + } + + void installTarget( + String target, { + required String toolchain, + }) { + log.info("Installing Rust target: $target"); + runCommand("rustup", [ + 'target', + 'add', + '--toolchain', + toolchain, + target, + ]); + _installedTargets(toolchain)?.add(target); + } + + final List<_Toolchain> _installedToolchains; + + Rustup() : _installedToolchains = _getInstalledToolchains(); + + List? _installedTargets(String toolchain) => _installedToolchains + .firstWhereOrNull( + (e) => e.name == toolchain || e.name.startsWith('$toolchain-')) + ?.targets; + + static List<_Toolchain> _getInstalledToolchains() { + String extractToolchainName(String line) { + // ignore (default) after toolchain name + final parts = line.split(' '); + return parts[0]; + } + + final res = runCommand("rustup", ['toolchain', 'list']); + + // To list all non-custom toolchains, we need to filter out lines that + // don't start with "stable", "beta", or "nightly". + Pattern nonCustom = RegExp(r"^(stable|beta|nightly)"); + final lines = res.stdout + .toString() + .split('\n') + .where((e) => e.isNotEmpty && e.startsWith(nonCustom)) + .map(extractToolchainName) + .toList(growable: true); + + return lines + .map( + (name) => _Toolchain( + name, + _getInstalledTargets(name), + ), + ) + .toList(growable: true); + } + + static List _getInstalledTargets(String toolchain) { + final res = runCommand("rustup", [ + 'target', + 'list', + '--toolchain', + toolchain, + '--installed', + ]); + final lines = res.stdout + .toString() + .split('\n') + .where((e) => e.isNotEmpty) + .toList(growable: true); + return lines; + } + + bool _didInstallRustSrcForNightly = false; + + void installRustSrcForNightly() { + if (_didInstallRustSrcForNightly) { + return; + } + // Useful for -Z build-std + runCommand( + "rustup", + ['component', 'add', 'rust-src', '--toolchain', 'nightly'], + ); + _didInstallRustSrcForNightly = true; + } + + static String? executablePath() { + final envPath = Platform.environment['PATH']; + final envPathSeparator = Platform.isWindows ? ';' : ':'; + final home = Platform.isWindows + ? Platform.environment['USERPROFILE'] + : Platform.environment['HOME']; + final paths = [ + if (home != null) path.join(home, '.cargo', 'bin'), + if (envPath != null) ...envPath.split(envPathSeparator), + ]; + for (final p in paths) { + final rustup = Platform.isWindows ? 'rustup.exe' : 'rustup'; + final rustupPath = path.join(p, rustup); + if (File(rustupPath).existsSync()) { + return rustupPath; + } + } + return null; + } +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/target.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/target.dart new file mode 100644 index 0000000000..6fbc58b64f --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/target.dart @@ -0,0 +1,140 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:io'; + +import 'package:collection/collection.dart'; + +import 'util.dart'; + +class Target { + Target({ + required this.rust, + this.flutter, + this.android, + this.androidMinSdkVersion, + this.darwinPlatform, + this.darwinArch, + }); + + static final all = [ + Target( + rust: 'armv7-linux-androideabi', + flutter: 'android-arm', + android: 'armeabi-v7a', + androidMinSdkVersion: 16, + ), + Target( + rust: 'aarch64-linux-android', + flutter: 'android-arm64', + android: 'arm64-v8a', + androidMinSdkVersion: 21, + ), + Target( + rust: 'i686-linux-android', + flutter: 'android-x86', + android: 'x86', + androidMinSdkVersion: 16, + ), + Target( + rust: 'x86_64-linux-android', + flutter: 'android-x64', + android: 'x86_64', + androidMinSdkVersion: 21, + ), + Target( + rust: 'x86_64-pc-windows-msvc', + flutter: 'windows-x64', + ), + Target( + rust: 'x86_64-unknown-linux-gnu', + flutter: 'linux-x64', + ), + Target( + rust: 'aarch64-unknown-linux-gnu', + flutter: 'linux-arm64', + ), + Target( + rust: 'x86_64-apple-darwin', + darwinPlatform: 'macosx', + darwinArch: 'x86_64', + ), + Target( + rust: 'aarch64-apple-darwin', + darwinPlatform: 'macosx', + darwinArch: 'arm64', + ), + Target( + rust: 'aarch64-apple-ios', + darwinPlatform: 'iphoneos', + darwinArch: 'arm64', + ), + Target( + rust: 'aarch64-apple-ios-sim', + darwinPlatform: 'iphonesimulator', + darwinArch: 'arm64', + ), + Target( + rust: 'x86_64-apple-ios', + darwinPlatform: 'iphonesimulator', + darwinArch: 'x86_64', + ), + ]; + + static Target? forFlutterName(String flutterName) { + return all.firstWhereOrNull((element) => element.flutter == flutterName); + } + + static Target? forDarwin({ + required String platformName, + required String darwinAarch, + }) { + return all.firstWhereOrNull((element) => // + element.darwinPlatform == platformName && + element.darwinArch == darwinAarch); + } + + static Target? forRustTriple(String triple) { + return all.firstWhereOrNull((element) => element.rust == triple); + } + + static List androidTargets() { + return all + .where((element) => element.android != null) + .toList(growable: false); + } + + /// Returns buildable targets on current host platform ignoring Android targets. + static List buildableTargets() { + if (Platform.isLinux) { + // Right now we don't support cross-compiling on Linux. So we just return + // the host target. + final arch = runCommand('arch', []).stdout as String; + if (arch.trim() == 'aarch64') { + return [Target.forRustTriple('aarch64-unknown-linux-gnu')!]; + } else { + return [Target.forRustTriple('x86_64-unknown-linux-gnu')!]; + } + } + return all.where((target) { + if (Platform.isWindows) { + return target.rust.contains('-windows-'); + } else if (Platform.isMacOS) { + return target.darwinPlatform != null; + } + return false; + }).toList(growable: false); + } + + @override + String toString() { + return rust; + } + + final String? flutter; + final String rust; + final String? android; + final int? androidMinSdkVersion; + final String? darwinPlatform; + final String? darwinArch; +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/util.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/util.dart new file mode 100644 index 0000000000..8bb6a8724f --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/util.dart @@ -0,0 +1,172 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:convert'; +import 'dart:io'; + +import 'package:logging/logging.dart'; +import 'package:path/path.dart' as path; + +import 'logging.dart'; +import 'rustup.dart'; + +final log = Logger("process"); + +class CommandFailedException implements Exception { + final String executable; + final List arguments; + final ProcessResult result; + + CommandFailedException({ + required this.executable, + required this.arguments, + required this.result, + }); + + @override + String toString() { + final stdout = result.stdout.toString().trim(); + final stderr = result.stderr.toString().trim(); + return [ + "External Command: $executable ${arguments.map((e) => '"$e"').join(' ')}", + "Returned Exit Code: ${result.exitCode}", + kSeparator, + "STDOUT:", + if (stdout.isNotEmpty) stdout, + kSeparator, + "STDERR:", + if (stderr.isNotEmpty) stderr, + ].join('\n'); + } +} + +class TestRunCommandArgs { + final String executable; + final List arguments; + final String? workingDirectory; + final Map? environment; + final bool includeParentEnvironment; + final bool runInShell; + final Encoding? stdoutEncoding; + final Encoding? stderrEncoding; + + TestRunCommandArgs({ + required this.executable, + required this.arguments, + this.workingDirectory, + this.environment, + this.includeParentEnvironment = true, + this.runInShell = false, + this.stdoutEncoding, + this.stderrEncoding, + }); +} + +class TestRunCommandResult { + TestRunCommandResult({ + this.pid = 1, + this.exitCode = 0, + this.stdout = '', + this.stderr = '', + }); + + final int pid; + final int exitCode; + final String stdout; + final String stderr; +} + +TestRunCommandResult Function(TestRunCommandArgs args)? testRunCommandOverride; + +ProcessResult runCommand( + String executable, + List arguments, { + String? workingDirectory, + Map? environment, + bool includeParentEnvironment = true, + bool runInShell = false, + Encoding? stdoutEncoding = systemEncoding, + Encoding? stderrEncoding = systemEncoding, +}) { + if (testRunCommandOverride != null) { + final result = testRunCommandOverride!(TestRunCommandArgs( + executable: executable, + arguments: arguments, + workingDirectory: workingDirectory, + environment: environment, + includeParentEnvironment: includeParentEnvironment, + runInShell: runInShell, + stdoutEncoding: stdoutEncoding, + stderrEncoding: stderrEncoding, + )); + return ProcessResult( + result.pid, + result.exitCode, + result.stdout, + result.stderr, + ); + } + log.finer('Running command $executable ${arguments.join(' ')}'); + final res = Process.runSync( + _resolveExecutable(executable), + arguments, + workingDirectory: workingDirectory, + environment: environment, + includeParentEnvironment: includeParentEnvironment, + runInShell: runInShell, + stderrEncoding: stderrEncoding, + stdoutEncoding: stdoutEncoding, + ); + if (res.exitCode != 0) { + throw CommandFailedException( + executable: executable, + arguments: arguments, + result: res, + ); + } else { + return res; + } +} + +class RustupNotFoundException implements Exception { + @override + String toString() { + return [ + ' ', + 'rustup not found in PATH.', + ' ', + 'Maybe you need to install Rust? It only takes a minute:', + ' ', + if (Platform.isWindows) 'https://www.rust-lang.org/tools/install', + if (hasHomebrewRustInPath()) ...[ + '\$ brew unlink rust # Unlink homebrew Rust from PATH', + ], + if (!Platform.isWindows) + "\$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh", + ' ', + ].join('\n'); + } + + static bool hasHomebrewRustInPath() { + if (!Platform.isMacOS) { + return false; + } + final envPath = Platform.environment['PATH'] ?? ''; + final paths = envPath.split(':'); + return paths.any((p) { + return p.contains('homebrew') && File(path.join(p, 'rustc')).existsSync(); + }); + } +} + +String _resolveExecutable(String executable) { + if (executable == 'rustup') { + final resolved = Rustup.executablePath(); + if (resolved != null) { + return resolved; + } + throw RustupNotFoundException(); + } else { + return executable; + } +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/verify_binaries.dart b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/verify_binaries.dart new file mode 100644 index 0000000000..2366b57bfd --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/lib/src/verify_binaries.dart @@ -0,0 +1,84 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import 'dart:io'; + +import 'package:ed25519_edwards/ed25519_edwards.dart'; +import 'package:http/http.dart'; + +import 'artifacts_provider.dart'; +import 'cargo.dart'; +import 'crate_hash.dart'; +import 'options.dart'; +import 'precompile_binaries.dart'; +import 'target.dart'; + +class VerifyBinaries { + VerifyBinaries({ + required this.manifestDir, + }); + + final String manifestDir; + + Future run() async { + final crateInfo = CrateInfo.load(manifestDir); + + final config = CargokitCrateOptions.load(manifestDir: manifestDir); + final precompiledBinaries = config.precompiledBinaries; + if (precompiledBinaries == null) { + stdout.writeln('Crate does not support precompiled binaries.'); + } else { + final crateHash = CrateHash.compute(manifestDir); + stdout.writeln('Crate hash: $crateHash'); + + for (final target in Target.all) { + final message = 'Checking ${target.rust}...'; + stdout.write(message.padRight(40)); + stdout.flush(); + + final artifacts = getArtifactNames( + target: target, + libraryName: crateInfo.packageName, + remote: true, + ); + + final prefix = precompiledBinaries.uriPrefix; + + bool ok = true; + + for (final artifact in artifacts) { + final fileName = PrecompileBinaries.fileName(target, artifact); + final signatureFileName = + PrecompileBinaries.signatureFileName(target, artifact); + + final url = Uri.parse('$prefix$crateHash/$fileName'); + final signatureUrl = + Uri.parse('$prefix$crateHash/$signatureFileName'); + + final signature = await get(signatureUrl); + if (signature.statusCode != 200) { + stdout.writeln('MISSING'); + ok = false; + break; + } + final asset = await get(url); + if (asset.statusCode != 200) { + stdout.writeln('MISSING'); + ok = false; + break; + } + + if (!verify(precompiledBinaries.publicKey, asset.bodyBytes, + signature.bodyBytes)) { + stdout.writeln('INVALID SIGNATURE'); + ok = false; + } + } + + if (ok) { + stdout.writeln('OK'); + } + } + } + } +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/pubspec.lock b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/pubspec.lock new file mode 100644 index 0000000000..343bdd3694 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/pubspec.lock @@ -0,0 +1,453 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: eb376e9acf6938204f90eb3b1f00b578640d3188b4c8a8ec054f9f479af8d051 + url: "https://pub.dev" + source: hosted + version: "64.0.0" + adaptive_number: + dependency: transitive + description: + name: adaptive_number + sha256: "3a567544e9b5c9c803006f51140ad544aedc79604fd4f3f2c1380003f97c1d77" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "69f54f967773f6c26c7dcb13e93d7ccee8b17a641689da39e878d5cf13b06893" + url: "https://pub.dev" + source: hosted + version: "6.2.0" + args: + dependency: "direct main" + description: + name: args + sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 + url: "https://pub.dev" + source: hosted + version: "2.4.2" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + collection: + dependency: "direct main" + description: + name: collection + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" + source: hosted + version: "1.18.0" + convert: + dependency: "direct main" + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + coverage: + dependency: transitive + description: + name: coverage + sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097" + url: "https://pub.dev" + source: hosted + version: "1.6.3" + crypto: + dependency: "direct main" + description: + name: crypto + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + url: "https://pub.dev" + source: hosted + version: "3.0.3" + ed25519_edwards: + dependency: "direct main" + description: + name: ed25519_edwards + sha256: "6ce0112d131327ec6d42beede1e5dfd526069b18ad45dcf654f15074ad9276cd" + url: "https://pub.dev" + source: hosted + version: "0.3.1" + file: + dependency: transitive + description: + name: file + sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + url: "https://pub.dev" + source: hosted + version: "6.1.4" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" + url: "https://pub.dev" + source: hosted + version: "3.2.0" + github: + dependency: "direct main" + description: + name: github + sha256: "9966bc13bf612342e916b0a343e95e5f046c88f602a14476440e9b75d2295411" + url: "https://pub.dev" + source: hosted + version: "9.17.0" + glob: + dependency: transitive + description: + name: glob + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + hex: + dependency: "direct main" + description: + name: hex + sha256: "4e7cd54e4b59ba026432a6be2dd9d96e4c5205725194997193bf871703b82c4a" + url: "https://pub.dev" + source: hosted + version: "0.2.0" + http: + dependency: "direct main" + description: + name: http + sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + io: + dependency: transitive + description: + name: io + sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467 + url: "https://pub.dev" + source: hosted + version: "4.8.1" + lints: + dependency: "direct dev" + description: + name: lints + sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + logging: + dependency: "direct main" + description: + name: logging + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + url: "https://pub.dev" + source: hosted + version: "0.12.16" + meta: + dependency: transitive + description: + name: meta + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + mime: + dependency: transitive + description: + name: mime + sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + url: "https://pub.dev" + source: hosted + version: "1.0.4" + node_preamble: + dependency: transitive + description: + name: node_preamble + sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + path: + dependency: "direct main" + description: + name: path + sha256: "2ad4cddff7f5cc0e2d13069f2a3f7a73ca18f66abd6f5ecf215219cdb3638edb" + url: "https://pub.dev" + source: hosted + version: "1.8.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 + url: "https://pub.dev" + source: hosted + version: "5.4.0" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + shelf: + dependency: transitive + description: + name: shelf + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + url: "https://pub.dev" + source: hosted + version: "1.4.1" + shelf_packages_handler: + dependency: transitive + description: + name: shelf_packages_handler + sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + shelf_static: + dependency: transitive + description: + name: shelf_static + sha256: a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e + url: "https://pub.dev" + source: hosted + version: "1.1.2" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + source_map_stack_trace: + dependency: transitive + description: + name: source_map_stack_trace + sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + source_maps: + dependency: transitive + description: + name: source_maps + sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" + url: "https://pub.dev" + source: hosted + version: "0.10.12" + source_span: + dependency: "direct main" + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" + source: hosted + version: "1.11.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" + source: hosted + version: "2.1.2" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test: + dependency: "direct dev" + description: + name: test + sha256: "9b0dd8e36af4a5b1569029949d50a52cb2a2a2fdaa20cebb96e6603b9ae241f9" + url: "https://pub.dev" + source: hosted + version: "1.24.6" + test_api: + dependency: transitive + description: + name: test_api + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + url: "https://pub.dev" + source: hosted + version: "0.6.1" + test_core: + dependency: transitive + description: + name: test_core + sha256: "4bef837e56375537055fdbbbf6dd458b1859881f4c7e6da936158f77d61ab265" + url: "https://pub.dev" + source: hosted + version: "0.5.6" + toml: + dependency: "direct main" + description: + name: toml + sha256: "157c5dca5160fced243f3ce984117f729c788bb5e475504f3dbcda881accee44" + url: "https://pub.dev" + source: hosted + version: "0.14.0" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + url: "https://pub.dev" + source: hosted + version: "1.3.2" + version: + dependency: "direct main" + description: + name: version + sha256: "2307e23a45b43f96469eeab946208ed63293e8afca9c28cd8b5241ff31c55f55" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "0fae432c85c4ea880b33b497d32824b97795b04cdaa74d270219572a1f50268d" + url: "https://pub.dev" + source: hosted + version: "11.9.0" + watcher: + dependency: transitive + description: + name: watcher + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b + url: "https://pub.dev" + source: hosted + version: "2.4.0" + webkit_inspection_protocol: + dependency: transitive + description: + name: webkit_inspection_protocol + sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + yaml: + dependency: "direct main" + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.dev" + source: hosted + version: "3.1.2" +sdks: + dart: ">=3.0.0 <4.0.0" diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/pubspec.yaml b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/pubspec.yaml new file mode 100644 index 0000000000..18c61e3386 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/build_tool/pubspec.yaml @@ -0,0 +1,33 @@ +# This is copied from Cargokit (which is the official way to use it currently) +# Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +name: build_tool +description: Cargokit build_tool. Facilitates the build of Rust crate during Flutter application build. +publish_to: none +version: 1.0.0 + +environment: + sdk: ">=3.0.0 <4.0.0" + +# Add regular dependencies here. +dependencies: + # these are pinned on purpose because the bundle_tool_runner doesn't have + # pubspec.lock. See run_build_tool.sh + logging: 1.2.0 + path: 1.8.0 + version: 3.0.0 + collection: 1.18.0 + ed25519_edwards: 0.3.1 + hex: 0.2.0 + yaml: 3.1.2 + source_span: 1.10.0 + github: 9.17.0 + args: 2.4.2 + crypto: 3.0.3 + convert: 3.1.1 + http: 1.1.0 + toml: 0.14.0 + +dev_dependencies: + lints: ^2.1.0 + test: ^1.24.0 diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/cmake/cargokit.cmake b/frb_example/integrate_third_party/rust_builder/cargokit/cmake/cargokit.cmake new file mode 100644 index 0000000000..ddd05df9b4 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/cmake/cargokit.cmake @@ -0,0 +1,99 @@ +SET(cargokit_cmake_root "${CMAKE_CURRENT_LIST_DIR}/..") + +# Workaround for https://github.com/dart-lang/pub/issues/4010 +get_filename_component(cargokit_cmake_root "${cargokit_cmake_root}" REALPATH) + +if(WIN32) + # REALPATH does not properly resolve symlinks on windows :-/ + execute_process(COMMAND powershell -ExecutionPolicy Bypass -File "${CMAKE_CURRENT_LIST_DIR}/resolve_symlinks.ps1" "${cargokit_cmake_root}" OUTPUT_VARIABLE cargokit_cmake_root OUTPUT_STRIP_TRAILING_WHITESPACE) +endif() + +# Arguments +# - target: CMAKE target to which rust library is linked +# - manifest_dir: relative path from current folder to directory containing cargo manifest +# - lib_name: cargo package name +# - any_symbol_name: name of any exported symbol from the library. +# used on windows to force linking with library. +function(apply_cargokit target manifest_dir lib_name any_symbol_name) + + set(CARGOKIT_LIB_NAME "${lib_name}") + set(CARGOKIT_LIB_FULL_NAME "${CMAKE_SHARED_MODULE_PREFIX}${CARGOKIT_LIB_NAME}${CMAKE_SHARED_MODULE_SUFFIX}") + if (CMAKE_CONFIGURATION_TYPES) + set(CARGOKIT_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/$") + set(OUTPUT_LIB "${CMAKE_CURRENT_BINARY_DIR}/$/${CARGOKIT_LIB_FULL_NAME}") + else() + set(CARGOKIT_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}") + set(OUTPUT_LIB "${CMAKE_CURRENT_BINARY_DIR}/${CARGOKIT_LIB_FULL_NAME}") + endif() + set(CARGOKIT_TEMP_DIR "${CMAKE_CURRENT_BINARY_DIR}/cargokit_build") + + if (FLUTTER_TARGET_PLATFORM) + set(CARGOKIT_TARGET_PLATFORM "${FLUTTER_TARGET_PLATFORM}") + else() + set(CARGOKIT_TARGET_PLATFORM "windows-x64") + endif() + + set(CARGOKIT_ENV + "CARGOKIT_CMAKE=${CMAKE_COMMAND}" + "CARGOKIT_CONFIGURATION=$" + "CARGOKIT_MANIFEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}/${manifest_dir}" + "CARGOKIT_TARGET_TEMP_DIR=${CARGOKIT_TEMP_DIR}" + "CARGOKIT_OUTPUT_DIR=${CARGOKIT_OUTPUT_DIR}" + "CARGOKIT_TARGET_PLATFORM=${CARGOKIT_TARGET_PLATFORM}" + "CARGOKIT_TOOL_TEMP_DIR=${CARGOKIT_TEMP_DIR}/tool" + "CARGOKIT_ROOT_PROJECT_DIR=${CMAKE_SOURCE_DIR}" + ) + + if (WIN32) + set(SCRIPT_EXTENSION ".cmd") + set(IMPORT_LIB_EXTENSION ".lib") + else() + set(SCRIPT_EXTENSION ".sh") + set(IMPORT_LIB_EXTENSION "") + execute_process(COMMAND chmod +x "${cargokit_cmake_root}/run_build_tool${SCRIPT_EXTENSION}") + endif() + + # Using generators in custom command is only supported in CMake 3.20+ + if (CMAKE_CONFIGURATION_TYPES AND ${CMAKE_VERSION} VERSION_LESS "3.20.0") + foreach(CONFIG IN LISTS CMAKE_CONFIGURATION_TYPES) + add_custom_command( + OUTPUT + "${CMAKE_CURRENT_BINARY_DIR}/${CONFIG}/${CARGOKIT_LIB_FULL_NAME}" + "${CMAKE_CURRENT_BINARY_DIR}/_phony_" + COMMAND ${CMAKE_COMMAND} -E env ${CARGOKIT_ENV} + "${cargokit_cmake_root}/run_build_tool${SCRIPT_EXTENSION}" build-cmake + VERBATIM + ) + endforeach() + else() + add_custom_command( + OUTPUT + ${OUTPUT_LIB} + "${CMAKE_CURRENT_BINARY_DIR}/_phony_" + COMMAND ${CMAKE_COMMAND} -E env ${CARGOKIT_ENV} + "${cargokit_cmake_root}/run_build_tool${SCRIPT_EXTENSION}" build-cmake + VERBATIM + ) + endif() + + + set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/_phony_" PROPERTIES SYMBOLIC TRUE) + + if (TARGET ${target}) + # If we have actual cmake target provided create target and make existing + # target depend on it + add_custom_target("${target}_cargokit" DEPENDS ${OUTPUT_LIB}) + add_dependencies("${target}" "${target}_cargokit") + target_link_libraries("${target}" PRIVATE "${OUTPUT_LIB}${IMPORT_LIB_EXTENSION}") + if(WIN32) + target_link_options(${target} PRIVATE "/INCLUDE:${any_symbol_name}") + endif() + else() + # Otherwise (FFI) just use ALL to force building always + add_custom_target("${target}_cargokit" ALL DEPENDS ${OUTPUT_LIB}) + endif() + + # Allow adding the output library to plugin bundled libraries + set("${target}_cargokit_lib" ${OUTPUT_LIB} PARENT_SCOPE) + +endfunction() diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/cmake/resolve_symlinks.ps1 b/frb_example/integrate_third_party/rust_builder/cargokit/cmake/resolve_symlinks.ps1 new file mode 100644 index 0000000000..3d10d283c2 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/cmake/resolve_symlinks.ps1 @@ -0,0 +1,27 @@ +function Resolve-Symlinks { + [CmdletBinding()] + [OutputType([string])] + param( + [Parameter(Position = 0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [string] $Path + ) + + [string] $separator = '/' + [string[]] $parts = $Path.Split($separator) + + [string] $realPath = '' + foreach ($part in $parts) { + if ($realPath -and !$realPath.EndsWith($separator)) { + $realPath += $separator + } + $realPath += $part + $item = Get-Item $realPath + if ($item.Target) { + $realPath = $item.Target.Replace('\', '/') + } + } + $realPath +} + +$path=Resolve-Symlinks -Path $args[0] +Write-Host $path diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/gradle/plugin.gradle b/frb_example/integrate_third_party/rust_builder/cargokit/gradle/plugin.gradle new file mode 100644 index 0000000000..2fc1d705c4 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/gradle/plugin.gradle @@ -0,0 +1,175 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + +import java.nio.file.Paths +import org.apache.tools.ant.taskdefs.condition.Os + +CargoKitPlugin.file = buildscript.sourceFile + +apply plugin: CargoKitPlugin + +class CargoKitExtension { + String manifestDir; // Relative path to folder containing Cargo.toml + String libname; // Library name within Cargo.toml. Must be a cdylib +} + +abstract class CargoKitBuildTask extends DefaultTask { + + @Input + String buildMode + + @Input + String buildDir + + @Input + String outputDir + + @Input + String ndkVersion + + @Input + String sdkDirectory + + @Input + int compileSdkVersion; + + @Input + int minSdkVersion; + + @Input + String pluginFile + + @Input + List targetPlatforms + + @TaskAction + def build() { + if (project.cargokit.manifestDir == null) { + throw new GradleException("Property 'manifestDir' must be set on cargokit extension"); + } + + if (project.cargokit.libname == null) { + throw new GradleException("Property 'libname' must be set on cargokit extension"); + } + + def executableName = Os.isFamily(Os.FAMILY_WINDOWS) ? "run_build_tool.cmd" : "run_build_tool.sh" + def path = Paths.get(new File(pluginFile).parent, "..", executableName); + + def manifestDir = Paths.get(project.buildscript.sourceFile.parent, project.cargokit.manifestDir) + + def rootProjectDir = project.rootProject.projectDir + + if (!Os.isFamily(Os.FAMILY_WINDOWS)) { + project.exec { + commandLine 'chmod', '+x', path + } + } + + project.exec { + executable path + args "build-gradle" + environment "CARGOKIT_ROOT_PROJECT_DIR", rootProjectDir + environment "CARGOKIT_TOOL_TEMP_DIR", "${buildDir}/build_tool" + environment "CARGOKIT_MANIFEST_DIR", manifestDir + environment "CARGOKIT_CONFIGURATION", buildMode + environment "CARGOKIT_TARGET_TEMP_DIR", buildDir + environment "CARGOKIT_OUTPUT_DIR", outputDir + environment "CARGOKIT_NDK_VERSION", ndkVersion + environment "CARGOKIT_SDK_DIR", sdkDirectory + environment "CARGOKIT_COMPILE_SDK_VERSION", compileSdkVersion + environment "CARGOKIT_MIN_SDK_VERSION", minSdkVersion + environment "CARGOKIT_TARGET_PLATFORMS", targetPlatforms.join(",") + environment "CARGOKIT_JAVA_HOME", System.properties['java.home'] + } + } +} + +class CargoKitPlugin implements Plugin { + + static String file; + + private Plugin findFlutterPlugin(Project rootProject) { + _findFlutterPlugin(rootProject.childProjects) + } + + private Plugin _findFlutterPlugin(Map projects) { + for (project in projects) { + for (plugin in project.value.getPlugins()) { + if (plugin.class.name == "FlutterPlugin") { + return plugin; + } + } + def plugin = _findFlutterPlugin(project.value.childProjects); + if (plugin != null) { + return plugin; + } + } + return null; + } + + @Override + void apply(Project project) { + def plugin = findFlutterPlugin(project.rootProject); + + project.extensions.create("cargokit", CargoKitExtension) + + if (plugin == null) { + print("Flutter plugin not found, CargoKit plugin will not be applied.") + return; + } + + def cargoBuildDir = "${project.buildDir}/build" + + plugin.project.android.applicationVariants.all { variant -> + + final buildType = variant.buildType.name + + def cargoOutputDir = "${project.buildDir}/jniLibs/${buildType}"; + def jniLibs = project.android.sourceSets.maybeCreate(buildType).jniLibs; + jniLibs.srcDir(new File(cargoOutputDir)) + + def platforms = plugin.getTargetPlatforms().collect() + + // Same thing addFlutterDependencies does in flutter.gradle + if (buildType == "debug") { + platforms.add("android-x86") + platforms.add("android-x64") + } + + // The task name depends on plugin properties, which are not available + // at this point + project.getGradle().afterProject { + def taskName = "cargokitCargoBuild${project.cargokit.libname.capitalize()}${buildType.capitalize()}"; + + if (project.tasks.findByName(taskName)) { + return + } + + if (plugin.project.android.ndkVersion == null) { + throw new GradleException("Please set 'android.ndkVersion' in 'app/build.gradle'.") + } + + def task = project.tasks.create(taskName, CargoKitBuildTask.class) { + buildMode = variant.buildType.name + buildDir = cargoBuildDir + outputDir = cargoOutputDir + ndkVersion = plugin.project.android.ndkVersion + sdkDirectory = plugin.project.android.sdkDirectory + minSdkVersion = plugin.project.android.defaultConfig.minSdkVersion.apiLevel as int + compileSdkVersion = plugin.project.android.compileSdkVersion.substring(8) as int + targetPlatforms = platforms + pluginFile = CargoKitPlugin.file + } + def onTask = { newTask -> + if (newTask.name == "merge${buildType.capitalize()}NativeLibs") { + newTask.dependsOn task + // Fix gradle 7.4.2 not picking up JNI library changes + newTask.outputs.upToDateWhen { false } + } + } + project.tasks.each onTask + project.tasks.whenTaskAdded onTask + } + } + } +} diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/run_build_tool.cmd b/frb_example/integrate_third_party/rust_builder/cargokit/run_build_tool.cmd new file mode 100755 index 0000000000..c45d0aa8b5 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/run_build_tool.cmd @@ -0,0 +1,91 @@ +@echo off +setlocal + +setlocal ENABLEDELAYEDEXPANSION + +SET BASEDIR=%~dp0 + +if not exist "%CARGOKIT_TOOL_TEMP_DIR%" ( + mkdir "%CARGOKIT_TOOL_TEMP_DIR%" +) +cd /D "%CARGOKIT_TOOL_TEMP_DIR%" + +SET BUILD_TOOL_PKG_DIR=%BASEDIR%build_tool +SET DART=%FLUTTER_ROOT%\bin\cache\dart-sdk\bin\dart + +set BUILD_TOOL_PKG_DIR_POSIX=%BUILD_TOOL_PKG_DIR:\=/% + +( + echo name: build_tool_runner + echo version: 1.0.0 + echo publish_to: none + echo. + echo environment: + echo sdk: '^>=3.0.0 ^<4.0.0' + echo. + echo dependencies: + echo build_tool: + echo path: %BUILD_TOOL_PKG_DIR_POSIX% +) >pubspec.yaml + +if not exist bin ( + mkdir bin +) + +( + echo import 'package:build_tool/build_tool.dart' as build_tool; + echo void main^(List^ args^) ^{ + echo build_tool.runMain^(args^); + echo ^} +) >bin\build_tool_runner.dart + +SET PRECOMPILED=bin\build_tool_runner.dill + +REM To detect changes in package we compare output of DIR /s (recursive) +set PREV_PACKAGE_INFO=.dart_tool\package_info.prev +set CUR_PACKAGE_INFO=.dart_tool\package_info.cur + +DIR "%BUILD_TOOL_PKG_DIR%" /s > "%CUR_PACKAGE_INFO%_orig" + +REM Last line in dir output is free space on harddrive. That is bound to +REM change between invocation so we need to remove it +( + Set "Line=" + For /F "UseBackQ Delims=" %%A In ("%CUR_PACKAGE_INFO%_orig") Do ( + SetLocal EnableDelayedExpansion + If Defined Line Echo !Line! + EndLocal + Set "Line=%%A") +) >"%CUR_PACKAGE_INFO%" +DEL "%CUR_PACKAGE_INFO%_orig" + +REM Compare current directory listing with previous +FC /B "%CUR_PACKAGE_INFO%" "%PREV_PACKAGE_INFO%" > nul 2>&1 + +If %ERRORLEVEL% neq 0 ( + REM Changed - copy current to previous and remove precompiled kernel + if exist "%PREV_PACKAGE_INFO%" ( + DEL "%PREV_PACKAGE_INFO%" + ) + MOVE /Y "%CUR_PACKAGE_INFO%" "%PREV_PACKAGE_INFO%" + if exist "%PRECOMPILED%" ( + DEL "%PRECOMPILED%" + ) +) + +REM There is no CUR_PACKAGE_INFO it was renamed in previous step to %PREV_PACKAGE_INFO% +REM which means we need to do pub get and precompile +if not exist "%PRECOMPILED%" ( + echo Running pub get in "%cd%" + "%DART%" pub get --no-precompile + "%DART%" compile kernel bin/build_tool_runner.dart +) + +"%DART%" "%PRECOMPILED%" %* + +REM 253 means invalid snapshot version. +If %ERRORLEVEL% equ 253 ( + "%DART%" pub get --no-precompile + "%DART%" compile kernel bin/build_tool_runner.dart + "%DART%" "%PRECOMPILED%" %* +) diff --git a/frb_example/integrate_third_party/rust_builder/cargokit/run_build_tool.sh b/frb_example/integrate_third_party/rust_builder/cargokit/run_build_tool.sh new file mode 100755 index 0000000000..6e594a23d4 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/cargokit/run_build_tool.sh @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +set -e + +BASEDIR=$(dirname "$0") + +mkdir -p "$CARGOKIT_TOOL_TEMP_DIR" + +cd "$CARGOKIT_TOOL_TEMP_DIR" + +# Write a very simple bin package in temp folder that depends on build_tool package +# from Cargokit. This is done to ensure that we don't pollute Cargokit folder +# with .dart_tool contents. + +BUILD_TOOL_PKG_DIR="$BASEDIR/build_tool" + +if [[ -z $FLUTTER_ROOT ]]; then # not defined + DART=dart +else + DART="$FLUTTER_ROOT/bin/cache/dart-sdk/bin/dart" +fi + +cat << EOF > "pubspec.yaml" +name: build_tool_runner +version: 1.0.0 +publish_to: none + +environment: + sdk: '>=3.0.0 <4.0.0' + +dependencies: + build_tool: + path: "$BUILD_TOOL_PKG_DIR" +EOF + +mkdir -p "bin" + +cat << EOF > "bin/build_tool_runner.dart" +import 'package:build_tool/build_tool.dart' as build_tool; +void main(List args) { + build_tool.runMain(args); +} +EOF + +# Create alias for `shasum` if it does not exist and `sha1sum` exists +if ! [ -x "$(command -v shasum)" ] && [ -x "$(command -v sha1sum)" ]; then + shopt -s expand_aliases + alias shasum="sha1sum" +fi + +# Dart run will not cache any package that has a path dependency, which +# is the case for our build_tool_runner. So instead we precompile the package +# ourselves. +# To invalidate the cached kernel we use the hash of ls -LR of the build_tool +# package directory. This should be good enough, as the build_tool package +# itself is not meant to have any path dependencies. + +if [[ "$OSTYPE" == "darwin"* ]]; then + PACKAGE_HASH=$(ls -lTR "$BUILD_TOOL_PKG_DIR" | shasum) +else + PACKAGE_HASH=$(ls -lR --full-time "$BUILD_TOOL_PKG_DIR" | shasum) +fi + +PACKAGE_HASH_FILE=".package_hash" + +if [ -f "$PACKAGE_HASH_FILE" ]; then + EXISTING_HASH=$(cat "$PACKAGE_HASH_FILE") + if [ "$PACKAGE_HASH" != "$EXISTING_HASH" ]; then + rm "$PACKAGE_HASH_FILE" + fi +fi + +# Run pub get if needed. +if [ ! -f "$PACKAGE_HASH_FILE" ]; then + "$DART" pub get --no-precompile + "$DART" compile kernel bin/build_tool_runner.dart + echo "$PACKAGE_HASH" > "$PACKAGE_HASH_FILE" +fi + +set +e + +"$DART" bin/build_tool_runner.dill "$@" + +exit_code=$? + +# 253 means invalid snapshot version. +if [ $exit_code == 253 ]; then + "$DART" pub get --no-precompile + "$DART" compile kernel bin/build_tool_runner.dart + "$DART" bin/build_tool_runner.dill "$@" + exit_code=$? +fi + +exit $exit_code diff --git a/frb_example/integrate_third_party/rust_builder/ios/Classes/dummy_file.c b/frb_example/integrate_third_party/rust_builder/ios/Classes/dummy_file.c new file mode 100644 index 0000000000..e06dab9968 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/ios/Classes/dummy_file.c @@ -0,0 +1 @@ +// This is an empty file to force CocoaPods to create a framework. diff --git a/frb_example/integrate_third_party/rust_builder/ios/rust_lib_frb_example_integrate_third_party.podspec b/frb_example/integrate_third_party/rust_builder/ios/rust_lib_frb_example_integrate_third_party.podspec new file mode 100644 index 0000000000..af603494e6 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/ios/rust_lib_frb_example_integrate_third_party.podspec @@ -0,0 +1,45 @@ +# +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. +# Run `pod lib lint rust_lib_frb_example_integrate_third_party.podspec` to validate before publishing. +# +Pod::Spec.new do |s| + s.name = 'rust_lib_frb_example_integrate_third_party' + s.version = '0.0.1' + s.summary = 'A new Flutter FFI plugin project.' + s.description = <<-DESC +A new Flutter FFI plugin project. + DESC + s.homepage = 'http://example.com' + s.license = { :file => '../LICENSE' } + s.author = { 'Your Company' => 'email@example.com' } + + # This will ensure the source files in Classes/ are included in the native + # builds of apps using this FFI plugin. Podspec does not support relative + # paths, so Classes contains a forwarder C file that relatively imports + # `../src/*` so that the C sources can be shared among all target platforms. + s.source = { :path => '.' } + s.source_files = 'Classes/**/*' + s.dependency 'Flutter' + s.platform = :ios, '11.0' + + # Flutter.framework does not contain a i386 slice. + s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } + 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_frb_example_integrate_third_party', + :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_frb_example_integrate_third_party.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_frb_example_integrate_third_party.a', + } +end \ No newline at end of file diff --git a/frb_example/integrate_third_party/rust_builder/linux/CMakeLists.txt b/frb_example/integrate_third_party/rust_builder/linux/CMakeLists.txt new file mode 100644 index 0000000000..20cde25a4e --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/linux/CMakeLists.txt @@ -0,0 +1,19 @@ +# The Flutter tooling requires that developers have CMake 3.10 or later +# installed. You should not increase this version, as doing so will cause +# the plugin to fail to compile for some customers of the plugin. +cmake_minimum_required(VERSION 3.10) + +# Project-level configuration. +set(PROJECT_NAME "rust_lib_frb_example_integrate_third_party") +project(${PROJECT_NAME} LANGUAGES CXX) + +include("../cargokit/cmake/cargokit.cmake") +apply_cargokit(${PROJECT_NAME} ../../rust rust_lib_frb_example_integrate_third_party "") + +# 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_frb_example_integrate_third_party_bundled_libraries + "${${PROJECT_NAME}_cargokit_lib}" + PARENT_SCOPE +) diff --git a/frb_example/integrate_third_party/rust_builder/macos/Classes/dummy_file.c b/frb_example/integrate_third_party/rust_builder/macos/Classes/dummy_file.c new file mode 100644 index 0000000000..e06dab9968 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/macos/Classes/dummy_file.c @@ -0,0 +1 @@ +// This is an empty file to force CocoaPods to create a framework. diff --git a/frb_example/integrate_third_party/rust_builder/macos/rust_lib_frb_example_integrate_third_party.podspec b/frb_example/integrate_third_party/rust_builder/macos/rust_lib_frb_example_integrate_third_party.podspec new file mode 100644 index 0000000000..93007d03b6 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/macos/rust_lib_frb_example_integrate_third_party.podspec @@ -0,0 +1,44 @@ +# +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. +# Run `pod lib lint rust_lib_frb_example_integrate_third_party.podspec` to validate before publishing. +# +Pod::Spec.new do |s| + s.name = 'rust_lib_frb_example_integrate_third_party' + s.version = '0.0.1' + s.summary = 'A new Flutter FFI plugin project.' + s.description = <<-DESC +A new Flutter FFI plugin project. + DESC + s.homepage = 'http://example.com' + s.license = { :file => '../LICENSE' } + s.author = { 'Your Company' => 'email@example.com' } + + # This will ensure the source files in Classes/ are included in the native + # builds of apps using this FFI plugin. Podspec does not support relative + # paths, so Classes contains a forwarder C file that relatively imports + # `../src/*` so that the C sources can be shared among all target platforms. + s.source = { :path => '.' } + s.source_files = 'Classes/**/*' + s.dependency 'FlutterMacOS' + + s.platform = :osx, '10.11' + 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_frb_example_integrate_third_party', + :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_frb_example_integrate_third_party.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_frb_example_integrate_third_party.a', + } +end \ No newline at end of file diff --git a/frb_example/integrate_third_party/rust_builder/pubspec.yaml b/frb_example/integrate_third_party/rust_builder/pubspec.yaml new file mode 100644 index 0000000000..c4494b0cdf --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/pubspec.yaml @@ -0,0 +1,34 @@ +name: rust_lib_frb_example_integrate_third_party +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/frb_example/integrate_third_party/rust_builder/windows/.gitignore b/frb_example/integrate_third_party/rust_builder/windows/.gitignore new file mode 100644 index 0000000000..b3eb2be169 --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/frb_example/integrate_third_party/rust_builder/windows/CMakeLists.txt b/frb_example/integrate_third_party/rust_builder/windows/CMakeLists.txt new file mode 100644 index 0000000000..60cc18697a --- /dev/null +++ b/frb_example/integrate_third_party/rust_builder/windows/CMakeLists.txt @@ -0,0 +1,20 @@ +# The Flutter tooling requires that developers have a version of Visual Studio +# installed that includes CMake 3.14 or later. You should not increase this +# version, as doing so will cause the plugin to fail to compile for some +# customers of the plugin. +cmake_minimum_required(VERSION 3.14) + +# Project-level configuration. +set(PROJECT_NAME "rust_lib_frb_example_integrate_third_party") +project(${PROJECT_NAME} LANGUAGES CXX) + +include("../cargokit/cmake/cargokit.cmake") +apply_cargokit(${PROJECT_NAME} ../../../../../../rust rust_lib_frb_example_integrate_third_party "") + +# 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_frb_example_integrate_third_party_bundled_libraries + "${${PROJECT_NAME}_cargokit_lib}" + PARENT_SCOPE +) diff --git a/frb_example/integrate_third_party/test_driver/integration_test.dart b/frb_example/integrate_third_party/test_driver/integration_test.dart new file mode 100644 index 0000000000..b38629cca9 --- /dev/null +++ b/frb_example/integrate_third_party/test_driver/integration_test.dart @@ -0,0 +1,3 @@ +import 'package:integration_test/integration_test_driver.dart'; + +Future main() => integrationDriver(); diff --git a/frb_example/integrate_third_party/web/favicon.png b/frb_example/integrate_third_party/web/favicon.png new file mode 100644 index 0000000000..8aaa46ac1a Binary files /dev/null and b/frb_example/integrate_third_party/web/favicon.png differ diff --git a/frb_example/integrate_third_party/web/icons/Icon-192.png b/frb_example/integrate_third_party/web/icons/Icon-192.png new file mode 100644 index 0000000000..b749bfef07 Binary files /dev/null and b/frb_example/integrate_third_party/web/icons/Icon-192.png differ diff --git a/frb_example/integrate_third_party/web/icons/Icon-512.png b/frb_example/integrate_third_party/web/icons/Icon-512.png new file mode 100644 index 0000000000..88cfd48dff Binary files /dev/null and b/frb_example/integrate_third_party/web/icons/Icon-512.png differ diff --git a/frb_example/integrate_third_party/web/icons/Icon-maskable-192.png b/frb_example/integrate_third_party/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000..eb9b4d76e5 Binary files /dev/null and b/frb_example/integrate_third_party/web/icons/Icon-maskable-192.png differ diff --git a/frb_example/integrate_third_party/web/icons/Icon-maskable-512.png b/frb_example/integrate_third_party/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000..d69c56691f Binary files /dev/null and b/frb_example/integrate_third_party/web/icons/Icon-maskable-512.png differ diff --git a/frb_example/integrate_third_party/web/index.html b/frb_example/integrate_third_party/web/index.html new file mode 100644 index 0000000000..845f0d1bc1 --- /dev/null +++ b/frb_example/integrate_third_party/web/index.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + frb_example_integrate_third_party + + + + + + diff --git a/frb_example/integrate_third_party/web/manifest.json b/frb_example/integrate_third_party/web/manifest.json new file mode 100644 index 0000000000..7b35e15c9c --- /dev/null +++ b/frb_example/integrate_third_party/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "frb_example_integrate_third_party", + "short_name": "frb_example_integrate_third_party", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/frb_example/integrate_third_party/windows/.gitignore b/frb_example/integrate_third_party/windows/.gitignore new file mode 100644 index 0000000000..d492d0d98c --- /dev/null +++ b/frb_example/integrate_third_party/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/frb_example/integrate_third_party/windows/CMakeLists.txt b/frb_example/integrate_third_party/windows/CMakeLists.txt new file mode 100644 index 0000000000..6762526178 --- /dev/null +++ b/frb_example/integrate_third_party/windows/CMakeLists.txt @@ -0,0 +1,108 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(frb_example_integrate_third_party LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "frb_example_integrate_third_party") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(VERSION 3.14...3.25) + +# Define build configuration option. +get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(IS_MULTICONFIG) + set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" + CACHE STRING "" FORCE) +else() + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") + endif() +endif() +# Define settings for the Profile build mode. +set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") +set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") + +# Use Unicode for all projects. +add_definitions(-DUNICODE -D_UNICODE) + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/frb_example/integrate_third_party/windows/flutter/CMakeLists.txt b/frb_example/integrate_third_party/windows/flutter/CMakeLists.txt new file mode 100644 index 0000000000..903f4899d6 --- /dev/null +++ b/frb_example/integrate_third_party/windows/flutter/CMakeLists.txt @@ -0,0 +1,109 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.14) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + ${FLUTTER_TARGET_PLATFORM} $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/frb_example/integrate_third_party/windows/flutter/generated_plugin_registrant.cc b/frb_example/integrate_third_party/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000000..8b6d4680af --- /dev/null +++ b/frb_example/integrate_third_party/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void RegisterPlugins(flutter::PluginRegistry* registry) { +} diff --git a/frb_example/integrate_third_party/windows/flutter/generated_plugin_registrant.h b/frb_example/integrate_third_party/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000000..dc139d85a9 --- /dev/null +++ b/frb_example/integrate_third_party/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/frb_example/integrate_third_party/windows/flutter/generated_plugins.cmake b/frb_example/integrate_third_party/windows/flutter/generated_plugins.cmake new file mode 100644 index 0000000000..38571b8bbf --- /dev/null +++ b/frb_example/integrate_third_party/windows/flutter/generated_plugins.cmake @@ -0,0 +1,24 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST + rust_lib_frb_example_integrate_third_party +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/frb_example/integrate_third_party/windows/runner/CMakeLists.txt b/frb_example/integrate_third_party/windows/runner/CMakeLists.txt new file mode 100644 index 0000000000..394917c053 --- /dev/null +++ b/frb_example/integrate_third_party/windows/runner/CMakeLists.txt @@ -0,0 +1,40 @@ +cmake_minimum_required(VERSION 3.14) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} WIN32 + "flutter_window.cpp" + "main.cpp" + "utils.cpp" + "win32_window.cpp" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" + "Runner.rc" + "runner.exe.manifest" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + +# Disable Windows macros that collide with C++ standard library functions. +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") + +# Add dependency libraries and include directories. Add any application-specific +# dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/frb_example/integrate_third_party/windows/runner/Runner.rc b/frb_example/integrate_third_party/windows/runner/Runner.rc new file mode 100644 index 0000000000..08699e0e2e --- /dev/null +++ b/frb_example/integrate_third_party/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD +#else +#define VERSION_AS_NUMBER 1,0,0,0 +#endif + +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION +#else +#define VERSION_AS_STRING "1.0.0" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_AS_NUMBER + PRODUCTVERSION VERSION_AS_NUMBER + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "com.example" "\0" + VALUE "FileDescription", "frb_example_integrate_third_party" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "frb_example_integrate_third_party" "\0" + VALUE "LegalCopyright", "Copyright (C) 2024 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "frb_example_integrate_third_party.exe" "\0" + VALUE "ProductName", "frb_example_integrate_third_party" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/frb_example/integrate_third_party/windows/runner/flutter_window.cpp b/frb_example/integrate_third_party/windows/runner/flutter_window.cpp new file mode 100644 index 0000000000..955ee3038f --- /dev/null +++ b/frb_example/integrate_third_party/windows/runner/flutter_window.cpp @@ -0,0 +1,71 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(const flutter::DartProject& project) + : project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/frb_example/integrate_third_party/windows/runner/flutter_window.h b/frb_example/integrate_third_party/windows/runner/flutter_window.h new file mode 100644 index 0000000000..6da0652f05 --- /dev/null +++ b/frb_example/integrate_third_party/windows/runner/flutter_window.h @@ -0,0 +1,33 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow hosting a Flutter view running |project|. + explicit FlutterWindow(const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/frb_example/integrate_third_party/windows/runner/main.cpp b/frb_example/integrate_third_party/windows/runner/main.cpp new file mode 100644 index 0000000000..3ae103c8d4 --- /dev/null +++ b/frb_example/integrate_third_party/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.Create(L"frb_example_integrate_third_party", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/frb_example/integrate_third_party/windows/runner/resource.h b/frb_example/integrate_third_party/windows/runner/resource.h new file mode 100644 index 0000000000..66a65d1e4a --- /dev/null +++ b/frb_example/integrate_third_party/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/frb_example/integrate_third_party/windows/runner/resources/app_icon.ico b/frb_example/integrate_third_party/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000000..c04e20caf6 Binary files /dev/null and b/frb_example/integrate_third_party/windows/runner/resources/app_icon.ico differ diff --git a/frb_example/integrate_third_party/windows/runner/runner.exe.manifest b/frb_example/integrate_third_party/windows/runner/runner.exe.manifest new file mode 100644 index 0000000000..a42ea7687c --- /dev/null +++ b/frb_example/integrate_third_party/windows/runner/runner.exe.manifest @@ -0,0 +1,20 @@ + + + + + PerMonitorV2 + + + + + + + + + + + + + + + diff --git a/frb_example/integrate_third_party/windows/runner/utils.cpp b/frb_example/integrate_third_party/windows/runner/utils.cpp new file mode 100644 index 0000000000..3a0b46511a --- /dev/null +++ b/frb_example/integrate_third_party/windows/runner/utils.cpp @@ -0,0 +1,65 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + unsigned int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); + std::string utf8_string; + if (target_length == 0 || target_length > utf8_string.max_size()) { + return utf8_string; + } + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + input_length, utf8_string.data(), target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/frb_example/integrate_third_party/windows/runner/utils.h b/frb_example/integrate_third_party/windows/runner/utils.h new file mode 100644 index 0000000000..3879d54755 --- /dev/null +++ b/frb_example/integrate_third_party/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/frb_example/integrate_third_party/windows/runner/win32_window.cpp b/frb_example/integrate_third_party/windows/runner/win32_window.cpp new file mode 100644 index 0000000000..60608d0fe5 --- /dev/null +++ b/frb_example/integrate_third_party/windows/runner/win32_window.cpp @@ -0,0 +1,288 @@ +#include "win32_window.h" + +#include +#include + +#include "resource.h" + +namespace { + +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + } + FreeLibrary(user32_module); +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registrar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + if (!window) { + return false; + } + + UpdateTheme(window); + + return OnCreate(); +} + +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/frb_example/integrate_third_party/windows/runner/win32_window.h b/frb_example/integrate_third_party/windows/runner/win32_window.h new file mode 100644 index 0000000000..e901dde684 --- /dev/null +++ b/frb_example/integrate_third_party/windows/runner/win32_window.h @@ -0,0 +1,102 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates a win32 window with |title| that is positioned and sized using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + // Return a RECT representing the bounds of the current client area. + RECT GetClientArea(); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. Subclasses should return false if setup fails. + virtual bool OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // RUNNER_WIN32_WINDOW_H_ diff --git a/tools/frb_internal/lib/src/makefile_dart/consts.dart b/tools/frb_internal/lib/src/makefile_dart/consts.dart index a934ef0afc..7857615820 100644 --- a/tools/frb_internal/lib/src/makefile_dart/consts.dart +++ b/tools/frb_internal/lib/src/makefile_dart/consts.dart @@ -9,6 +9,7 @@ const kRustPackagesAllowWeb = [ 'frb_example/pure_dart_pde/rust', 'frb_example/dart_build_rs/rust', 'frb_example/deliberate_bad/rust', + 'frb_example/integrate_third_party/rust', 'frb_example/flutter_via_create/rust', 'frb_example/flutter_via_integrate/rust', 'frb_example/gallery/rust', @@ -35,6 +36,7 @@ const kDartExamplePackages = [ 'frb_example/pure_dart_pde', 'frb_example/dart_build_rs', 'frb_example/deliberate_bad', + 'frb_example/integrate_third_party', ...kDartExampleIntegratePackages, 'frb_example/gallery', ]; @@ -61,6 +63,7 @@ const kDartModeOfPackage = { 'frb_example/pure_dart_pde': DartMode.dart, 'frb_example/dart_build_rs': DartMode.dart, 'frb_example/deliberate_bad': DartMode.dart, + 'frb_example/integrate_third_party': DartMode.flutter, 'frb_example/flutter_via_create': DartMode.flutter, 'frb_example/flutter_via_integrate': DartMode.flutter, 'frb_example/gallery': DartMode.flutter,