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}