Struct rkyv::boxed::ArchivedBox

source ·
#[repr(transparent)]
pub struct ArchivedBox<T: ArchivePointee + ?Sized>(_);
Expand description

An archived Box.

This is a thin wrapper around a RelPtr to the archived type.

Implementations§

source§

impl<T: ArchivePointee + ?Sized> ArchivedBox<T>

source

pub fn get(&self) -> &T

Returns a reference to the value of this archived box.

source

pub fn get_pin_mut(self: Pin<&mut Self>) -> Pin<&mut T>

Returns a pinned mutable reference to the value of this archived box

source

pub unsafe fn resolve_from_ref<U: ArchiveUnsized<Archived = T> + ?Sized>( value: &U, pos: usize, resolver: BoxResolver<U::MetadataResolver>, out: *mut Self )

Resolves an archived box from the given value and parameters.

Safety
  • pos must be the position of out within the archive
  • resolver must be the result of serializing value
source

pub fn serialize_from_ref<U, S>( value: &U, serializer: &mut S ) -> Result<BoxResolver<U::MetadataResolver>, S::Error>where U: SerializeUnsized<S, Archived = T> + ?Sized, S: Fallible + ?Sized,

Serializes an archived box from the given value and serializer.

source

pub unsafe fn resolve_from_raw_parts( pos: usize, resolver: BoxResolver<<T as ArchivePointee>::ArchivedMetadata>, out: *mut Self )

Resolves an archived box from a BoxResolver which contains the raw <T as ArchivePointee>::ArchivedMetadata directly.

Safety
  • pos must be the position of out within the archive
  • resolver must be obtained by following the safety documentation of BoxResolver::from_raw_parts.
source§

impl<T> ArchivedBox<[T]>

source

pub unsafe fn serialize_copy_from_slice<U, S>( slice: &[U], serializer: &mut S ) -> Result<BoxResolver<MetadataResolver<[U]>>, S::Error>where U: Serialize<S, Archived = T>, S: Serializer + ?Sized,

Serializes an archived Box from a given slice by directly copying bytes.

Safety

The type being serialized must be copy-safe. Copy-safe types must be trivially copyable (have the same archived and unarchived representations) and contain no padding bytes. In situations where copying uninitialized bytes the output is acceptable, this function may be used with types that contain padding bytes.

Trait Implementations§

source§

impl<T: ArchivePointee + ?Sized> AsRef<T> for ArchivedBox<T>

source§

fn as_ref(&self) -> &T

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<T: ArchivePointee + ?Sized> Borrow<T> for ArchivedBox<T>

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T, C> CheckBytes<C> for ArchivedBox<T>where T: ArchivePointee + CheckBytes<C> + LayoutRaw + Pointee + ?Sized, C: ArchiveContext + ?Sized, T::ArchivedMetadata: CheckBytes<C>, C::Error: Error,

§

type Error = OwnedPointerError<<<T as ArchivePointee>::ArchivedMetadata as CheckBytes<C>>::Error, <T as CheckBytes<C>>::Error, <C as Fallible>::Error>

The error that may result from checking the type.
source§

unsafe fn check_bytes<'a>( value: *const Self, context: &mut C ) -> Result<&'a Self, Self::Error>

Checks whether the given pointer points to a valid value within the given context. Read more
source§

impl<T: ArchivePointee + ?Sized> Debug for ArchivedBox<T>where T::ArchivedMetadata: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: ArchivePointee + ?Sized> Deref for ArchivedBox<T>

§

type Target = T

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<T, D> Deserialize<Box<T, Global>, D> for ArchivedBox<T::Archived>where T: ArchiveUnsized + ?Sized, T::Archived: DeserializeUnsized<T, D>, D: Fallible + ?Sized,

source§

fn deserialize(&self, deserializer: &mut D) -> Result<Box<T>, D::Error>

Deserializes using the given deserializer
source§

impl<F: Archive, D: Fallible + ?Sized> DeserializeWith<ArchivedBox<<F as Archive>::Archived>, F, D> for AsBoxwhere F::Archived: Deserialize<F, D>,

source§

fn deserialize_with( field: &ArchivedBox<F::Archived>, deserializer: &mut D ) -> Result<F, D::Error>

Deserializes the field type F using the given deserializer.
source§

impl<T, D> DeserializeWith<ArchivedBox<[<T as Archive>::Archived]>, Box<[T], Global>, D> for CopyOptimizewhere T: Archive, T::Archived: Deserialize<T, D>, D: Fallible + ?Sized,

source§

fn deserialize_with( field: &ArchivedBox<[T::Archived]>, _: &mut D ) -> Result<Box<[T]>, D::Error>

Deserializes the field type F using the given deserializer.
source§

impl<T: ArchivePointee + Display + ?Sized> Display for ArchivedBox<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: ArchivePointee + Hash + ?Sized> Hash for ArchivedBox<T>

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<T: ArchivePointee + Ord + ?Sized> Ord for ArchivedBox<T>

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Selfwhere Self: Sized + PartialOrd<Self>,

Restrict a value to a certain interval. Read more
source§

impl<T: ArchivePointee + PartialEq<U> + ?Sized, U: ArchivePointee + ?Sized> PartialEq<ArchivedBox<U>> for ArchivedBox<T>

source§

fn eq(&self, other: &ArchivedBox<U>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T: ArchivePointee + PartialEq<U> + ?Sized, U: ?Sized> PartialEq<Box<U, Global>> for ArchivedBox<T>

source§

fn eq(&self, other: &Box<U>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T: ArchivePointee + PartialOrd + ?Sized> PartialOrd<ArchivedBox<T>> for ArchivedBox<T>

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<T: ArchivePointee + PartialOrd<U> + ?Sized, U: ?Sized> PartialOrd<Box<U, Global>> for ArchivedBox<T>

source§

fn partial_cmp(&self, other: &Box<U>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<T: ArchivePointee + ?Sized> Pointer for ArchivedBox<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl<T: ArchivePointee + Eq + ?Sized> Eq for ArchivedBox<T>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CallHasher for Twhere T: Hash + ?Sized,

§

default fn get_hash<H, B>(value: &H, build_hasher: &B) -> u64where H: Hash + ?Sized, B: BuildHasher,

source§

impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

source§

fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> LayoutRaw for T

source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
source§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.