pub struct AsVec;Expand description
A wrapper that serializes associative containers as a Vec of key-value
pairs.
This provides faster serialization for containers like HashMap and
BTreeMap by serializing the key-value pairs directly instead of building a
data structure in the buffer.
§Example
use std::collections::HashMap;
use rkyv::{with::AsVec, Archive};
#[derive(Archive)]
struct Example {
#[rkyv(with = AsVec)]
values: HashMap<String, u32>,
}Trait Implementations§
source§impl<const A: usize> ArchiveWith<AlignedVec<A>> for AsVec
Available on crate feature alloc only.
impl<const A: usize> ArchiveWith<AlignedVec<A>> for AsVec
Available on crate feature
alloc only.source§type Archived = ArchivedVec<u8>
type Archived = ArchivedVec<u8>
The archived type of
Self with F.source§type Resolver = VecResolver
type Resolver = VecResolver
The resolver of a
Self with F.source§fn resolve_with(
field: &AlignedVec<A>,
resolver: Self::Resolver,
out: Place<Self::Archived>,
)
fn resolve_with( field: &AlignedVec<A>, resolver: Self::Resolver, out: Place<Self::Archived>, )
Resolves the archived type using a reference to the field type
F.source§impl<K: Archive, V: Archive> ArchiveWith<BTreeMap<K, V>> for AsVec
Available on crate feature alloc only.
impl<K: Archive, V: Archive> ArchiveWith<BTreeMap<K, V>> for AsVec
Available on crate feature
alloc only.source§impl<T: Archive> ArchiveWith<BTreeSet<T>> for AsVec
Available on crate feature alloc only.
impl<T: Archive> ArchiveWith<BTreeSet<T>> for AsVec
Available on crate feature
alloc only.source§type Resolver = VecResolver
type Resolver = VecResolver
The resolver of a
Self with F.source§impl<K: Archive, V: Archive, H> ArchiveWith<HashMap<K, V, H>> for AsVec
Available on crate feature std only.
impl<K: Archive, V: Archive, H> ArchiveWith<HashMap<K, V, H>> for AsVec
Available on crate feature
std only.source§impl<T: Archive, H> ArchiveWith<HashSet<T, H>> for AsVec
Available on crate feature std only.
impl<T: Archive, H> ArchiveWith<HashSet<T, H>> for AsVec
Available on crate feature
std only.source§type Resolver = VecResolver
type Resolver = VecResolver
The resolver of a
Self with F.source§impl<T, D> DeserializeWith<ArchivedVec<<T as Archive>::Archived>, BTreeSet<T>, D> for AsVec
Available on crate feature alloc only.
impl<T, D> DeserializeWith<ArchivedVec<<T as Archive>::Archived>, BTreeSet<T>, D> for AsVec
Available on crate feature
alloc only.source§fn deserialize_with(
field: &ArchivedVec<T::Archived>,
deserializer: &mut D,
) -> Result<BTreeSet<T>, D::Error>
fn deserialize_with( field: &ArchivedVec<T::Archived>, deserializer: &mut D, ) -> Result<BTreeSet<T>, D::Error>
Deserializes the field type
F using the given deserializer.source§impl<T, H, D> DeserializeWith<ArchivedVec<<T as Archive>::Archived>, HashSet<T, H>, D> for AsVecwhere
T: Archive + Hash + Eq,
T::Archived: Deserialize<T, D>,
H: BuildHasher + Default,
D: Fallible + ?Sized,
Available on crate feature std only.
impl<T, H, D> DeserializeWith<ArchivedVec<<T as Archive>::Archived>, HashSet<T, H>, D> for AsVecwhere
T: Archive + Hash + Eq,
T::Archived: Deserialize<T, D>,
H: BuildHasher + Default,
D: Fallible + ?Sized,
Available on crate feature
std only.source§fn deserialize_with(
field: &ArchivedVec<T::Archived>,
deserializer: &mut D,
) -> Result<HashSet<T, H>, D::Error>
fn deserialize_with( field: &ArchivedVec<T::Archived>, deserializer: &mut D, ) -> Result<HashSet<T, H>, D::Error>
Deserializes the field type
F using the given deserializer.source§impl<K, V, D> DeserializeWith<ArchivedVec<Entry<<K as Archive>::Archived, <V as Archive>::Archived>>, BTreeMap<K, V>, D> for AsVecwhere
K: Archive + Ord,
V: Archive,
K::Archived: Deserialize<K, D>,
V::Archived: Deserialize<V, D>,
D: Fallible + ?Sized,
Available on crate feature alloc only.
impl<K, V, D> DeserializeWith<ArchivedVec<Entry<<K as Archive>::Archived, <V as Archive>::Archived>>, BTreeMap<K, V>, D> for AsVecwhere
K: Archive + Ord,
V: Archive,
K::Archived: Deserialize<K, D>,
V::Archived: Deserialize<V, D>,
D: Fallible + ?Sized,
Available on crate feature
alloc only.source§impl<K, V, H, D> DeserializeWith<ArchivedVec<Entry<<K as Archive>::Archived, <V as Archive>::Archived>>, HashMap<K, V, H>, D> for AsVecwhere
K: Archive + Hash + Eq,
V: Archive,
K::Archived: Deserialize<K, D>,
V::Archived: Deserialize<V, D>,
H: BuildHasher + Default,
D: Fallible + ?Sized,
Available on crate feature std only.
impl<K, V, H, D> DeserializeWith<ArchivedVec<Entry<<K as Archive>::Archived, <V as Archive>::Archived>>, HashMap<K, V, H>, D> for AsVecwhere
K: Archive + Hash + Eq,
V: Archive,
K::Archived: Deserialize<K, D>,
V::Archived: Deserialize<V, D>,
H: BuildHasher + Default,
D: Fallible + ?Sized,
Available on crate feature
std only.source§impl<D, const A: usize> DeserializeWith<ArchivedVec<u8>, AlignedVec<A>, D> for AsVec
Available on crate feature alloc only.
impl<D, const A: usize> DeserializeWith<ArchivedVec<u8>, AlignedVec<A>, D> for AsVec
Available on crate feature
alloc only.source§fn deserialize_with(
field: &ArchivedVec<u8>,
_: &mut D,
) -> Result<AlignedVec<A>, D::Error>
fn deserialize_with( field: &ArchivedVec<u8>, _: &mut D, ) -> Result<AlignedVec<A>, D::Error>
Deserializes the field type
F using the given deserializer.source§impl<S, const A: usize> SerializeWith<AlignedVec<A>, S> for AsVec
Available on crate feature alloc only.
impl<S, const A: usize> SerializeWith<AlignedVec<A>, S> for AsVec
Available on crate feature
alloc only.source§fn serialize_with(
field: &AlignedVec<A>,
serializer: &mut S,
) -> Result<Self::Resolver, S::Error>
fn serialize_with( field: &AlignedVec<A>, serializer: &mut S, ) -> Result<Self::Resolver, S::Error>
Serializes the field type
F using the given serializer.source§impl<K, V, S> SerializeWith<BTreeMap<K, V>, S> for AsVec
Available on crate feature alloc only.
impl<K, V, S> SerializeWith<BTreeMap<K, V>, S> for AsVec
Available on crate feature
alloc only.source§impl<T, S> SerializeWith<BTreeSet<T>, S> for AsVec
Available on crate feature alloc only.
impl<T, S> SerializeWith<BTreeSet<T>, S> for AsVec
Available on crate feature
alloc only.source§impl<K, V, H, S> SerializeWith<HashMap<K, V, H>, S> for AsVec
Available on crate feature std only.
impl<K, V, H, S> SerializeWith<HashMap<K, V, H>, S> for AsVec
Available on crate feature
std only.source§impl<T, H, S> SerializeWith<HashSet<T, H>, S> for AsVec
Available on crate feature std only.
impl<T, H, S> SerializeWith<HashSet<T, H>, S> for AsVec
Available on crate feature
std only.Auto Trait Implementations§
impl Freeze for AsVec
impl RefUnwindSafe for AsVec
impl Send for AsVec
impl Sync for AsVec
impl Unpin for AsVec
impl UnwindSafe for AsVec
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.