pub trait MessageT: Default + Send + Sync {
type Raw: FFIToRust<Target = Self> + Default + Drop + Send + Sync;
type RawRef: FFIFromRust<From = Self>;
fn type_support() -> *const c_void;
unsafe fn from_raw(from: &Self::Raw) -> Self { ... }
unsafe fn to_raw_ref(&self) -> Self::RawRef { ... }
}