1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
use downcast_rs::{impl_downcast, DowncastSync}; #[cfg(feature = "serde-serialize")] use erased_serde::Serialize; /// Piece of data that may be serializable. pub trait MaybeSerializableData: DowncastSync { /// Convert this shape as a serializable entity. #[cfg(feature = "serde-serialize")] fn as_serialize(&self) -> Option<(u32, &dyn Serialize)> { None } /// Clones `self`. fn clone_dyn(&self) -> Box<dyn MaybeSerializableData>; } impl_downcast!(sync MaybeSerializableData);