Trait rkyv::de::SharedDeserializer [−][src]
pub trait SharedDeserializer: Deserializer { fn deserialize_shared<T: ArchiveUnsized + ?Sized, P: SharedPointer + 'static, F: FnOnce(*mut T) -> P>(
&mut self,
value: &T::Archived,
to_shared: F
) -> Result<*const T, Self::Error>
where
T::Archived: DeserializeUnsized<T, Self>; }
A context that provides shared memory support.
Shared pointers require this kind of context to deserialize.
Required methods
fn deserialize_shared<T: ArchiveUnsized + ?Sized, P: SharedPointer + 'static, F: FnOnce(*mut T) -> P>(
&mut self,
value: &T::Archived,
to_shared: F
) -> Result<*const T, Self::Error> where
T::Archived: DeserializeUnsized<T, Self>,
[src]
&mut self,
value: &T::Archived,
to_shared: F
) -> Result<*const T, Self::Error> where
T::Archived: DeserializeUnsized<T, Self>,
Checks whether the given reference has been deserialized and either uses the existing shared
pointer to it, or deserializes it and converts it to a shared pointer with to_shared
.
Implementors
impl<D: Deserializer> SharedDeserializer for SharedDeserializerAdapter<D>
[src]
impl<D: Deserializer> SharedDeserializer for SharedDeserializerAdapter<D>
[src]fn deserialize_shared<T: ArchiveUnsized + ?Sized, P: SharedPointer + 'static, F: FnOnce(*mut T) -> P>(
&mut self,
value: &T::Archived,
to_shared: F
) -> Result<*const T, Self::Error> where
T::Archived: DeserializeUnsized<T, Self>,
[src]
&mut self,
value: &T::Archived,
to_shared: F
) -> Result<*const T, Self::Error> where
T::Archived: DeserializeUnsized<T, Self>,