pub(crate) mod dart2rust;
pub(crate) mod rust2dart;
pub(crate) mod utils;
use crate::for_generated::{BaseArc, StdArc};
use std::marker::PhantomData;
#[repr(transparent)]
#[derive(Debug)]
pub struct RustOpaqueBase<T: ?Sized + 'static, A: BaseArc<T>> {
arc: A,
_phantom: PhantomData<T>,
}
pub type RustOpaqueNom<T> = RustOpaqueBase<T, StdArc<T>>;
#[doc(hidden)]
#[macro_export]
macro_rules! frb_generated_rust_opaque_def {
(default_rust_opaque = $default_rust_opaque:ident) => {
use $crate::for_generated::StdArc;
use $crate::RustOpaqueNom;
pub type RustOpaqueMoi<T> = $crate::for_generated::RustOpaqueBase<T, MoiArc<T>>;
pub type RustOpaque<T> = $default_rust_opaque<T>;
};
}
#[deprecated(note = "It is empty trait and can be directly deleted")]
pub trait DartSafe {}
#[allow(deprecated)]
impl<T> DartSafe for T {}