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    Owned(Box<dyn erased_serde::Serialize + 'a>),
7    Borrowed(&'a dyn erased_serde::Serialize),
8}
9
10impl<'a> Deref for Serializable<'a> {
11    type Target = dyn erased_serde::Serialize + 'a;
12
13    fn deref(&self) -> &Self::Target {
14        match self {
15            Serializable::Borrowed(serialize) => serialize,
16            Serializable::Owned(serialize) => serialize,
17        }
18    }
19}