pub struct DataView<T, D = AlignedVec>{ /* private fields */ }
Expand description
A block of data that can be accessed as if it is the archived value T
.
This allows for safe, true zero-copy deserialization avoiding unnecessary allocations if the situation does not require having an owned version of the value.
Implementations§
Source§impl<T, D> DataView<T, D>where
T: Archive,
T::Archived: CheckBytes<DefaultValidator<'static>> + 'static,
D: Deref<Target = [u8]> + Send + Sync,
impl<T, D> DataView<T, D>where
T: Archive,
T::Archived: CheckBytes<DefaultValidator<'static>> + 'static,
D: Deref<Target = [u8]> + Send + Sync,
Source§impl<T, D> DataView<T, D>where
T: Archive,
T::Archived: Deserialize<T, SharedDeserializeMap> + 'static,
D: Deref<Target = [u8]> + Send + Sync,
impl<T, D> DataView<T, D>where
T: Archive,
T::Archived: Deserialize<T, SharedDeserializeMap> + 'static,
D: Deref<Target = [u8]> + Send + Sync,
Sourcepub fn to_owned(&self) -> Result<T, InvalidView>
pub fn to_owned(&self) -> Result<T, InvalidView>
Deserializes the view into it’s owned value T.
Trait Implementations§
Source§impl<T, D> Clone for DataView<T, D>where
T: Archive,
T::Archived: CheckBytes<DefaultValidator<'static>> + Debug,
D: Deref<Target = [u8]> + Send + Sync + Clone,
impl<T, D> Clone for DataView<T, D>where
T: Archive,
T::Archived: CheckBytes<DefaultValidator<'static>> + Debug,
D: Deref<Target = [u8]> + Send + Sync + Clone,
Source§impl<T, D> Debug for DataView<T, D>where
T: Archive,
T::Archived: CheckBytes<DefaultValidator<'static>> + Debug,
D: Deref<Target = [u8]> + Send + Sync,
impl<T, D> Debug for DataView<T, D>where
T: Archive,
T::Archived: CheckBytes<DefaultValidator<'static>> + Debug,
D: Deref<Target = [u8]> + Send + Sync,
Source§impl<T, D> Deref for DataView<T, D>where
T: Archive,
T::Archived: CheckBytes<DefaultValidator<'static>>,
D: Deref<Target = [u8]> + Send + Sync,
impl<T, D> Deref for DataView<T, D>where
T: Archive,
T::Archived: CheckBytes<DefaultValidator<'static>>,
D: Deref<Target = [u8]> + Send + Sync,
Source§impl<T, D> PartialEq<T> for DataView<T, D>where
T: Archive,
T::Archived: CheckBytes<DefaultValidator<'static>> + PartialEq<T>,
D: Deref<Target = [u8]> + Send + Sync,
impl<T, D> PartialEq<T> for DataView<T, D>where
T: Archive,
T::Archived: CheckBytes<DefaultValidator<'static>> + PartialEq<T>,
D: Deref<Target = [u8]> + Send + Sync,
Auto Trait Implementations§
impl<T, D> Freeze for DataView<T, D>where
D: Freeze,
impl<T, D> RefUnwindSafe for DataView<T, D>
impl<T, D> Send for DataView<T, D>
impl<T, D> Sync for DataView<T, D>
impl<T, D> Unpin for DataView<T, D>where
D: Unpin,
impl<T, D> UnwindSafe for DataView<T, D>
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.