Struct bevy_reflect::serde::UntypedReflectDeserializer
source · pub struct UntypedReflectDeserializer<'a> { /* private fields */ }
Expand description
A general purpose deserializer for reflected types.
This will return a Box<dyn Reflect>
containing the deserialized data.
For non-value types, this Box
will contain the dynamic equivalent. For example, a
deserialized struct will return a DynamicStruct
and a Vec
will return a
DynamicList
. For value types, this Box
will contain the actual value.
For example, an f32
will contain the actual f32
type.
This means that converting to any concrete instance will require the use of
FromReflect
, or downcasting for value types.
Because the type isn’t known ahead of time, the serialized data must take the form of a map containing the following entries (in order):
type
: The full type pathvalue
: The serialized value of the reflected type
If the type is already known and the TypeInfo
for it can be retrieved,
TypedReflectDeserializer
may be used instead to avoid requiring these entries.
Implementations§
source§impl<'a> UntypedReflectDeserializer<'a>
impl<'a> UntypedReflectDeserializer<'a>
pub fn new(registry: &'a TypeRegistry) -> Self
Trait Implementations§
source§impl<'a, 'de> DeserializeSeed<'de> for UntypedReflectDeserializer<'a>
impl<'a, 'de> DeserializeSeed<'de> for UntypedReflectDeserializer<'a>
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for UntypedReflectDeserializer<'a>
impl<'a> Send for UntypedReflectDeserializer<'a>
impl<'a> Sync for UntypedReflectDeserializer<'a>
impl<'a> Unpin for UntypedReflectDeserializer<'a>
impl<'a> !UnwindSafe for UntypedReflectDeserializer<'a>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.