pub struct Map<T> { /* private fields */ }Expand description
A wrapper that applies another wrapper to the values contained in a type. This can be applied to a vector to map each element, or an option to map any contained value.
See ArchiveWith for more details.
§Example
use rkyv::{
with::{InlineAsBox, Map},
Archive,
};
#[derive(Archive)]
struct Example<'a> {
// This will apply `InlineAsBox` to the `&i32` contained in this option
#[rkyv(with = Map<InlineAsBox>)]
option: Option<&'a i32>,
// This will apply `InlineAsBox` to each `&i32` contained in this vector
#[rkyv(with = Map<InlineAsBox>)]
vec: Vec<&'a i32>,
}Trait Implementations§
Source§impl<A, O, const N: usize> ArchiveWith<[O; N]> for Map<A>where
A: ArchiveWith<O>,
impl<A, O, const N: usize> ArchiveWith<[O; N]> for Map<A>where
A: ArchiveWith<O>,
Source§impl<A, O> ArchiveWith<Option<O>> for Map<A>where
A: ArchiveWith<O>,
impl<A, O> ArchiveWith<Option<O>> for Map<A>where
A: ArchiveWith<O>,
Source§type Archived = ArchivedOption<<A as ArchiveWith<O>>::Archived>
type Archived = ArchivedOption<<A as ArchiveWith<O>>::Archived>
The archived type of
Self with F.Source§impl<A, O> ArchiveWith<Vec<O>> for Map<A>where
A: ArchiveWith<O>,
impl<A, O> ArchiveWith<Vec<O>> for Map<A>where
A: ArchiveWith<O>,
Source§type Archived = ArchivedVec<<A as ArchiveWith<O>>::Archived>
type Archived = ArchivedVec<<A as ArchiveWith<O>>::Archived>
The archived type of
Self with F.Source§type Resolver = VecResolver
type Resolver = VecResolver
The resolver of a
Self with F.Source§impl<O, A, D, const N: usize> DeserializeWith<[<A as ArchiveWith<O>>::Archived; N], [O; N], D> for Map<A>
impl<O, A, D, const N: usize> DeserializeWith<[<A as ArchiveWith<O>>::Archived; N], [O; N], D> for Map<A>
Source§impl<A, O, D> DeserializeWith<ArchivedOption<<A as ArchiveWith<O>>::Archived>, Option<O>, D> for Map<A>where
D: Fallible + ?Sized,
A: ArchiveWith<O> + DeserializeWith<<A as ArchiveWith<O>>::Archived, O, D>,
impl<A, O, D> DeserializeWith<ArchivedOption<<A as ArchiveWith<O>>::Archived>, Option<O>, D> for Map<A>where
D: Fallible + ?Sized,
A: ArchiveWith<O> + DeserializeWith<<A as ArchiveWith<O>>::Archived, O, D>,
Source§fn deserialize_with(
field: &ArchivedOption<<A as ArchiveWith<O>>::Archived>,
d: &mut D,
) -> Result<Option<O>, D::Error>
fn deserialize_with( field: &ArchivedOption<<A as ArchiveWith<O>>::Archived>, d: &mut D, ) -> Result<Option<O>, D::Error>
Deserializes the field type
F using the given deserializer.Source§impl<A, O, D> DeserializeWith<ArchivedVec<<A as ArchiveWith<O>>::Archived>, Vec<O>, D> for Map<A>where
A: ArchiveWith<O> + DeserializeWith<<A as ArchiveWith<O>>::Archived, O, D>,
D: Fallible + ?Sized,
impl<A, O, D> DeserializeWith<ArchivedVec<<A as ArchiveWith<O>>::Archived>, Vec<O>, D> for Map<A>where
A: ArchiveWith<O> + DeserializeWith<<A as ArchiveWith<O>>::Archived, O, D>,
D: Fallible + ?Sized,
Source§fn deserialize_with(
field: &ArchivedVec<<A as ArchiveWith<O>>::Archived>,
d: &mut D,
) -> Result<Vec<O>, D::Error>
fn deserialize_with( field: &ArchivedVec<<A as ArchiveWith<O>>::Archived>, d: &mut D, ) -> Result<Vec<O>, D::Error>
Deserializes the field type
F using the given deserializer.Source§impl<A, O, S> SerializeWith<Option<O>, S> for Map<A>
impl<A, O, S> SerializeWith<Option<O>, S> for Map<A>
Source§impl<A, O, S> SerializeWith<Vec<O>, S> for Map<A>
impl<A, O, S> SerializeWith<Vec<O>, S> for Map<A>
Auto Trait Implementations§
impl<T> Freeze for Map<T>
impl<T> RefUnwindSafe for Map<T>where
T: RefUnwindSafe,
impl<T> Send for Map<T>where
T: Send,
impl<T> Sync for Map<T>where
T: Sync,
impl<T> Unpin for Map<T>where
T: Unpin,
impl<T> UnsafeUnpin for Map<T>
impl<T> UnwindSafe for Map<T>where
T: UnwindSafe,
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> 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>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.