Skip to main content

DeserializeUnsized

Trait DeserializeUnsized 

Source
pub trait DeserializeUnsized<T: Pointee + ?Sized, D: Fallible + ?Sized>: ArchivePointee {
    // Required methods
    unsafe fn deserialize_unsized(
        &self,
        deserializer: &mut D,
        out: *mut T,
    ) -> Result<(), D::Error>;
    fn deserialize_metadata(&self) -> T::Metadata;
}
Expand description

A counterpart of Deserialize that’s suitable for unsized types.

Required Methods§

Source

unsafe fn deserialize_unsized( &self, deserializer: &mut D, out: *mut T, ) -> Result<(), D::Error>

Deserializes a reference to the given value.

§Safety

out must be non-null, properly-aligned, and valid for writes. It must be allocated according to the layout of the deserialized metadata.

Source

fn deserialize_metadata(&self) -> T::Metadata

Deserializes the metadata for the given type.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<D: Fallible + ?Sized> DeserializeUnsized<CStr, D> for CStr

Source§

impl<D: Fallible + ?Sized> DeserializeUnsized<str, D> for str

Source§

impl<T, U, D> DeserializeUnsized<[U], D> for [T]
where T: Deserialize<U, D>, D: Fallible + ?Sized,

Source§

unsafe fn deserialize_unsized( &self, deserializer: &mut D, out: *mut [U], ) -> Result<(), D::Error>

Source§

fn deserialize_metadata(&self) -> <[U] as Pointee>::Metadata

Implementors§

Source§

impl<T, D> DeserializeUnsized<T, D> for T::Archived
where T: Archive, D: Fallible + ?Sized, T::Archived: Deserialize<T, D>,