flutter_rust_bridge/rust_opaque/
mod.rs1pub(crate) mod dart2rust;
2pub(crate) mod rust2dart;
3pub(crate) mod utils;
4
5use crate::for_generated::{BaseArc, StdArc};
6use std::marker::PhantomData;
7
8#[repr(transparent)]
10#[derive(Debug)]
11pub struct RustOpaqueBase<T: ?Sized + 'static, A: BaseArc<T>> {
12 arc: A,
13 _phantom: PhantomData<T>,
14}
15
16pub type RustOpaqueNom<T> = RustOpaqueBase<T, StdArc<T>>;
20
21#[doc(hidden)]
22#[macro_export]
23macro_rules! frb_generated_rust_opaque_def {
24 (default_rust_opaque = $default_rust_opaque:ident) => {
25 use $crate::for_generated::StdArc;
26 use $crate::RustOpaqueNom;
27
28 pub type RustOpaqueMoi<T> = $crate::for_generated::RustOpaqueBase<T, MoiArc<T>>;
30
31 pub type RustOpaque<T> = $default_rust_opaque<T>;
33 };
34}
35
36#[deprecated(note = "It is empty trait and can be directly deleted")]
38pub trait DartSafe {}
39
40#[allow(deprecated)]
41impl<T> DartSafe for T {}