Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rust calls Dart: Result type not translated into Dart return/exception #1928

Closed
vhdirk opened this issue May 7, 2024 · 4 comments · Fixed by #1945
Closed

Rust calls Dart: Result type not translated into Dart return/exception #1928

vhdirk opened this issue May 7, 2024 · 4 comments · Fixed by #1945
Labels
bug Something isn't working

Comments

@vhdirk
Copy link

vhdirk commented May 7, 2024

Describe the bug

The simple example from 'Rust calls Dartdoesn't generate sensible Dart code when using aResult` return type.

Steps to reproduce

Same as in #1927 : See the reproducer here: https://github.com/vhdirk/flutter_rust_bridge/blob/future-result/frb_example/dart_minimal/rust/src/api/minimal.rs.

The following function does not get properly translated into Dart:

pub async fn rust_function(dart_callback: impl Fn(String) -> DartFnFuture<Result<String, u32>>) {
    dart_callback(Ok("Tom".to_owned())).await; // Will get `Hello, Tom!`
}

Instead, it generates on opaque type for the Result.

Logs

[2024-05-07T07:25:04.399Z DEBUG frb_codegen/src/main.rs:24] cli=Cli { verbose: false, command: Generate(GenerateCommandArgs { watch: false, primary: GenerateCommandArgsPrimary { config_file: None, rust_input: None, dart_output: None, c_output: None, duplicated_c_output: None, rust_root: None, rust_output: None, dart_entrypoint_class_name: None, dart_format_line_length: None, no_dart_enums_style: false, no_add_mod_to_lib: false, llvm_path: None, llvm_compiler_opts: None, dart_root: None, no_build_runner: false, extra_headers: None, no_web: false, no_deps_check: false, default_external_library_loader_web_prefix: None, no_dart3: false, full_dep: false, local: false, dump: None, dump_all: false } }) }
[2024-05-07T07:25:04.399Z DEBUG frb_codegen/src/binary/commands_parser.rs:8] compute_codegen_config: mode=from_files_auto
[2024-05-07T07:25:04.399Z DEBUG frb_codegen/src/library/codegen/config/config_parser.rs:45] Found config file flutter_rust_bridge.yaml
[2024-05-07T07:25:04.400Z DEBUG frb_codegen/src/library/codegen/mod.rs:24] config=Config { base_dir: Some(""), rust_input: "rust/src/api/**/*.rs", dart_output: "lib/src/rust", c_output: Some("frb_generated.h"), duplicated_c_output: None, rust_root: None, rust_output: None, dart_entrypoint_class_name: None, dart_format_line_length: None, dart_enums_style: None, add_mod_to_lib: None, llvm_path: None, llvm_compiler_opts: None, dart_root: None, build_runner: None, extra_headers: None, web: None, deps_check: None, dart3: None, full_dep: Some(true), local: Some(true), default_external_library_loader_web_prefix: None, dump: None, dump_all: Some(true) } meta_config=MetaConfig { watch: false }
[2024-05-07T07:25:04.400Z DEBUG frb_codegen/src/library/codegen/config/internal_config_parser.rs:42] InternalConfig.parse base_dir="/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal"
[2024-05-07T07:25:04.487Z DEBUG frb_codegen/src/library/codegen/mod.rs:27] internal_config=InternalConfig { controller: ControllerInternalConfig { watch: false, watching_paths: ["/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src"], exclude_paths: ["/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.rs", "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.io.rs", "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.web.rs"], max_count: None }, preparer: PreparerInternalConfig { dart_root: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal", deps_check: true, needs_ffigen: true }, parser: ParserInternalConfig { rust_input_path_pack: RustInputPathPack { rust_input_paths: ["/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/api/minimal.rs"] }, rust_crate_dir: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust", force_codec_mode_pack: None, default_stream_sink_codec: Dco, default_rust_opaque_codec: Nom }, generator: GeneratorInternalConfig { api_dart: GeneratorApiDartInternalConfig { dart_enums_style: true, dart3: true, dart_decl_base_output_path: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/lib/src/rust", dart_entrypoint_class_name: "RustLib" }, wire: GeneratorWireInternalConfig { dart: GeneratorWireDartInternalConfig { has_ffigen: true, web_enabled: true, llvm_path: ["/opt/homebrew/opt/llvm", "/usr/local/opt/llvm", "/usr/lib/llvm-9", "/usr/lib/llvm-10", "/usr/lib/llvm-11", "/usr/lib/llvm-12", "/usr/lib/llvm-13", "/usr/lib/llvm-14", "/usr/lib/", "/usr/lib64/", "C:/Program Files/llvm", "C:/msys64/mingw64"], llvm_compiler_opts: "", dart_root: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal", extra_headers: "", dart_impl_output_path: TargetOrCommonMap { common: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/lib/src/rust/frb_generated.dart", io: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/lib/src/rust/frb_generated.io.dart", web: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/lib/src/rust/frb_generated.web.dart" }, dart_output_class_name_pack: DartOutputClassNamePack { entrypoint_class_name: "RustLib", api_class_name: "RustLibApi", api_impl_class_name: "RustLibApiImpl", api_impl_platform_class_name: "RustLibApiImplPlatform", wire_class_name: "RustLibWire", wasm_module_name: "RustLibWasmModule" }, default_external_library_loader: GeneratorWireDartDefaultExternalLibraryLoaderInternalConfig { stem: "frb_example_dart_minimal", io_directory: "rust/target/release/", web_prefix: "pkg/" }, c_symbol_prefix: "frbgen_frb_example_dart_minimal_" }, rust: GeneratorWireRustInternalConfig { rust_input_path_pack: RustInputPathPack { rust_input_paths: ["/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/api/minimal.rs"] }, rust_crate_dir: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust", web_enabled: true, rust_output_path: TargetOrCommonMap { common: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.rs", io: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.io.rs", web: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.web.rs" }, c_symbol_prefix: "frbgen_frb_example_dart_minimal_", has_ffigen: true, default_stream_sink_codec: Dco, default_rust_opaque_codec: Nom }, c: GeneratorWireCInternalConfig { enable: true, rust_crate_dir: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust", rust_output_path: TargetOrCommonMap { common: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.rs", io: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.io.rs", web: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.web.rs" }, c_output_path: Some("/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/frb_generated.h"), c_symbol_prefix: "frbgen_frb_example_dart_minimal_" } } }, polisher: PolisherInternalConfig { duplicated_c_output_path: [], dart_format_line_length: 80, add_mod_to_lib: true, build_runner: true, web_enabled: true, dart_root: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal", rust_crate_dir: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust", rust_output_path: TargetOrCommonMap { common: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.rs", io: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.io.rs", web: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.web.rs" }, c_output_path: Some("/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/frb_generated.h"), enable_auto_upgrade: false }, dumper: DumperInternalConfig { dump_contents: [Config, Source, SourceGraph, Ir, GeneratorInfo, GeneratorSpec, GeneratorText], dump_directory: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump" } }
[2024-05-07T07:25:04.487Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping config.json into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/config/config.json"
[2024-05-07T07:25:04.488Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping internal_config.json into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/config/internal_config.json"
[2024-05-07T07:25:04.488Z DEBUG frb_codegen/src/library/utils/dart_repository/dart_repo.rs:22] Guessing toolchain the runner is run into
[2024-05-07T07:25:04.491Z DEBUG frb_codegen/src/library/commands/command_runner.rs:129] execute command: bin=sh args="-c \"dart\" \"--version\"" current_dir=None cmd="sh" "-c" "\"dart\" \"--version\""
[2024-05-07T07:25:04.505Z DEBUG frb_codegen/src/library/commands/command_runner.rs:140] command="sh" "-c" "\"dart\" \"--version\"" stdout=Dart SDK version: 3.3.4 (stable) (Tue Apr 16 19:56:12 2024 +0000) on "linux_x64"
 stderr=
[2024-05-07T07:25:04.505Z DEBUG frb_codegen/src/library/utils/dart_repository/dart_repo.rs:71] Checking presence of ffigen in dev_dependencies at /home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal
[2024-05-07T07:25:04.505Z DEBUG frb_codegen/src/library/utils/dart_repository/dart_repo.rs:103] Checking presence of ffigen in dev_dependencies at /home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal
[2024-05-07T07:25:04.509Z DEBUG frb_codegen/src/library/codegen/parser/reader.rs:22] read_rust_file rust_file_path="/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/api/minimal.rs" module=Some("api::minimal")
[2024-05-07T07:25:04.509Z DEBUG frb_codegen/src/library/commands/cargo_expand.rs:31] CachedCargoExpand execute manifest_dir= rust_crate_dir="/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust"
[2024-05-07T07:25:04.509Z DEBUG frb_codegen/src/library/commands/cargo_expand.rs:118] Running cargo expand in '"/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust"'
[2024-05-07T07:25:04.509Z DEBUG frb_codegen/src/library/commands/command_runner.rs:129] execute command: bin=cargo args="expand --lib --theme=none --ugly" current_dir=Some("/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust") cmd=cd "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust" && RUSTFLAGS="--cfg frb_expand" "cargo" "expand" "--lib" "--theme=none" "--ugly"
[2024-05-07T07:25:04.672Z DEBUG frb_codegen/src/library/commands/command_runner.rs:140] command=cd "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust" && RUSTFLAGS="--cfg frb_expand" "cargo" "expand" "--lib" "--theme=none" "--ugly" stdout=#![feature(prelude_import)]
#[prelude_import]
use std::prelude::rust_2021::*;
#[macro_use]
extern crate std;
pub mod api {
    /* AUTO INJECTED BY flutter_rust_bridge. This line may not be accurate, and you can change it according to your needs. */
    pub mod minimal {
        pub use std::future::{self, Future};
        pub use flutter_rust_bridge::DartFnFuture;
        pub use std::pin::Pin;
        use flutter_rust_bridge::frb;
        #[doc = r###"frb_marker: #[frb(init)]"###]
        pub fn init_app() { flutter_rust_bridge::setup_default_user_utils(); }
        pub fn minimal_adder(a: i32, b: i32) -> i32 { a + b }
        pub fn greet(name: String) -> DartFnFuture<Result<String, u32>> {
            future::ready(Ok({
                        let res =
                            ::alloc::fmt::format(format_args!("Hello, {0}!", name));
                        res
                    }))
        }
        pub fn hey(name: String)
            ->
                Pin<Box<dyn Future<Output = Result<String, u32>> + Send +
                'static>> {
            Box::pin(future::ready(Ok({
                            let res =
                                ::alloc::fmt::format(format_args!("Hello, {0}!", name));
                            res
                        })))
        }
        pub fn yo(name: String) -> DartFnFuture<String> {
            future::ready({
                    let res =
                        ::alloc::fmt::format(format_args!("Hello, {0}!", name));
                    res
                })
        }
        #[doc = r###"frb_marker: #[frb(sync)]"###]
        pub fn hallo(name: String) -> DartFnFuture<String> {
            future::ready({
                    let res =
                        ::alloc::fmt::format(format_args!("Hello, {0}!", name));
                    res
                })
        }
        pub async fn rust_function(dart_callback:
                impl Fn(String) -> DartFnFuture<Result<String, u32>>) {
            dart_callback(Ok("Tom".to_owned())).await;
        }
    }
}
mod frb_generated {
    #![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)]
    use crate::api::minimal::*;
    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};
    #[doc(hidden)]
    pub(crate) struct FrbWrapper<T>(T);
    impl<T: Clone> Clone for FrbWrapper<T> {
        fn clone(&self) -> Self { FrbWrapper(self.0.clone()) }
    }
    impl<T: PartialEq> PartialEq for FrbWrapper<T> {
        fn eq(&self, other: &Self) -> bool { self.0.eq(&other.0) }
    }
    impl<T: Eq> Eq for FrbWrapper<T> {}
    impl<T: std::hash::Hash> std::hash::Hash for FrbWrapper<T> {
        fn hash<H: std::hash::Hasher>(&self, state: &mut H) {
            self.0.hash(state)
        }
    }
    impl<T> From<T> for FrbWrapper<T> {
        fn from(t: T) -> Self { FrbWrapper(t) }
    }
    use std::collections::HashMap;
    use std::marker::PhantomData;
    use std::sync::Arc;
    pub struct MoiArc<T: ?Sized + MoiArcValue> {
        object_id: Option<ObjectId>,
        value: Option<Arc<T>>,
        _phantom: PhantomData<T>,
    }
    #[automatically_derived]
    impl<T: ::core::fmt::Debug + ?Sized + MoiArcValue> ::core::fmt::Debug for
        MoiArc<T> {
        #[inline]
        fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
            ::core::fmt::Formatter::debug_struct_field3_finish(f, "MoiArc",
                "object_id", &self.object_id, "value", &self.value,
                "_phantom", &&self._phantom)
        }
    }
    impl<T: ?Sized + MoiArcValue> Drop for MoiArc<T> {
        fn drop(&mut self) {
            if let Some(object_id) = self.object_id {
                    Self::decrement_strong_count(object_id);
                }
        }
    }
    impl<T: ?Sized + MoiArcValue> AsRef<T> for MoiArc<T> {
        fn as_ref(&self) -> &T { self.value.as_ref().unwrap().as_ref() }
    }
    impl<T: ?Sized + MoiArcValue>
        ::flutter_rust_bridge::for_generated::BaseArc<T> for MoiArc<T> {
        fn new(value: T) -> Self where T: Sized {
            let mut pool = T::get_pool().write().unwrap();
            let object_id = pool.id_generator.next_id();
            let value = Arc::new(value);
            let old_value =
                pool.map.insert(object_id,
                    MoiArcPoolValue { ref_count: 1, value: value.clone() });
            if !old_value.is_none() {
                    ::core::panicking::panic("assertion failed: old_value.is_none()")
                };
            Self {
                object_id: Some(object_id),
                value: Some(value),
                _phantom: PhantomData,
            }
        }
        fn try_unwrap(mut self) -> Result<T, Self> where T: Sized {
            let pool = &mut T::get_pool().write().unwrap();
            if pool.map.get(&self.object_id.unwrap()).unwrap().ref_count == 1
                    {
                    Self::decrement_strong_count_raw(self.object_id.unwrap(),
                        pool);
                    self.object_id.take().unwrap();
                    Ok(Arc::into_inner(self.value.take().unwrap()).unwrap())
                } else { Err(self) }
        }
        fn into_inner(self) -> Option<T> where T: Sized {
            self.try_unwrap().ok()
        }
        fn into_raw(mut self) -> usize { self.object_id.take().unwrap() }
    }
    impl<T: ?Sized + MoiArcValue> Clone for MoiArc<T> {
        fn clone(&self) -> Self {
            Self::increment_strong_count(self.object_id.unwrap());
            Self {
                object_id: self.object_id,
                value: self.value.clone(),
                _phantom: PhantomData,
            }
        }
    }
    impl<T: ?Sized + MoiArcValue> MoiArc<T> {
        pub(crate) fn from_raw(raw: usize) -> Self where T: Sized {
            let map = &T::get_pool().read().unwrap().map;
            Self {
                object_id: Some(raw),
                value: Some(map.get(&raw).unwrap().value.clone()),
                _phantom: PhantomData,
            }
        }
        pub fn increment_strong_count(raw: usize) {
            let map = &mut T::get_pool().write().unwrap().map;
            map.get_mut(&raw).unwrap().ref_count += 1;
        }
        pub fn decrement_strong_count(raw: usize) {
            Self::decrement_strong_count_raw(raw,
                &mut T::get_pool().write().unwrap())
        }
        fn decrement_strong_count_raw(raw: usize,
            pool: &mut MoiArcPoolInner<T>) {
            let value = pool.map.get_mut(&raw).unwrap();
            value.ref_count -= 1;
            if value.ref_count == 0 { pool.map.remove(&raw).unwrap(); }
        }
    }
    pub trait MoiArcValue: 'static {
        fn get_pool()
        -> &'static MoiArcPool<Self>;
    }
    type ObjectId = usize;
    pub type MoiArcPool<T> = std::sync::RwLock<MoiArcPoolInner<T>>;
    pub struct MoiArcPoolInner<T: ?Sized> {
        map: HashMap<ObjectId, MoiArcPoolValue<T>>,
        id_generator: IdGenerator,
    }
    impl<T: ?Sized> Default for MoiArcPoolInner<T> {
        fn default() -> Self {
            Self { map: HashMap::new(), id_generator: Default::default() }
        }
    }
    struct IdGenerator {
        next_id: ObjectId,
    }
    impl Default for IdGenerator {
        fn default() -> Self { Self { next_id: Self::MIN_ID } }
    }
    impl IdGenerator {
        const MIN_ID: ObjectId = 1;
        const MAX_ID: ObjectId = 2147483600;
        fn next_id(&mut self) -> ObjectId {
            let ans = self.next_id;
            self.next_id =
                if self.next_id >= Self::MAX_ID {
                        Self::MIN_ID
                    } else { self.next_id + 1 };
            ans
        }
    }
    impl<T: ?Sized> MoiArcPoolInner<T> {}
    struct MoiArcPoolValue<T: ?Sized> {
        ref_count: i32,
        value: Arc<T>,
    }
    use ::flutter_rust_bridge::for_generated::decode_rust_opaque_nom;
    fn decode_rust_opaque_moi<T: MoiArcValue + Send + Sync>(ptr: usize)
        -> RustOpaqueMoi<T> {
        RustOpaqueMoi::from_arc(MoiArc::<T>::from_raw(ptr))
    }
    use ::flutter_rust_bridge::for_generated::StdArc;
    use ::flutter_rust_bridge::RustOpaqueNom;
    /// Please refer to `RustOpaque` for doc.
    pub type RustOpaqueMoi<T> =
        ::flutter_rust_bridge::for_generated::RustOpaqueBase<T, MoiArc<T>>;
    /// A wrapper to support [arbitrary Rust types](https://cjycode.com/flutter_rust_bridge/guides/types/arbitrary).
    pub type RustOpaque<T> = RustOpaqueNom<T>;
    use ::flutter_rust_bridge::RustAutoOpaqueNom;
    /// Please refer to `RustAutoOpaque` for doc.
    pub type RustAutoOpaqueMoi<T> =
        ::flutter_rust_bridge::for_generated::RustAutoOpaqueBase<T,
        MoiArc<::flutter_rust_bridge::for_generated::RustAutoOpaqueInner<T>>>;
    /// Usually this is unneeded, and just write down arbitrary types.
    /// However, when you need arbitrary types at places that are not supported yet,
    /// use `RustOpaqueOpaque<YourArbitraryType>`.
    pub type RustAutoOpaque<T> = RustAutoOpaqueNom<T>;
    pub trait CstDecode<T> {
        fn cst_decode(self)
        -> T;
    }
    impl<T, S> CstDecode<Option<T>> for *mut S where *mut S: CstDecode<T> {
        fn cst_decode(self) -> Option<T> {
            (!self.is_null()).then(|| self.cst_decode())
        }
    }
    pub trait SseDecode {
        fn sse_decode(deserializer:
            &mut ::flutter_rust_bridge::for_generated::SseDeserializer)
        -> Self;
        fn sse_decode_single(message:
                ::flutter_rust_bridge::for_generated::Dart2RustMessageSse)
            -> Self where Self: Sized {
            let mut deserializer =
                ::flutter_rust_bridge::for_generated::SseDeserializer::new(message);
            let ans = Self::sse_decode(&mut deserializer);
            deserializer.end();
            ans
        }
    }
    pub trait SseEncode {
        fn sse_encode(self,
        serializer: &mut ::flutter_rust_bridge::for_generated::SseSerializer);
    }
    fn transform_result_sse<T, E>(raw: Result<T, E>)
        ->
            Result<::flutter_rust_bridge::for_generated::Rust2DartMessageSse,
            ::flutter_rust_bridge::for_generated::Rust2DartMessageSse> where
        T: SseEncode, E: SseEncode {
        use ::flutter_rust_bridge::for_generated::{Rust2DartAction, SseCodec};
        match raw {
            Ok(raw) =>
                Ok(SseCodec::encode(Rust2DartAction::Success,
                        |serializer| { raw.sse_encode(serializer) })),
            Err(raw) =>
                Err(SseCodec::encode(Rust2DartAction::Error,
                        |serializer| { raw.sse_encode(serializer) })),
        }
    }
    pub struct StreamSink<T,
        Rust2DartCodec: ::flutter_rust_bridge::for_generated::BaseCodec =
        ::flutter_rust_bridge::for_generated::DcoCodec> {
        base: ::flutter_rust_bridge::for_generated::StreamSinkBase<T,
        Rust2DartCodec>,
    }
    #[automatically_derived]
    impl<T: ::core::clone::Clone, Rust2DartCodec: ::core::clone::Clone +
        ::flutter_rust_bridge::for_generated::BaseCodec> ::core::clone::Clone
        for StreamSink<T, Rust2DartCodec> {
        #[inline]
        fn clone(&self) -> StreamSink<T, Rust2DartCodec> {
            StreamSink { base: ::core::clone::Clone::clone(&self.base) }
        }
    }
    impl<T, Rust2DartCodec: ::flutter_rust_bridge::for_generated::BaseCodec>
        StreamSink<T, Rust2DartCodec> {
        pub fn deserialize(raw: String) -> Self {
            Self {
                base: ::flutter_rust_bridge::for_generated::StreamSinkBase::deserialize(raw),
            }
        }
    }
    impl<T> StreamSink<T, ::flutter_rust_bridge::for_generated::DcoCodec> {
        pub fn add<T2>(&self, value: T)
            -> Result<(), ::flutter_rust_bridge::Rust2DartSendError> where
            T: ::flutter_rust_bridge::IntoIntoDart<T2>,
            T2: ::flutter_rust_bridge::IntoDart {
            self.base.add(::flutter_rust_bridge::for_generated::DcoCodec::encode(::flutter_rust_bridge::for_generated::Rust2DartAction::Success,
                    value.into_into_dart()))
        }
    }
    impl<T> StreamSink<T, ::flutter_rust_bridge::for_generated::SseCodec>
        where T: SseEncode {
        pub fn add(&self, value: T)
            -> Result<(), ::flutter_rust_bridge::Rust2DartSendError> {
            self.base.add(::flutter_rust_bridge::for_generated::SseCodec::encode(::flutter_rust_bridge::for_generated::Rust2DartAction::Success,
                    |serializer| value.sse_encode(serializer)))
        }
    }
    impl<T, Rust2DartCodec: ::flutter_rust_bridge::for_generated::BaseCodec>
        ::flutter_rust_bridge::IntoIntoDart<StreamSink<T, Rust2DartCodec>> for
        StreamSink<T, Rust2DartCodec> {
        fn into_into_dart(self) -> StreamSink<T, Rust2DartCodec> {
            ::core::panicking::panic("internal error: entered unreachable code")
        }
    }
    impl<T, Rust2DartCodec: ::flutter_rust_bridge::for_generated::BaseCodec>
        ::flutter_rust_bridge::IntoDart for StreamSink<T, Rust2DartCodec> {
        fn into_dart(self) -> ::flutter_rust_bridge::for_generated::DartAbi {
            ::core::panicking::panic("internal error: entered unreachable code")
        }
    }
    pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_VERSION: &str =
        "2.0.0-dev.33";
    pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_CONTENT_HASH: i32 =
        1975083391;
    #[allow(missing_copy_implementations)]
    #[allow(non_camel_case_types)]
    #[allow(dead_code)]
    pub struct FLUTTER_RUST_BRIDGE_HANDLER {
        __private_field: (),
    }
    #[doc(hidden)]
    pub static FLUTTER_RUST_BRIDGE_HANDLER: FLUTTER_RUST_BRIDGE_HANDLER =
        FLUTTER_RUST_BRIDGE_HANDLER { __private_field: () };
    impl ::lazy_static::__Deref for FLUTTER_RUST_BRIDGE_HANDLER {
        type Target =
            ::flutter_rust_bridge::DefaultHandler<::flutter_rust_bridge::for_generated::SimpleThreadPool>;
        fn deref(&self)
            ->
                &::flutter_rust_bridge::DefaultHandler<::flutter_rust_bridge::for_generated::SimpleThreadPool> {
            #[inline(always)]
            fn __static_ref_initialize()
                ->
                    ::flutter_rust_bridge::DefaultHandler<::flutter_rust_bridge::for_generated::SimpleThreadPool> {
                {
                    match (&FLUTTER_RUST_BRIDGE_CODEGEN_VERSION,
                            &flutter_rust_bridge::for_generated::FLUTTER_RUST_BRIDGE_RUNTIME_VERSION)
                        {
                        (left_val, right_val) => {
                            if !(*left_val == *right_val) {
                                    let kind = ::core::panicking::AssertKind::Eq;
                                    ::core::panicking::assert_failed(kind, &*left_val,
                                        &*right_val,
                                        ::core::option::Option::Some(format_args!("Please ensure flutter_rust_bridge\'s codegen ({0}) and runtime ({1}) versions are the same",
                                                FLUTTER_RUST_BRIDGE_CODEGEN_VERSION,
                                                flutter_rust_bridge::for_generated::FLUTTER_RUST_BRIDGE_RUNTIME_VERSION)));
                                }
                        }
                    };
                    ::flutter_rust_bridge::DefaultHandler::new_simple(Default::default())
                }
            }
            #[inline(always)]
            fn __stability()
                ->
                    &'static ::flutter_rust_bridge::DefaultHandler<::flutter_rust_bridge::for_generated::SimpleThreadPool> {
                static LAZY:
                    ::lazy_static::lazy::Lazy<::flutter_rust_bridge::DefaultHandler<::flutter_rust_bridge::for_generated::SimpleThreadPool>>
                    =
                    ::lazy_static::lazy::Lazy::INIT;
                LAZY.get(__static_ref_initialize)
            }
            __stability()
        }
    }
    impl ::lazy_static::LazyStatic for FLUTTER_RUST_BRIDGE_HANDLER {
        fn initialize(lazy: &Self) { let _ = &**lazy; }
    }
    fn wire_greet_impl(port_: flutter_rust_bridge::for_generated::MessagePort,
        name: impl CstDecode<String>) {
        FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,
            _,
            _>(flutter_rust_bridge::for_generated::TaskInfo {
                debug_name: "greet",
                port: Some(port_),
                mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal,
            },
            move ||
                {
                    let api_name = name.cst_decode();
                    move |context|
                        {
                            transform_result_dco((move ||
                                            {
                                                Result::<_, ()>::Ok(crate::api::minimal::greet(api_name))
                                            })())
                        }
                })
    }
    fn wire_hallo_impl(name: impl CstDecode<String>)
        -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco {
        FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::<flutter_rust_bridge::for_generated::DcoCodec,
            _>(flutter_rust_bridge::for_generated::TaskInfo {
                debug_name: "hallo",
                port: None,
                mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync,
            },
            move ||
                {
                    let api_name = name.cst_decode();
                    transform_result_dco((move ||
                                    {
                                        Result::<_, ()>::Ok(crate::api::minimal::hallo(api_name))
                                    })())
                })
    }
    fn wire_hey_impl(port_: flutter_rust_bridge::for_generated::MessagePort,
        name: impl CstDecode<String>) {
        FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,
            _,
            _>(flutter_rust_bridge::for_generated::TaskInfo {
                debug_name: "hey",
                port: Some(port_),
                mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal,
            },
            move ||
                {
                    let api_name = name.cst_decode();
                    move |context|
                        {
                            transform_result_dco((move ||
                                            {
                                                Result::<_, ()>::Ok(crate::api::minimal::hey(api_name))
                                            })())
                        }
                })
    }
    fn wire_init_app_impl(port_:
            flutter_rust_bridge::for_generated::MessagePort) {
        FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,
            _,
            _>(flutter_rust_bridge::for_generated::TaskInfo {
                debug_name: "init_app",
                port: Some(port_),
                mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal,
            },
            move ||
                {
                    move |context|
                        {
                            transform_result_dco((move ||
                                            { Result::<_, ()>::Ok(crate::api::minimal::init_app()) })())
                        }
                })
    }
    fn wire_minimal_adder_impl(port_:
            flutter_rust_bridge::for_generated::MessagePort,
        a: impl CstDecode<i32>, b: impl CstDecode<i32>) {
        FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,
            _,
            _>(flutter_rust_bridge::for_generated::TaskInfo {
                debug_name: "minimal_adder",
                port: Some(port_),
                mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal,
            },
            move ||
                {
                    let api_a = a.cst_decode();
                    let api_b = b.cst_decode();
                    move |context|
                        {
                            transform_result_dco((move ||
                                            {
                                                Result::<_,
                                                        ()>::Ok(crate::api::minimal::minimal_adder(api_a, api_b))
                                            })())
                        }
                })
    }
    fn wire_rust_function_impl(port_:
            flutter_rust_bridge::for_generated::MessagePort,
        dart_callback: impl CstDecode<flutter_rust_bridge::DartOpaque>) {
        FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::<flutter_rust_bridge::for_generated::DcoCodec,
            _, _,
            _>(flutter_rust_bridge::for_generated::TaskInfo {
                debug_name: "rust_function",
                port: Some(port_),
                mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal,
            },
            move ||
                {
                    let api_dart_callback =
                        decode_DartFn_Inputs_String_Output_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerResultStringu32(dart_callback.cst_decode());
                    move |context|
                        async move
                            {
                            transform_result_dco((move ||
                                                async move
                                                    {
                                                    Result::<_,
                                                            ()>::Ok(crate::api::minimal::rust_function(api_dart_callback).await)
                                                })().await)
                        }
                })
    }
    fn wire_yo_impl(port_: flutter_rust_bridge::for_generated::MessagePort,
        name: impl CstDecode<String>) {
        FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,
            _,
            _>(flutter_rust_bridge::for_generated::TaskInfo {
                debug_name: "yo",
                port: Some(port_),
                mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal,
            },
            move ||
                {
                    let api_name = name.cst_decode();
                    move |context|
                        {
                            transform_result_dco((move ||
                                            {
                                                Result::<_, ()>::Ok(crate::api::minimal::yo(api_name))
                                            })())
                        }
                })
    }
    fn decode_DartFn_Inputs_String_Output_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerResultStringu32(dart_opaque:
            flutter_rust_bridge::DartOpaque)
        ->
            impl Fn(String)
            -> flutter_rust_bridge::DartFnFuture<Result<String, u32>> {
        use flutter_rust_bridge::IntoDart;
        async fn body(dart_opaque: flutter_rust_bridge::DartOpaque,
            arg0: String) -> Result<String, u32> {
            let args =
                <[_]>::into_vec(#[rustc_box] ::alloc::boxed::Box::new([arg0.into_into_dart().into_dart()]));
            let message =
                FLUTTER_RUST_BRIDGE_HANDLER.dart_fn_invoke(dart_opaque,
                        args).await;
            <Result<String, u32>>::sse_decode_single(message)
        }
        move |arg0: String|
            {
                flutter_rust_bridge::for_generated::convert_into_dart_fn_future(body(dart_opaque.clone(),
                        arg0))
            }
    }
    impl CstDecode<i32> for i32 {
        fn cst_decode(self) -> i32 { self }
    }
    impl CstDecode<u8> for u8 {
        fn cst_decode(self) -> u8 { self }
    }
    impl CstDecode<usize> for usize {
        fn cst_decode(self) -> usize { self }
    }
    impl SseDecode for DartFnFuture<Result<String, u32>> {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            let mut inner =
                <RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<Result<String,
                        u32>>>>>::sse_decode(deserializer);
            return inner.rust_auto_opaque_decode_owned();
        }
    }
    impl SseDecode for DartFnFuture<String> {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            let mut inner =
                <RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<String>>>>::sse_decode(deserializer);
            return inner.rust_auto_opaque_decode_owned();
        }
    }
    impl SseDecode for
        Pin<Box<dyn Future<Output = Result<String, u32>> + Send + 'static>> {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            let mut inner =
                <RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Pin<Box<dyn Future<Output
                        = Result<String, u32>> + Send +
                        'static>>>>>::sse_decode(deserializer);
            return inner.rust_auto_opaque_decode_owned();
        }
    }
    impl SseDecode for Result<String, u32> {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            let mut inner =
                <RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Result<String,
                        u32>>>>::sse_decode(deserializer);
            return inner.rust_auto_opaque_decode_owned();
        }
    }
    impl SseDecode for flutter_rust_bridge::DartOpaque {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            let mut inner = <usize>::sse_decode(deserializer);
            return unsafe {
                    flutter_rust_bridge::for_generated::sse_decode_dart_opaque(inner)
                };
        }
    }
    impl SseDecode for
        RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<Result<String,
        u32>>>> {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            let mut inner = <usize>::sse_decode(deserializer);
            return unsafe { decode_rust_opaque_nom(inner) };
        }
    }
    impl SseDecode for
        RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<String>>>
        {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            let mut inner = <usize>::sse_decode(deserializer);
            return unsafe { decode_rust_opaque_nom(inner) };
        }
    }
    impl SseDecode for
        RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Pin<Box<dyn Future<Output
        = Result<String, u32>> + Send + 'static>>>> {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            let mut inner = <usize>::sse_decode(deserializer);
            return unsafe { decode_rust_opaque_nom(inner) };
        }
    }
    impl SseDecode for
        RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Result<String,
        u32>>> {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            let mut inner = <usize>::sse_decode(deserializer);
            return unsafe { decode_rust_opaque_nom(inner) };
        }
    }
    impl SseDecode for String {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            let mut inner = <Vec<u8>>::sse_decode(deserializer);
            return String::from_utf8(inner).unwrap();
        }
    }
    impl SseDecode for i32 {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            deserializer.cursor.read_i32::<NativeEndian>().unwrap()
        }
    }
    impl SseDecode for Vec<u8> {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            let mut len_ = <i32>::sse_decode(deserializer);
            let mut ans_ = ::alloc::vec::Vec::new();
            for idx_ in 0..len_ { ans_.push(<u8>::sse_decode(deserializer)); }
            return ans_;
        }
    }
    impl SseDecode for u8 {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            deserializer.cursor.read_u8().unwrap()
        }
    }
    impl SseDecode for () {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {}
    }
    impl SseDecode for usize {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            deserializer.cursor.read_u64::<NativeEndian>().unwrap() as _
        }
    }
    impl SseDecode for bool {
        fn sse_decode(deserializer:
                &mut flutter_rust_bridge::for_generated::SseDeserializer)
            -> Self {
            deserializer.cursor.read_u8().unwrap() != 0
        }
    }
    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) {
        match func_id {
            _ =>
                ::core::panicking::panic("internal error: entered unreachable code"),
        }
    }
    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 {
        match func_id {
            _ =>
                ::core::panicking::panic("internal error: entered unreachable code"),
        }
    }
    impl flutter_rust_bridge::IntoDart for
        FrbWrapper<DartFnFuture<Result<String, u32>>> {
        fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi {
            flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_,
                        StdArc<_>>(self.0).into_dart()
        }
    }
    impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for
        FrbWrapper<DartFnFuture<Result<String, u32>>> {}
    impl flutter_rust_bridge::IntoIntoDart<FrbWrapper<DartFnFuture<Result<String,
        u32>>>> for DartFnFuture<Result<String, u32>> {
        fn into_into_dart(self)
            -> FrbWrapper<DartFnFuture<Result<String, u32>>> {
            self.into()
        }
    }
    impl flutter_rust_bridge::IntoDart for FrbWrapper<DartFnFuture<String>> {
        fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi {
            flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_,
                        StdArc<_>>(self.0).into_dart()
        }
    }
    impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for
        FrbWrapper<DartFnFuture<String>> {}
    impl flutter_rust_bridge::IntoIntoDart<FrbWrapper<DartFnFuture<String>>>
        for DartFnFuture<String> {
        fn into_into_dart(self) -> FrbWrapper<DartFnFuture<String>> {
            self.into()
        }
    }
    impl flutter_rust_bridge::IntoDart for
        FrbWrapper<Pin<Box<dyn Future<Output = Result<String, u32>> + Send +
        'static>>> {
        fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi {
            flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_,
                        StdArc<_>>(self.0).into_dart()
        }
    }
    impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for
        FrbWrapper<Pin<Box<dyn Future<Output = Result<String, u32>> + Send +
        'static>>> {}
    impl flutter_rust_bridge::IntoIntoDart<FrbWrapper<Pin<Box<dyn Future<Output
        = Result<String, u32>> + Send + 'static>>>> for
        Pin<Box<dyn Future<Output = Result<String, u32>> + Send + 'static>> {
        fn into_into_dart(self)
            ->
                FrbWrapper<Pin<Box<dyn Future<Output = Result<String, u32>> +
                Send + 'static>>> {
            self.into()
        }
    }
    impl flutter_rust_bridge::IntoDart for FrbWrapper<Result<String, u32>> {
        fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi {
            flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_,
                        StdArc<_>>(self.0).into_dart()
        }
    }
    impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for
        FrbWrapper<Result<String, u32>> {}
    impl flutter_rust_bridge::IntoIntoDart<FrbWrapper<Result<String, u32>>>
        for Result<String, u32> {
        fn into_into_dart(self) -> FrbWrapper<Result<String, u32>> {
            self.into()
        }
    }
    impl SseEncode for DartFnFuture<Result<String, u32>> {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            <RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<Result<String,
                    u32>>>>>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_,
                        StdArc<_>>(self), serializer);
        }
    }
    impl SseEncode for DartFnFuture<String> {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            <RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<String>>>>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_,
                        StdArc<_>>(self), serializer);
        }
    }
    impl SseEncode for
        Pin<Box<dyn Future<Output = Result<String, u32>> + Send + 'static>> {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            <RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Pin<Box<dyn Future<Output
                    = Result<String, u32>> + Send +
                    'static>>>>>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_,
                        StdArc<_>>(self), serializer);
        }
    }
    impl SseEncode for Result<String, u32> {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            <RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Result<String,
                    u32>>>>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_,
                        StdArc<_>>(self), serializer);
        }
    }
    impl SseEncode for flutter_rust_bridge::DartOpaque {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            <usize>::sse_encode(self.encode(), serializer);
        }
    }
    impl SseEncode for
        RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<Result<String,
        u32>>>> {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            let (ptr, size) = self.sse_encode_raw();
            <usize>::sse_encode(ptr, serializer);
            <i32>::sse_encode(size, serializer);
        }
    }
    impl SseEncode for
        RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<String>>>
        {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            let (ptr, size) = self.sse_encode_raw();
            <usize>::sse_encode(ptr, serializer);
            <i32>::sse_encode(size, serializer);
        }
    }
    impl SseEncode for
        RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Pin<Box<dyn Future<Output
        = Result<String, u32>> + Send + 'static>>>> {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            let (ptr, size) = self.sse_encode_raw();
            <usize>::sse_encode(ptr, serializer);
            <i32>::sse_encode(size, serializer);
        }
    }
    impl SseEncode for
        RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Result<String,
        u32>>> {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            let (ptr, size) = self.sse_encode_raw();
            <usize>::sse_encode(ptr, serializer);
            <i32>::sse_encode(size, serializer);
        }
    }
    impl SseEncode for String {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            <Vec<u8>>::sse_encode(self.into_bytes(), serializer);
        }
    }
    impl SseEncode for i32 {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            serializer.cursor.write_i32::<NativeEndian>(self).unwrap();
        }
    }
    impl SseEncode for Vec<u8> {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            <i32>::sse_encode(self.len() as _, serializer);
            for item in self { <u8>::sse_encode(item, serializer); }
        }
    }
    impl SseEncode for u8 {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            serializer.cursor.write_u8(self).unwrap();
        }
    }
    impl SseEncode for () {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {}
    }
    impl SseEncode for usize {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            serializer.cursor.write_u64::<NativeEndian>(self as _).unwrap();
        }
    }
    impl SseEncode for bool {
        fn sse_encode(self,
            serializer:
                &mut flutter_rust_bridge::for_generated::SseSerializer) {
            serializer.cursor.write_u8(self as _).unwrap();
        }
    }
    #[cfg(not(target_family = "wasm"))]
    #[path = "frb_generated.io.rs"]
    mod io {
        use super::*;
        use crate::api::minimal::*;
        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};
        pub trait NewWithNullPtr {
            fn new_with_null_ptr()
            -> Self;
        }
        impl<T> NewWithNullPtr for *mut T {
            fn new_with_null_ptr() -> Self { std::ptr::null_mut() }
        }
        #[no_mangle]
        pub extern "C" fn frb_get_rust_content_hash() -> i32 {
            FLUTTER_RUST_BRIDGE_CODEGEN_CONTENT_HASH
        }
        #[no_mangle]
        pub extern "C" fn frb_pde_ffi_dispatcher_primary(func_id: i32,
            port_: i64, ptr_: *mut u8, rust_vec_len_: i32, data_len_: i32) {
            pde_ffi_dispatcher_primary_impl(func_id, port_, ptr_,
                rust_vec_len_, data_len_)
        }
        #[no_mangle]
        pub extern "C" fn frb_pde_ffi_dispatcher_sync(func_id: i32,
            ptr_: *mut u8, rust_vec_len_: i32, data_len_: i32)
            -> ::flutter_rust_bridge::for_generated::WireSyncRust2DartSse {
            pde_ffi_dispatcher_sync_impl(func_id, ptr_, rust_vec_len_,
                data_len_)
        }
        #[no_mangle]
        pub extern "C" fn dart_fn_deliver_output(call_id: i32, ptr_: *mut u8,
            rust_vec_len_: i32, data_len_: i32) {
            let message =
                unsafe {
                    ::flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire(ptr_,
                        rust_vec_len_, data_len_)
                };
            FLUTTER_RUST_BRIDGE_HANDLER.dart_fn_handle_output(call_id,
                message)
        }
        impl CstDecode<DartFnFuture<Result<String, u32>>> for usize {
            fn cst_decode(self) -> DartFnFuture<Result<String, u32>> {
                CstDecode::<RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<Result<String,
                            u32>>>>>::cst_decode(self).rust_auto_opaque_decode_owned()
            }
        }
        impl CstDecode<DartFnFuture<String>> for usize {
            fn cst_decode(self) -> DartFnFuture<String> {
                CstDecode::<RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<String>>>>::cst_decode(self).rust_auto_opaque_decode_owned()
            }
        }
        impl CstDecode<Pin<Box<dyn Future<Output = Result<String, u32>> +
            Send + 'static>>> for usize {
            fn cst_decode(self)
                ->
                    Pin<Box<dyn Future<Output = Result<String, u32>> + Send +
                    'static>> {
                CstDecode::<RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Pin<Box<dyn Future<Output
                            = Result<String, u32>> + Send +
                            'static>>>>>::cst_decode(self).rust_auto_opaque_decode_owned()
            }
        }
        impl CstDecode<Result<String, u32>> for usize {
            fn cst_decode(self) -> Result<String, u32> {
                CstDecode::<RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Result<String,
                            u32>>>>::cst_decode(self).rust_auto_opaque_decode_owned()
            }
        }
        impl CstDecode<flutter_rust_bridge::DartOpaque> for
            *const std::ffi::c_void {
            fn cst_decode(self) -> flutter_rust_bridge::DartOpaque {
                unsafe {
                    flutter_rust_bridge::for_generated::cst_decode_dart_opaque(self
                            as _)
                }
            }
        }
        impl CstDecode<RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<Result<String,
            u32>>>>> for usize {
            fn cst_decode(self)
                ->
                    RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<Result<String,
                    u32>>>> {
                unsafe { decode_rust_opaque_nom(self as _) }
            }
        }
        impl CstDecode<RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<String>>>>
            for usize {
            fn cst_decode(self)
                ->
                    RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<String>>> {
                unsafe { decode_rust_opaque_nom(self as _) }
            }
        }
        impl CstDecode<RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Pin<Box<dyn Future<Output
            = Result<String, u32>> + Send + 'static>>>>> for usize {
            fn cst_decode(self)
                ->
                    RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Pin<Box<dyn Future<Output
                    = Result<String, u32>> + Send + 'static>>>> {
                unsafe { decode_rust_opaque_nom(self as _) }
            }
        }
        impl CstDecode<RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Result<String,
            u32>>>> for usize {
            fn cst_decode(self)
                ->
                    RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Result<String,
                    u32>>> {
                unsafe { decode_rust_opaque_nom(self as _) }
            }
        }
        impl CstDecode<String> for *mut wire_cst_list_prim_u_8_strict {
            fn cst_decode(self) -> String {
                let vec: Vec<u8> = self.cst_decode();
                String::from_utf8(vec).unwrap()
            }
        }
        impl CstDecode<Vec<u8>> for *mut wire_cst_list_prim_u_8_strict {
            fn cst_decode(self) -> Vec<u8> {
                unsafe {
                    let wrap =
                        flutter_rust_bridge::for_generated::box_from_leak_ptr(self);
                    flutter_rust_bridge::for_generated::vec_from_leak_ptr(wrap.ptr,
                        wrap.len)
                }
            }
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_wire_greet(port_:
                i64, name: *mut wire_cst_list_prim_u_8_strict) {
            wire_greet_impl(port_, name)
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_wire_hallo(name:
                *mut wire_cst_list_prim_u_8_strict)
            -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco {
            wire_hallo_impl(name)
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_wire_hey(port_: i64,
            name: *mut wire_cst_list_prim_u_8_strict) {
            wire_hey_impl(port_, name)
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_wire_init_app(port_:
                i64) {
            wire_init_app_impl(port_)
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_wire_minimal_adder(port_:
                i64, a: i32, b: i32) {
            wire_minimal_adder_impl(port_, a, b)
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_wire_rust_function(port_:
                i64, dart_callback: *const std::ffi::c_void) {
            wire_rust_function_impl(port_, dart_callback)
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_wire_yo(port_: i64,
            name: *mut wire_cst_list_prim_u_8_strict) {
            wire_yo_impl(port_, name)
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDartFnFutureResultStringu32(ptr:
                *const std::ffi::c_void) {
            unsafe {
                StdArc::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<Result<String,
                        u32>>>>::increment_strong_count(ptr as _);
            }
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDartFnFutureResultStringu32(ptr:
                *const std::ffi::c_void) {
            unsafe {
                StdArc::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<Result<String,
                        u32>>>>::decrement_strong_count(ptr as _);
            }
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDartFnFutureString(ptr:
                *const std::ffi::c_void) {
            unsafe {
                StdArc::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<String>>>::increment_strong_count(ptr
                        as _);
            }
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDartFnFutureString(ptr:
                *const std::ffi::c_void) {
            unsafe {
                StdArc::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DartFnFuture<String>>>::decrement_strong_count(ptr
                        as _);
            }
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPinBoxdynFutureOutputResultStringu32Sendstatic(ptr:
                *const std::ffi::c_void) {
            unsafe {
                StdArc::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Pin<Box<dyn Future<Output
                        = Result<String, u32>> + Send +
                        'static>>>>::increment_strong_count(ptr as _);
            }
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPinBoxdynFutureOutputResultStringu32Sendstatic(ptr:
                *const std::ffi::c_void) {
            unsafe {
                StdArc::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Pin<Box<dyn Future<Output
                        = Result<String, u32>> + Send +
                        'static>>>>::decrement_strong_count(ptr as _);
            }
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerResultStringu32(ptr:
                *const std::ffi::c_void) {
            unsafe {
                StdArc::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Result<String,
                        u32>>>::increment_strong_count(ptr as _);
            }
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerResultStringu32(ptr:
                *const std::ffi::c_void) {
            unsafe {
                StdArc::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Result<String,
                        u32>>>::decrement_strong_count(ptr as _);
            }
        }
        #[no_mangle]
        pub extern "C" fn frbgen_frb_example_dart_minimal_cst_new_list_prim_u_8_strict(len:
                i32) -> *mut wire_cst_list_prim_u_8_strict {
            let ans =
                wire_cst_list_prim_u_8_strict {
                    ptr: flutter_rust_bridge::for_generated::new_leak_vec_ptr(Default::default(),
                        len),
                    len,
                };
            flutter_rust_bridge::for_generated::new_leak_box_ptr(ans)
        }
        #[repr(C)]
        pub struct wire_cst_list_prim_u_8_strict {
            ptr: *mut u8,
            len: i32,
        }
        #[automatically_derived]
        impl ::core::clone::Clone for wire_cst_list_prim_u_8_strict {
            #[inline]
            fn clone(&self) -> wire_cst_list_prim_u_8_strict {
                let _: ::core::clone::AssertParamIsClone<*mut u8>;
                let _: ::core::clone::AssertParamIsClone<i32>;
                *self
            }
        }
        #[automatically_derived]
        impl ::core::marker::Copy for wire_cst_list_prim_u_8_strict { }
    }
    #[cfg(not(target_family = "wasm"))]
    pub use io::*;
}
 stderr=    Checking frb_example_dart_minimal v0.1.0 (/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust)
    Finished dev [unoptimized + debuginfo] target(s) in 0.07s


[2024-05-07T07:25:04.673Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping cargo_expand.rs into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/source/cargo_expand.rs"
[2024-05-07T07:25:04.678Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping read_rust_file/src/api/minimal.rs into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/source/read_rust_file/src/api/minimal.rs"
[2024-05-07T07:25:04.680Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/crates.rs:26] parse manifest_path="/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/Cargo.toml"
[2024-05-07T07:25:04.757Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:31] parse START info=ModuleInfo { visibility: Public, file_path: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/lib.rs", module_path: ["crate"] }
[2024-05-07T07:25:04.757Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:150] parse_syn_item_mod module_path=["crate", "api"]
[2024-05-07T07:25:04.758Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:202] parse_syn_item_mod_contentless module_path=["crate", "api"]
[2024-05-07T07:25:04.758Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:205] file_path_candidates "api" "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/lib.rs" ["/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/api.rs", "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/api/mod.rs", "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/lib/api.rs", "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/lib/api/mod.rs"]
[2024-05-07T07:25:04.758Z DEBUG frb_codegen/src/library/codegen/parser/reader.rs:22] read_rust_file rust_file_path="/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/api/mod.rs" module=Some("api")
[2024-05-07T07:25:04.758Z DEBUG frb_codegen/src/library/commands/cargo_expand.rs:31] CachedCargoExpand execute manifest_dir= rust_crate_dir="/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust"
[2024-05-07T07:25:04.759Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping read_rust_file/src/api/mod.rs into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/source/read_rust_file/src/api/mod.rs"
[2024-05-07T07:25:04.759Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:216] Trying to parse "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/api/mod.rs"
[2024-05-07T07:25:04.761Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:31] parse START info=ModuleInfo { visibility: Public, file_path: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/api/mod.rs", module_path: ["crate", "api"] }
[2024-05-07T07:25:04.761Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:150] parse_syn_item_mod module_path=["crate", "api", "minimal"]
[2024-05-07T07:25:04.761Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:180] parse_syn_item_mod_contentful module_path=["crate", "api", "minimal"]
[2024-05-07T07:25:04.761Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:31] parse START info=ModuleInfo { visibility: Public, file_path: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/api/mod.rs", module_path: ["crate", "api", "minimal"] }
[2024-05-07T07:25:04.761Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:77] parse END info=ModuleInfo { visibility: Public, file_path: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/api/mod.rs", module_path: ["crate", "api", "minimal"] }
[2024-05-07T07:25:04.761Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:77] parse END info=ModuleInfo { visibility: Public, file_path: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/api/mod.rs", module_path: ["crate", "api"] }
[2024-05-07T07:25:04.762Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:150] parse_syn_item_mod module_path=["crate", "frb_generated"]
[2024-05-07T07:25:04.762Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:202] parse_syn_item_mod_contentless module_path=["crate", "frb_generated"]
[2024-05-07T07:25:04.762Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:205] file_path_candidates "frb_generated" "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/lib.rs" ["/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.rs", "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated/mod.rs", "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/lib/frb_generated.rs", "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/lib/frb_generated/mod.rs"]
[2024-05-07T07:25:04.762Z DEBUG frb_codegen/src/library/codegen/parser/reader.rs:22] read_rust_file rust_file_path="/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.rs" module=Some("frb_generated")
[2024-05-07T07:25:04.762Z DEBUG frb_codegen/src/library/commands/cargo_expand.rs:31] CachedCargoExpand execute manifest_dir= rust_crate_dir="/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust"
[2024-05-07T07:25:04.764Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping read_rust_file/src/frb_generated.rs into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/source/read_rust_file/src/frb_generated.rs"
[2024-05-07T07:25:04.764Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:216] Trying to parse "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.rs"
[2024-05-07T07:25:04.799Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:31] parse START info=ModuleInfo { visibility: Inherited, file_path: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.rs", module_path: ["crate", "frb_generated"] }
[2024-05-07T07:25:04.799Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:101] parse_syn_item_struct_or_enum item_ident=Ident { sym: FrbWrapper, span: bytes(4374..4384) }
[2024-05-07T07:25:04.799Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:101] parse_syn_item_struct_or_enum item_ident=Ident { sym: MoiArc, span: bytes(5048..5054) }
[2024-05-07T07:25:04.799Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:124] parse_syn_item_struct_or_enum item_type=ItemType { attrs: [], vis: Visibility::Inherited, type_token: Type, ident: Ident { sym: ObjectId, span: bytes(8874..8882) }, generics: Generics { lt_token: None, params: [], gt_token: None, where_clause: None }, eq_token: Eq, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: usize, span: bytes(8885..8890) }, arguments: PathArguments::None }] } }, semi_token: Semi }
[2024-05-07T07:25:04.799Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:124] parse_syn_item_struct_or_enum item_type=ItemType { attrs: [], vis: Visibility::Public(Pub), type_token: Type, ident: Ident { sym: MoiArcPool, span: bytes(8905..8915) }, generics: Generics { lt_token: Some(Lt), params: [GenericParam::Type(TypeParam { attrs: [], ident: Ident { sym: T, span: bytes(8916..8917) }, colon_token: None, bounds: [], eq_token: None, default: None })], gt_token: Some(Gt), where_clause: None }, eq_token: Eq, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: std, span: bytes(8921..8924) }, arguments: PathArguments::None }, PathSep, PathSegment { ident: Ident { sym: sync, span: bytes(8926..8930) }, arguments: PathArguments::None }, PathSep, PathSegment { ident: Ident { sym: RwLock, span: bytes(8932..8938) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: MoiArcPoolInner, span: bytes(8939..8954) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: T, span: bytes(8955..8956) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } })], gt_token: Gt } }] } }, semi_token: Semi }
[2024-05-07T07:25:04.799Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:101] parse_syn_item_struct_or_enum item_ident=Ident { sym: MoiArcPoolInner, span: bytes(8975..8990) }
[2024-05-07T07:25:04.799Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:101] parse_syn_item_struct_or_enum item_ident=Ident { sym: IdGenerator, span: bytes(9283..9294) }
[2024-05-07T07:25:04.799Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:101] parse_syn_item_struct_or_enum item_ident=Ident { sym: MoiArcPoolValue, span: bytes(9867..9882) }
[2024-05-07T07:25:04.799Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:124] parse_syn_item_struct_or_enum item_type=ItemType { attrs: [Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::NameValue { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: doc, span: bytes(10291..10332) }, arguments: PathArguments::None }] }, eq_token: Eq, value: Expr::Lit { attrs: [], lit: Lit::Str { token: " Please refer to `RustOpaque` for doc." } } } }], vis: Visibility::Public(Pub), type_token: Type, ident: Ident { sym: RustOpaqueMoi, span: bytes(10346..10359) }, generics: Generics { lt_token: Some(Lt), params: [GenericParam::Type(TypeParam { attrs: [], ident: Ident { sym: T, span: bytes(10360..10361) }, colon_token: None, bounds: [], eq_token: None, default: None })], gt_token: Some(Gt), where_clause: None }, eq_token: Eq, ty: Type::Path { qself: None, path: Path { leading_colon: Some(PathSep), segments: [PathSegment { ident: Ident { sym: flutter_rust_bridge, span: bytes(10375..10394) }, arguments: PathArguments::None }, PathSep, PathSegment { ident: Ident { sym: for_generated, span: bytes(10396..10409) }, arguments: PathArguments::None }, PathSep, PathSegment { ident: Ident { sym: RustOpaqueBase, span: bytes(10411..10425) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: T, span: bytes(10426..10427) }, arguments: PathArguments::None }] } }), Comma, GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: MoiArc, span: bytes(10429..10435) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: T, span: bytes(10436..10437) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } })], gt_token: Gt } }] } }, semi_token: Semi }
[2024-05-07T07:25:04.799Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:124] parse_syn_item_struct_or_enum item_type=ItemType { attrs: [Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::NameValue { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: doc, span: bytes(10445..10557) }, arguments: PathArguments::None }] }, eq_token: Eq, value: Expr::Lit { attrs: [], lit: Lit::Str { token: " A wrapper to support [arbitrary Rust types](https://cjycode.com/flutter_rust_bridge/guides/types/arbitrary)." } } } }], vis: Visibility::Public(Pub), type_token: Type, ident: Ident { sym: RustOpaque, span: bytes(10571..10581) }, generics: Generics { lt_token: Some(Lt), params: [GenericParam::Type(TypeParam { attrs: [], ident: Ident { sym: T, span: bytes(10582..10583) }, colon_token: None, bounds: [], eq_token: None, default: None })], gt_token: Some(Gt), where_clause: None }, eq_token: Eq, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: RustOpaqueNom, span: bytes(10587..10600) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: T, span: bytes(10601..10602) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } }, semi_token: Semi }
[2024-05-07T07:25:04.799Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:124] parse_syn_item_struct_or_enum item_type=ItemType { attrs: [Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::NameValue { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: doc, span: bytes(10659..10704) }, arguments: PathArguments::None }] }, eq_token: Eq, value: Expr::Lit { attrs: [], lit: Lit::Str { token: " Please refer to `RustAutoOpaque` for doc." } } } }], vis: Visibility::Public(Pub), type_token: Type, ident: Ident { sym: RustAutoOpaqueMoi, span: bytes(10718..10735) }, generics: Generics { lt_token: Some(Lt), params: [GenericParam::Type(TypeParam { attrs: [], ident: Ident { sym: T, span: bytes(10736..10737) }, colon_token: None, bounds: [], eq_token: None, default: None })], gt_token: Some(Gt), where_clause: None }, eq_token: Eq, ty: Type::Path { qself: None, path: Path { leading_colon: Some(PathSep), segments: [PathSegment { ident: Ident { sym: flutter_rust_bridge, span: bytes(10751..10770) }, arguments: PathArguments::None }, PathSep, PathSegment { ident: Ident { sym: for_generated, span: bytes(10772..10785) }, arguments: PathArguments::None }, PathSep, PathSegment { ident: Ident { sym: RustAutoOpaqueBase, span: bytes(10787..10805) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: T, span: bytes(10806..10807) }, arguments: PathArguments::None }] } }), Comma, GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: MoiArc, span: bytes(10817..10823) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: Some(PathSep), segments: [PathSegment { ident: Ident { sym: flutter_rust_bridge, span: bytes(10826..10845) }, arguments: PathArguments::None }, PathSep, PathSegment { ident: Ident { sym: for_generated, span: bytes(10847..10860) }, arguments: PathArguments::None }, PathSep, PathSegment { ident: Ident { sym: RustAutoOpaqueInner, span: bytes(10862..10881) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: T, span: bytes(10882..10883) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } })], gt_token: Gt } }] } })], gt_token: Gt } }] } }, semi_token: Semi }
[2024-05-07T07:25:04.799Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:124] parse_syn_item_struct_or_enum item_type=ItemType { attrs: [Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::NameValue { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: doc, span: bytes(10892..10958) }, arguments: PathArguments::None }] }, eq_token: Eq, value: Expr::Lit { attrs: [], lit: Lit::Str { token: " Usually this is unneeded, and just write down arbitrary types." } } } }, Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::NameValue { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: doc, span: bytes(10963..11043) }, arguments: PathArguments::None }] }, eq_token: Eq, value: Expr::Lit { attrs: [], lit: Lit::Str { token: " However, when you need arbitrary types at places that are not supported yet," } } } }, Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::NameValue { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: doc, span: bytes(11048..11094) }, arguments: PathArguments::None }] }, eq_token: Eq, value: Expr::Lit { attrs: [], lit: Lit::Str { token: " use `RustOpaqueOpaque<YourArbitraryType>`." } } } }], vis: Visibility::Public(Pub), type_token: Type, ident: Ident { sym: RustAutoOpaque, span: bytes(11108..11122) }, generics: Generics { lt_token: Some(Lt), params: [GenericParam::Type(TypeParam { attrs: [], ident: Ident { sym: T, span: bytes(11123..11124) }, colon_token: None, bounds: [], eq_token: None, default: None })], gt_token: Some(Gt), where_clause: None }, eq_token: Eq, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: RustAutoOpaqueNom, span: bytes(11128..11145) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { sym: T, span: bytes(11146..11147) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } }, semi_token: Semi }
[2024-05-07T07:25:04.800Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:101] parse_syn_item_struct_or_enum item_ident=Ident { sym: StreamSink, span: bytes(12803..12813) }
[2024-05-07T07:25:04.800Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:101] parse_syn_item_struct_or_enum item_ident=Ident { sym: FLUTTER_RUST_BRIDGE_HANDLER, span: bytes(15671..15698) }
[2024-05-07T07:25:04.800Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:150] parse_syn_item_mod module_path=["crate", "frb_generated", "io"]
[2024-05-07T07:25:04.800Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:180] parse_syn_item_mod_contentful module_path=["crate", "frb_generated", "io"]
[2024-05-07T07:25:04.800Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:31] parse START info=ModuleInfo { visibility: Inherited, file_path: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.rs", module_path: ["crate", "frb_generated", "io"] }
[2024-05-07T07:25:04.800Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:101] parse_syn_item_struct_or_enum item_ident=Ident { sym: wire_cst_list_prim_u_8_strict, span: bytes(53458..53487) }
[2024-05-07T07:25:04.800Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:77] parse END info=ModuleInfo { visibility: Inherited, file_path: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.rs", module_path: ["crate", "frb_generated", "io"] }
[2024-05-07T07:25:04.802Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:77] parse END info=ModuleInfo { visibility: Inherited, file_path: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/frb_generated.rs", module_path: ["crate", "frb_generated"] }
[2024-05-07T07:25:04.804Z DEBUG frb_codegen/src/library/codegen/parser/source_graph/module_parser.rs:77] parse END info=ModuleInfo { visibility: Public, file_path: "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/src/lib.rs", module_path: ["crate"] }
[2024-05-07T07:25:04.806Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping source_graph.json into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/source_graph/source_graph.json"
[2024-05-07T07:25:04.806Z DEBUG frb_codegen/src/library/codegen/parser/function_parser/mod.rs:70] parse_function function name: Ident { sym: init_app, span: bytes(202..210) }
[2024-05-07T07:25:04.807Z DEBUG frb_codegen/src/library/codegen/parser/function_parser/mod.rs:70] parse_function function name: Ident { sym: minimal_adder, span: bytes(281..294) }
[2024-05-07T07:25:04.807Z DEBUG frb_codegen/src/library/codegen/parser/function_parser/mod.rs:70] parse_function function name: Ident { sym: greet, span: bytes(343..348) }
[2024-05-07T07:25:04.807Z DEBUG frb_codegen/src/library/codegen/parser/function_parser/mod.rs:70] parse_function function name: Ident { sym: hey, span: bytes(629..632) }
[2024-05-07T07:25:04.808Z DEBUG frb_codegen/src/library/codegen/parser/function_parser/mod.rs:70] parse_function function name: Ident { sym: yo, span: bytes(1017..1019) }
[2024-05-07T07:25:04.808Z DEBUG frb_codegen/src/library/codegen/parser/function_parser/mod.rs:70] parse_function function name: Ident { sym: hallo, span: bytes(1288..1293) }
[2024-05-07T07:25:04.808Z DEBUG frb_codegen/src/library/codegen/parser/function_parser/mod.rs:70] parse_function function name: Ident { sym: rust_function, span: bytes(1547..1560) }
[2024-05-07T07:25:04.814Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping ir_pack.json into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/ir/ir_pack.json"
[2024-05-07T07:25:04.825Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping api_dart.json into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_info/api_dart.json"
[2024-05-07T07:25:04.832Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping api_dart.json into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_spec/api_dart.json"
[2024-05-07T07:25:04.832Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping api_dart/api/minimal.dart into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_text/api_dart/api/minimal.dart"
[2024-05-07T07:25:04.840Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping wire_rust.json into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_info/wire_rust.json"
[2024-05-07T07:25:04.844Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping wire_rust.json into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_spec/wire_rust.json"
[2024-05-07T07:25:04.844Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping wire_rust/Common.rs into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_text/wire_rust/Common.rs"
[2024-05-07T07:25:04.845Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping wire_rust/Io.rs into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_text/wire_rust/Io.rs"
[2024-05-07T07:25:04.845Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping wire_rust/Web.rs into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_text/wire_rust/Web.rs"
[2024-05-07T07:25:04.845Z DEBUG frb_codegen/src/library/commands/cbindgen.rs:26] execute cbindgen rust_crate_dir="/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust" c_output_path="/tmp/.tmp4PDyaG.h"
[2024-05-07T07:25:04.846Z DEBUG frb_codegen/src/library/commands/cbindgen.rs:46] cbindgen config: Config {
    header: None,
    includes: [],
    sys_includes: [
        "stdbool.h",
        "stdint.h",
        "stdlib.h",
    ],
    after_includes: Some(
        "// EXTRA BEGIN\ntypedef struct DartCObject *WireSyncRust2DartDco;\ntypedef struct WireSyncRust2DartSse {\n  uint8_t *ptr;\n  int32_t len;\n} WireSyncRust2DartSse;\n\ntypedef int64_t DartPort;\ntypedef bool (*DartPostCObjectFnType)(DartPort port_id, void *message);\nvoid store_dart_post_cobject(DartPostCObjectFnType ptr);\n// EXTRA END\ntypedef struct _Dart_Handle* Dart_Handle;",
    ),
    trailer: None,
    include_guard: None,
    pragma_once: false,
    no_includes: true,
    autogen_warning: None,
    include_version: false,
    namespace: None,
    namespaces: None,
    using_namespaces: None,
    braces: SameLine,
    line_length: 100,
    tab_width: 2,
    line_endings: LF,
    language: C,
    cpp_compat: false,
    style: Both,
    sort_by: None,
    usize_is_size_t: false,
    parse: ParseConfig {
        parse_deps: false,
        include: None,
        exclude: [],
        expand: ParseExpandConfig {
            crates: [],
            all_features: false,
            default_features: true,
            features: None,
            profile: Debug,
        },
        clean: false,
        extra_bindings: [],
    },
    export: ExportConfig {
        include: [
            "wire_cst_list_prim_u_8_strict",
        ],
        exclude: [],
        rename: {},
        pre_body: {},
        body: {},
        prefix: None,
        item_types: [],
        renaming_overrides_prefixing: false,
        mangle: MangleConfig {
            rename_types: None,
            remove_underscores: false,
        },
    },
    macro_expansion: MacroExpansionConfig {
        bitflags: false,
    },
    layout: LayoutConfig {
        packed: None,
        aligned_n: None,
    },
    function: FunctionConfig {
        prefix: None,
        postfix: None,
        must_use: None,
        args: Auto,
        rename_args: None,
        swift_name_macro: None,
        sort_by: None,
        no_return: None,
    },
    structure: StructConfig {
        rename_fields: None,
        derive_constructor: false,
        derive_eq: false,
        derive_neq: false,
        derive_lt: false,
        derive_lte: false,
        derive_gt: false,
        derive_gte: false,
        derive_ostream: false,
        associated_constants_in_body: false,
        must_use: None,
    },
    enumeration: EnumConfig {
        rename_variants: None,
        rename_variant_name_fields: SnakeCase,
        add_sentinel: false,
        prefix_with_name: false,
        derive_helper_methods: false,
        derive_const_casts: false,
        derive_mut_casts: false,
        cast_assert_name: None,
        must_use: None,
        derive_tagged_enum_destructor: false,
        derive_tagged_enum_copy_constructor: false,
        derive_tagged_enum_copy_assignment: false,
        derive_ostream: false,
        enum_class: true,
        private_default_tagged_enum_constructor: false,
    },
    constant: ConstantConfig {
        allow_static_const: true,
        allow_constexpr: true,
        sort_by: None,
    },
    defines: {},
    documentation: true,
    documentation_style: Auto,
    documentation_length: Full,
    pointer: PtrConfig {
        non_null_attribute: None,
    },
    only_target_dependencies: false,
    cython: CythonConfig {
        header: None,
        cimports: {},
    },
}
[2024-05-07T07:25:04.846Z DEBUG frb_codegen/src/library/commands/cbindgen.rs:73] cbindgen parsed_crate_dir=/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust
[2024-05-07T07:25:04.915Z DEBUG /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:142] Parsing crate frb_example_dart_minimal
[2024-05-07T07:25:04.933Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:850] Skip frb_example_dart_minimal::FLUTTER_RUST_BRIDGE_CODEGEN_VERSION - (not `pub`).
[2024-05-07T07:25:04.933Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:850] Skip frb_example_dart_minimal::FLUTTER_RUST_BRIDGE_CODEGEN_CONTENT_HASH - (not `pub`).
[2024-05-07T07:25:04.940Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_wire_greet.
[2024-05-07T07:25:04.941Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_wire_hallo.
[2024-05-07T07:25:04.941Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_wire_hey.
[2024-05-07T07:25:04.941Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_wire_init_app.
[2024-05-07T07:25:04.941Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_wire_minimal_adder.
[2024-05-07T07:25:04.941Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_wire_rust_function.
[2024-05-07T07:25:04.941Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_wire_yo.
[2024-05-07T07:25:04.941Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDartFnFutureResultStringu32.
[2024-05-07T07:25:04.941Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDartFnFutureResultStringu32.
[2024-05-07T07:25:04.941Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDartFnFutureString.
[2024-05-07T07:25:04.941Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerDartFnFutureString.
[2024-05-07T07:25:04.942Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPinBoxdynFutureOutputResultStringu32Sendstatic.
[2024-05-07T07:25:04.942Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPinBoxdynFutureOutputResultStringu32Sendstatic.
[2024-05-07T07:25:04.942Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerResultStringu32.
[2024-05-07T07:25:04.942Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerResultStringu32.
[2024-05-07T07:25:04.942Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:711] Take frb_example_dart_minimal::frbgen_frb_example_dart_minimal_cst_new_list_prim_u_8_strict.
[2024-05-07T07:25:04.942Z INFO /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/parser.rs:925] Take frb_example_dart_minimal::wire_cst_list_prim_u_8_strict.
[2024-05-07T07:25:04.944Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/ty.rs:835] Can't find WireSyncRust2DartDco. This usually means that this type was incompatible or not found.
[2024-05-07T07:25:04.944Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.944Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.945Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.946Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.946Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.946Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.946Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.946Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.946Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.946Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.946Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.946Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.946Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.946Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.946Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.946Z WARN /home/dirk/.local/share/mise/installs/rust/nightly/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.24.5/src/bindgen/ir/cfg.rs:235] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2024-05-07T07:25:04.947Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping wire_c.json into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_spec/wire_c.json"
[2024-05-07T07:25:04.947Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping wire_c/content.h into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_text/wire_c/content.h"
[2024-05-07T07:25:04.955Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping wire_dart.json into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_info/wire_dart.json"
[2024-05-07T07:25:04.956Z DEBUG frb_codegen/src/library/commands/ffigen.rs:59] execute ffigen c_path="/tmp/.tmpgwE2er.h" dart_path="/tmp/.tmpgwE2er.h" llvm_path=["/opt/homebrew/opt/llvm", "/usr/local/opt/llvm", "/usr/lib/llvm-9", "/usr/lib/llvm-10", "/usr/lib/llvm-11", "/usr/lib/llvm-12", "/usr/lib/llvm-13", "/usr/lib/llvm-14", "/usr/lib/", "/usr/lib64/", "C:/Program Files/llvm", "C:/msys64/mingw64"]
[2024-05-07T07:25:04.956Z DEBUG frb_codegen/src/library/commands/ffigen.rs:79] ffigen_raw config="{\"output\":\"/tmp/.tmpCsnT9x\",\"name\":\"RustLibWire\",\"description\":\"generated by flutter_rust_bridge\",\"headers\":{\"entry-points\":[\"/tmp/.tmpgwE2er.h\"],\"include-directives\":[\"/tmp/.tmpgwE2er.h\"]},\"comments\":false,\"preamble\":\"// ignore_for_file: camel_case_types, non_constant_identifier_names, avoid_positional_boolean_parameters, annotate_overrides, constant_identifier_names\",\"llvm-path\":[\"/opt/homebrew/opt/llvm\",\"/usr/local/opt/llvm\",\"/usr/lib/llvm-9\",\"/usr/lib/llvm-10\",\"/usr/lib/llvm-11\",\"/usr/lib/llvm-12\",\"/usr/lib/llvm-13\",\"/usr/lib/llvm-14\",\"/usr/lib/\",\"/usr/lib64/\",\"C:/Program Files/llvm\",\"C:/msys64/mingw64\"],\"compiler-opts\":[],\"functions\":{\"rename\":{\"frbgen_frb_example_dart_minimal_(.*)\":\"$1\"}},\"ignore-source-errors\":true}" config_file=NamedTempFile("/tmp/.tmpYrZB44")
[2024-05-07T07:25:04.956Z DEBUG frb_codegen/src/library/utils/dart_repository/dart_repo.rs:22] Guessing toolchain the runner is run into
[2024-05-07T07:25:04.960Z DEBUG frb_codegen/src/library/commands/command_runner.rs:129] execute command: bin=sh args="-c \"dart\" \"--enable-experiment=native-assets\" \"run\" \"ffigen\" \"--config\" \"/tmp/.tmpYrZB44\"" current_dir=Some("/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal") cmd=cd "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal" && FRB_SIMPLE_BUILD_SKIP="1" "sh" "-c" "\"dart\" \"--enable-experiment=native-assets\" \"run\" \"ffigen\" \"--config\" \"/tmp/.tmpYrZB44\""
[2024-05-07T07:25:06.638Z DEBUG frb_codegen/src/library/commands/command_runner.rs:140] command=cd "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal" && FRB_SIMPLE_BUILD_SKIP="1" "sh" "-c" "\"dart\" \"--enable-experiment=native-assets\" \"run\" \"ffigen\" \"--config\" \"/tmp/.tmpYrZB44\"" stdout=Running in Directory: '/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal'
Input Headers: [/tmp/.tmpgwE2er.h]
[WARNING]: No definition found for declaration - (Cursor) spelling: DartCObject, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct DartCObject, usr: c:@S@DartCObject
[WARNING]: No definition found for declaration - (Cursor) spelling: DartCObject, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct DartCObject, usr: c:@S@DartCObject
[WARNING]: No definition found for declaration - (Cursor) spelling: _Dart_Handle, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct _Dart_Handle, usr: c:@S@_Dart_Handle
[WARNING]: No definition found for declaration - (Cursor) spelling: _Dart_Handle, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct _Dart_Handle, usr: c:@S@_Dart_Handle
[WARNING]: No definition found for declaration - (Cursor) spelling: DartCObject, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct DartCObject, usr: c:@S@DartCObject
[WARNING]: Generated declaration '_Dart_Handle' starts with '_' and therefore will be private.
Finished, Bindings generated in /tmp/.tmpCsnT9x
 stderr=
[2024-05-07T07:25:06.654Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping wire_dart.json into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_spec/wire_dart.json"
[2024-05-07T07:25:06.655Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping wire_dart/Common.dart into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_text/wire_dart/Common.dart"
[2024-05-07T07:25:06.656Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping wire_dart/Io.dart into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_text/wire_dart/Io.dart"
[2024-05-07T07:25:06.656Z DEBUG frb_codegen/src/library/codegen/dumper/mod.rs:97] Dumping wire_dart/Web.dart into "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust/target/frb_dump/generator_text/wire_dart/Web.dart"
[2024-05-07T07:25:06.658Z DEBUG frb_codegen/src/library/commands/format_dart.rs:13] execute format_dart paths=["lib/src/rust/api/minimal.dart", "lib/src/rust/frb_generated.dart", "lib/src/rust/frb_generated.io.dart", "lib/src/rust/frb_generated.web.dart"] line_length=80
[2024-05-07T07:25:06.658Z DEBUG frb_codegen/src/library/commands/command_runner.rs:129] execute command: bin=sh args="-c \"dart\" \"format\" \"--line-length\" \"80\" \"lib/src/rust/api/minimal.dart\" \"lib/src/rust/frb_generated.dart\" \"lib/src/rust/frb_generated.io.dart\" \"lib/src/rust/frb_generated.web.dart\"" current_dir=Some("/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal") cmd=cd "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal" && "sh" "-c" "\"dart\" \"format\" \"--line-length\" \"80\" \"lib/src/rust/api/minimal.dart\" \"lib/src/rust/frb_generated.dart\" \"lib/src/rust/frb_generated.io.dart\" \"lib/src/rust/frb_generated.web.dart\""
[2024-05-07T07:25:07.190Z DEBUG frb_codegen/src/library/commands/command_runner.rs:140] command=cd "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal" && "sh" "-c" "\"dart\" \"format\" \"--line-length\" \"80\" \"lib/src/rust/api/minimal.dart\" \"lib/src/rust/frb_generated.dart\" \"lib/src/rust/frb_generated.io.dart\" \"lib/src/rust/frb_generated.web.dart\"" stdout=Formatted lib/src/rust/api/minimal.dart
Formatted lib/src/rust/frb_generated.dart
Formatted lib/src/rust/frb_generated.io.dart
Formatted lib/src/rust/frb_generated.web.dart
Formatted 4 files (4 changed) in 0.41 seconds.
 stderr=
[2024-05-07T07:25:07.191Z DEBUG frb_codegen/src/library/commands/format_rust.rs:9] execute format_rust paths=["src/frb_generated.rs", "src/frb_generated.io.rs", "src/frb_generated.web.rs"]
[2024-05-07T07:25:07.191Z DEBUG frb_codegen/src/library/commands/command_runner.rs:129] execute command: bin=sh args="-c \"rustfmt\" \"--edition\" \"2018\" \"src/frb_generated.rs\" \"src/frb_generated.io.rs\" \"src/frb_generated.web.rs\"" current_dir=Some("/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust") cmd=cd "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust" && "sh" "-c" "\"rustfmt\" \"--edition\" \"2018\" \"src/frb_generated.rs\" \"src/frb_generated.io.rs\" \"src/frb_generated.web.rs\""
[2024-05-07T07:25:07.245Z DEBUG frb_codegen/src/library/commands/command_runner.rs:140] command=cd "/home/dirk/devel/flutter_rust_bridge/frb_example/dart_minimal/rust" && "sh" "-c" "\"rustfmt\" \"--edition\" \"2018\" \"src/frb_generated.rs\" \"src/frb_generated.io.rs\" \"src/frb_generated.web.rs\"" stdout= stderr=Warning: can't set `group_imports = One`, unstable features are only available in nightly channel.
Warning: can't set `group_imports = One`, unstable features are only available in nightly channel.
Warning: can't set `group_imports = One`, unstable features are only available in nightly channel.

Done!

Expected behavior

No response

Generated binding code

No response

OS

No response

Version of flutter_rust_bridge_codegen

No response

Flutter info

No response

Version of clang++

No response

Additional context

No response

@vhdirk vhdirk added the bug Something isn't working label May 7, 2024
@fzyzcjy
Copy link
Owner

fzyzcjy commented May 7, 2024

Similar to that one, I guess it is because of the parser does not understand it correctly, and feel free to PR or alternatively I fix it.

@vhdirk
Copy link
Author

vhdirk commented May 7, 2024

I'll see what I can do, but as this is sort of a 'sidequest' for me, I can't allocate an enormous amount of time

@fzyzcjy
Copy link
Owner

fzyzcjy commented May 7, 2024

Sure! I will also try to squeeze some time to fix it, but may not guarantee to be very soon.

Copy link
Contributor

github-actions bot commented Jun 3, 2024

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jun 3, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants