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::{Archive, with::AsVec};
#[derive(Archive)]
struct Example {
#[with(AsVec)]
values: HashMap<String, u32>,
}
Trait Implementations§
source§impl<K: Archive, V: Archive> ArchiveWith<BTreeMap<K, V, Global>> for AsVec
impl<K: Archive, V: Archive> ArchiveWith<BTreeMap<K, V, Global>> for AsVec
source§impl<T: Archive> ArchiveWith<BTreeSet<T, Global>> for AsVec
impl<T: Archive> ArchiveWith<BTreeSet<T, Global>> for AsVec
§type Archived = ArchivedVec<<T as Archive>::Archived>
type Archived = ArchivedVec<<T as Archive>::Archived>
The archived type of a
With<F, Self>
.§type Resolver = VecResolver
type Resolver = VecResolver
The resolver of a
With<F, Self>
.source§impl<K: Archive, V: Archive> ArchiveWith<HashMap<K, V, RandomState>> for AsVec
impl<K: Archive, V: Archive> ArchiveWith<HashMap<K, V, RandomState>> for AsVec
source§impl<T: Archive> ArchiveWith<HashSet<T, RandomState>> for AsVec
impl<T: Archive> ArchiveWith<HashSet<T, RandomState>> for AsVec
§type Archived = ArchivedVec<<T as Archive>::Archived>
type Archived = ArchivedVec<<T as Archive>::Archived>
The archived type of a
With<F, Self>
.§type Resolver = VecResolver
type Resolver = VecResolver
The resolver of a
With<F, Self>
.source§impl<T, D> DeserializeWith<ArchivedVec<<T as Archive>::Archived>, BTreeSet<T, Global>, D> for AsVecwhere
T: Archive + Ord,
T::Archived: Deserialize<T, D>,
D: Fallible + ?Sized,
impl<T, D> DeserializeWith<ArchivedVec<<T as Archive>::Archived>, BTreeSet<T, Global>, D> for AsVecwhere T: Archive + Ord, T::Archived: Deserialize<T, D>, D: Fallible + ?Sized,
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, D> DeserializeWith<ArchivedVec<<T as Archive>::Archived>, HashSet<T, RandomState>, D> for AsVecwhere
T: Archive + Hash + Eq,
T::Archived: Deserialize<T, D>,
D: Fallible + ?Sized,
impl<T, D> DeserializeWith<ArchivedVec<<T as Archive>::Archived>, HashSet<T, RandomState>, D> for AsVecwhere T: Archive + Hash + Eq, T::Archived: Deserialize<T, D>, D: Fallible + ?Sized,
source§fn deserialize_with(
field: &ArchivedVec<T::Archived>,
deserializer: &mut D
) -> Result<HashSet<T>, D::Error>
fn deserialize_with( field: &ArchivedVec<T::Archived>, deserializer: &mut D ) -> Result<HashSet<T>, 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, Global>, D> for AsVecwhere
K: Archive + Ord,
V: Archive,
K::Archived: Deserialize<K, D>,
V::Archived: Deserialize<V, D>,
D: Fallible + ?Sized,
impl<K, V, D> DeserializeWith<ArchivedVec<Entry<<K as Archive>::Archived, <V as Archive>::Archived>>, BTreeMap<K, V, Global>, D> for AsVecwhere K: Archive + Ord, V: Archive, K::Archived: Deserialize<K, D>, V::Archived: Deserialize<V, D>, D: Fallible + ?Sized,
source§impl<K, V, D> DeserializeWith<ArchivedVec<Entry<<K as Archive>::Archived, <V as Archive>::Archived>>, HashMap<K, V, RandomState>, D> for AsVecwhere
K: Archive + Hash + Eq,
V: Archive,
K::Archived: Deserialize<K, D>,
V::Archived: Deserialize<V, D>,
D: Fallible + ?Sized,
impl<K, V, D> DeserializeWith<ArchivedVec<Entry<<K as Archive>::Archived, <V as Archive>::Archived>>, HashMap<K, V, RandomState>, D> for AsVecwhere K: Archive + Hash + Eq, V: Archive, K::Archived: Deserialize<K, D>, V::Archived: Deserialize<V, D>, D: Fallible + ?Sized,
source§impl<K, V, S> SerializeWith<BTreeMap<K, V, Global>, S> for AsVecwhere
K: Serialize<S>,
V: Serialize<S>,
S: ScratchSpace + Serializer + ?Sized,
impl<K, V, S> SerializeWith<BTreeMap<K, V, Global>, S> for AsVecwhere K: Serialize<S>, V: Serialize<S>, S: ScratchSpace + Serializer + ?Sized,
source§impl<T, S> SerializeWith<BTreeSet<T, Global>, S> for AsVecwhere
T: Serialize<S>,
S: ScratchSpace + Serializer + ?Sized,
impl<T, S> SerializeWith<BTreeSet<T, Global>, S> for AsVecwhere T: Serialize<S>, S: ScratchSpace + Serializer + ?Sized,
source§impl<K, V, S> SerializeWith<HashMap<K, V, RandomState>, S> for AsVecwhere
K: Serialize<S>,
V: Serialize<S>,
S: ScratchSpace + Serializer + ?Sized,
impl<K, V, S> SerializeWith<HashMap<K, V, RandomState>, S> for AsVecwhere K: Serialize<S>, V: Serialize<S>, S: ScratchSpace + Serializer + ?Sized,
source§impl<T, S> SerializeWith<HashSet<T, RandomState>, S> for AsVecwhere
T: Serialize<S>,
S: ScratchSpace + Serializer + ?Sized,
impl<T, S> SerializeWith<HashSet<T, RandomState>, S> for AsVecwhere T: Serialize<S>, S: ScratchSpace + Serializer + ?Sized,
Auto Trait Implementations§
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
§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<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,
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.