bevy_reflect/serde/ser/
serializable.rs

1use alloc::boxed::Box;
2use core::ops::Deref;
3
4/// A type-erased serializable value.
5pub enum Serializable<'a> {
6    /// An owned serializable value.
7    Owned(Box<dyn erased_serde::Serialize + 'a>),
8    /// An immutable reference to a serializable value.
9    Borrowed(&'a dyn erased_serde::Serialize),
10}
11
12impl<'a> Deref for Serializable<'a> {
13    type Target = dyn erased_serde::Serialize + 'a;
14
15    fn deref(&self) -> &Self::Target {
16        match self {
17            Serializable::Borrowed(serialize) => serialize,
18            Serializable::Owned(serialize) => serialize,
19        }
20    }
21}