Trait rkyv::Deserialize

source ·
pub trait Deserialize<T, D: Fallible + ?Sized> {
    // Required method
    fn deserialize(&self, deserializer: &mut D) -> Result<T, D::Error>;
}
Expand description

Converts a type back from its archived form.

Some types may require specific deserializer capabilities, such as Rc and Arc. In these cases, the deserializer type D should be bound so that it implements traits that provide those capabilities (e.g. Pooling).

This can be derived with Deserialize.

Required Methods§

source

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

Deserializes using the given deserializer

Implementations on Foreign Types§

source§

impl<D: Fallible + ?Sized> Deserialize<bool, D> for bool

source§

impl<D: Fallible + ?Sized> Deserialize<i8, D> for i8

source§

fn deserialize(&self, _: &mut D) -> Result<i8, D::Error>

source§

impl<D: Fallible + ?Sized> Deserialize<u8, D> for u8

source§

fn deserialize(&self, _: &mut D) -> Result<u8, D::Error>

source§

impl<D: Fallible + ?Sized> Deserialize<(), D> for ()

source§

fn deserialize(&self, _: &mut D) -> Result<(), D::Error>

source§

impl<D: Fallible + ?Sized> Deserialize<PhantomPinned, D> for PhantomPinned

source§

impl<D: Fallible + ?Sized> Deserialize<NonZero<i8>, D> for NonZeroI8

source§

impl<D: Fallible + ?Sized> Deserialize<NonZero<u8>, D> for NonZeroU8

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroI16_be, D> for NonZeroI16_be

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroI16_le, D> for NonZeroI16_le

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroI32_be, D> for NonZeroI32_be

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroI32_le, D> for NonZeroI32_le

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroI64_be, D> for NonZeroI64_be

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroI64_le, D> for NonZeroI64_le

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroI128_be, D> for NonZeroI128_be

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroI128_le, D> for NonZeroI128_le

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroU16_be, D> for NonZeroU16_be

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroU16_le, D> for NonZeroU16_le

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroU32_be, D> for NonZeroU32_be

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroU32_le, D> for NonZeroU32_le

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroU64_be, D> for NonZeroU64_be

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroU64_le, D> for NonZeroU64_le

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroU128_be, D> for NonZeroU128_be

source§

impl<D: Fallible + ?Sized> Deserialize<NonZeroU128_le, D> for NonZeroU128_le

source§

impl<D: Fallible + ?Sized> Deserialize<char_be, D> for char_be

source§

impl<D: Fallible + ?Sized> Deserialize<char_le, D> for char_le

source§

impl<D: Fallible + ?Sized> Deserialize<f32_be, D> for f32_be

source§

impl<D: Fallible + ?Sized> Deserialize<f32_le, D> for f32_le

source§

impl<D: Fallible + ?Sized> Deserialize<f64_be, D> for f64_be

source§

impl<D: Fallible + ?Sized> Deserialize<f64_le, D> for f64_le

source§

impl<D: Fallible + ?Sized> Deserialize<i16_be, D> for i16_be

source§

impl<D: Fallible + ?Sized> Deserialize<i16_le, D> for i16_le

source§

impl<D: Fallible + ?Sized> Deserialize<i32_be, D> for i32_be

source§

impl<D: Fallible + ?Sized> Deserialize<i32_le, D> for i32_le

source§

impl<D: Fallible + ?Sized> Deserialize<i64_be, D> for i64_be

source§

impl<D: Fallible + ?Sized> Deserialize<i64_le, D> for i64_le

source§

impl<D: Fallible + ?Sized> Deserialize<i128_be, D> for i128_be

source§

impl<D: Fallible + ?Sized> Deserialize<i128_le, D> for i128_le

source§

impl<D: Fallible + ?Sized> Deserialize<u16_be, D> for u16_be

source§

impl<D: Fallible + ?Sized> Deserialize<u16_le, D> for u16_le

source§

impl<D: Fallible + ?Sized> Deserialize<u32_be, D> for u32_be

source§

impl<D: Fallible + ?Sized> Deserialize<u32_le, D> for u32_le

source§

impl<D: Fallible + ?Sized> Deserialize<u64_be, D> for u64_be

source§

impl<D: Fallible + ?Sized> Deserialize<u64_le, D> for u64_le

source§

impl<D: Fallible + ?Sized> Deserialize<u128_be, D> for u128_be

source§

impl<D: Fallible + ?Sized> Deserialize<u128_le, D> for u128_le

source§

impl<T, D> Deserialize<ManuallyDrop<T>, D> for ManuallyDrop<T::Archived>
where T: Archive, T::Archived: Deserialize<T, D>, D: Fallible + ?Sized,

source§

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

source§

impl<T, D, const N: usize> Deserialize<[T; N], D> for [T::Archived; N]
where T: Archive, T::Archived: Deserialize<T, D>, D: Fallible + ?Sized,

source§

fn deserialize(&self, deserializer: &mut D) -> Result<[T; N], D::Error>

source§

impl<T: ?Sized, D: Fallible + ?Sized> Deserialize<PhantomData<T>, D> for PhantomData<T>

Implementors§

source§

impl<D> Deserialize<CString, D> for ArchivedCString

Available on crate feature alloc only.
source§

impl<D> Deserialize<SocketAddrV4, D> for ArchivedSocketAddrV4
where D: Fallible + ?Sized,

source§

impl<D> Deserialize<NonZero<isize>, D> for ArchivedNonZeroIsize
where D: Fallible + ?Sized,

source§

impl<D> Deserialize<NonZero<usize>, D> for ArchivedNonZeroUsize
where D: Fallible + ?Sized,

source§

impl<D: Fallible + ?Sized> Deserialize<IpAddr, D> for ArchivedIpAddr

source§

impl<D: Fallible + ?Sized> Deserialize<SocketAddr, D> for ArchivedSocketAddr

source§

impl<D: Fallible + ?Sized> Deserialize<char, D> for ArchivedChar

source§

impl<D: Fallible + ?Sized> Deserialize<f32, D> for ArchivedF32

source§

impl<D: Fallible + ?Sized> Deserialize<f64, D> for ArchivedF64

source§

impl<D: Fallible + ?Sized> Deserialize<i16, D> for ArchivedI16

source§

impl<D: Fallible + ?Sized> Deserialize<i32, D> for ArchivedI32

source§

impl<D: Fallible + ?Sized> Deserialize<i64, D> for ArchivedI64

source§

impl<D: Fallible + ?Sized> Deserialize<i128, D> for ArchivedI128

source§

impl<D: Fallible + ?Sized> Deserialize<isize, D> for ArchivedIsize

source§

impl<D: Fallible + ?Sized> Deserialize<u16, D> for ArchivedU16

source§

impl<D: Fallible + ?Sized> Deserialize<u32, D> for ArchivedU32

source§

impl<D: Fallible + ?Sized> Deserialize<u64, D> for ArchivedU64

source§

impl<D: Fallible + ?Sized> Deserialize<u128, D> for ArchivedU128

source§

impl<D: Fallible + ?Sized> Deserialize<usize, D> for ArchivedUsize

source§

impl<D: Fallible + ?Sized> Deserialize<String, D> for ArchivedString

Available on crate feature alloc only.
source§

impl<D: Fallible + ?Sized> Deserialize<Ipv4Addr, D> for ArchivedIpv4Addr

source§

impl<D: Fallible + ?Sized> Deserialize<Ipv6Addr, D> for ArchivedIpv6Addr

source§

impl<D: Fallible + ?Sized> Deserialize<SocketAddrV6, D> for ArchivedSocketAddrV6

source§

impl<D: Fallible + ?Sized> Deserialize<NonZero<i16>, D> for ArchivedNonZeroI16

source§

impl<D: Fallible + ?Sized> Deserialize<NonZero<i32>, D> for ArchivedNonZeroI32

source§

impl<D: Fallible + ?Sized> Deserialize<NonZero<i64>, D> for ArchivedNonZeroI64

source§

impl<D: Fallible + ?Sized> Deserialize<NonZero<i128>, D> for ArchivedNonZeroI128

source§

impl<D: Fallible + ?Sized> Deserialize<NonZero<u16>, D> for ArchivedNonZeroU16

source§

impl<D: Fallible + ?Sized> Deserialize<NonZero<u32>, D> for ArchivedNonZeroU32

source§

impl<D: Fallible + ?Sized> Deserialize<NonZero<u64>, D> for ArchivedNonZeroU64

source§

impl<D: Fallible + ?Sized> Deserialize<NonZero<u128>, D> for ArchivedNonZeroU128

source§

impl<D: Fallible + ?Sized> Deserialize<RangeFull, D> for ArchivedRangeFull

source§

impl<D: Fallible + ?Sized> Deserialize<Duration, D> for ArchivedDuration

source§

impl<K, D> Deserialize<BTreeSet<K>, D> for ArchivedBTreeSet<K::Archived>
where K: Archive + Ord, K::Archived: Deserialize<K, D> + Ord, D: Fallible + ?Sized,

Available on crate feature alloc only.
source§

impl<K, D, S> Deserialize<HashSet<K, S>, D> for ArchivedHashSet<K::Archived>
where K: Archive + Hash + Eq, K::Archived: Deserialize<K, D> + Hash + Eq, D: Fallible + ?Sized, S: Default + BuildHasher,

Available on crate feature std only.
source§

impl<K, V, D> Deserialize<BTreeMap<K, V>, D> for ArchivedBTreeMap<K::Archived, V::Archived>
where K: Archive + Ord, K::Archived: Deserialize<K, D> + Ord, V: Archive, V::Archived: Deserialize<V, D>, D: Fallible + ?Sized,

Available on crate feature alloc only.
source§

impl<K, V, D, S> Deserialize<HashMap<K, V, S>, D> for ArchivedHashMap<K::Archived, V::Archived>
where K: Archive + Hash + Eq, K::Archived: Deserialize<K, D> + Hash + Eq, V: Archive, V::Archived: Deserialize<V, D>, D: Fallible + ?Sized, S: Default + BuildHasher,

Available on crate feature std only.
source§

impl<T0, D> Deserialize<(T0,), D> for ArchivedTuple1<T0::Archived>
where D: Fallible + ?Sized, T0: Archive, T0::Archived: Deserialize<T0, D>,

source§

impl<T0, T1, D> Deserialize<(T0, T1), D> for ArchivedTuple2<T0::Archived, T1::Archived>
where D: Fallible + ?Sized, T0: Archive, T1: Archive, T0::Archived: Deserialize<T0, D>, T1::Archived: Deserialize<T1, D>,

source§

impl<T0, T1, T2, D> Deserialize<(T0, T1, T2), D> for ArchivedTuple3<T0::Archived, T1::Archived, T2::Archived>
where D: Fallible + ?Sized, T0: Archive, T1: Archive, T2: Archive, T0::Archived: Deserialize<T0, D>, T1::Archived: Deserialize<T1, D>, T2::Archived: Deserialize<T2, D>,

source§

impl<T0, T1, T2, T3, D> Deserialize<(T0, T1, T2, T3), D> for ArchivedTuple4<T0::Archived, T1::Archived, T2::Archived, T3::Archived>
where D: Fallible + ?Sized, T0: Archive, T1: Archive, T2: Archive, T3: Archive, T0::Archived: Deserialize<T0, D>, T1::Archived: Deserialize<T1, D>, T2::Archived: Deserialize<T2, D>, T3::Archived: Deserialize<T3, D>,

source§

impl<T0, T1, T2, T3, T4, D> Deserialize<(T0, T1, T2, T3, T4), D> for ArchivedTuple5<T0::Archived, T1::Archived, T2::Archived, T3::Archived, T4::Archived>
where D: Fallible + ?Sized, T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T0::Archived: Deserialize<T0, D>, T1::Archived: Deserialize<T1, D>, T2::Archived: Deserialize<T2, D>, T3::Archived: Deserialize<T3, D>, T4::Archived: Deserialize<T4, D>,

source§

impl<T0, T1, T2, T3, T4, T5, D> Deserialize<(T0, T1, T2, T3, T4, T5), D> for ArchivedTuple6<T0::Archived, T1::Archived, T2::Archived, T3::Archived, T4::Archived, T5::Archived>
where D: Fallible + ?Sized, T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T0::Archived: Deserialize<T0, D>, T1::Archived: Deserialize<T1, D>, T2::Archived: Deserialize<T2, D>, T3::Archived: Deserialize<T3, D>, T4::Archived: Deserialize<T4, D>, T5::Archived: Deserialize<T5, D>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, D> Deserialize<(T0, T1, T2, T3, T4, T5, T6), D> for ArchivedTuple7<T0::Archived, T1::Archived, T2::Archived, T3::Archived, T4::Archived, T5::Archived, T6::Archived>
where D: Fallible + ?Sized, T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T6: Archive, T0::Archived: Deserialize<T0, D>, T1::Archived: Deserialize<T1, D>, T2::Archived: Deserialize<T2, D>, T3::Archived: Deserialize<T3, D>, T4::Archived: Deserialize<T4, D>, T5::Archived: Deserialize<T5, D>, T6::Archived: Deserialize<T6, D>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, D> Deserialize<(T0, T1, T2, T3, T4, T5, T6, T7), D> for ArchivedTuple8<T0::Archived, T1::Archived, T2::Archived, T3::Archived, T4::Archived, T5::Archived, T6::Archived, T7::Archived>
where D: Fallible + ?Sized, T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T6: Archive, T7: Archive, T0::Archived: Deserialize<T0, D>, T1::Archived: Deserialize<T1, D>, T2::Archived: Deserialize<T2, D>, T3::Archived: Deserialize<T3, D>, T4::Archived: Deserialize<T4, D>, T5::Archived: Deserialize<T5, D>, T6::Archived: Deserialize<T6, D>, T7::Archived: Deserialize<T7, D>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, D> Deserialize<(T0, T1, T2, T3, T4, T5, T6, T7, T8), D> for ArchivedTuple9<T0::Archived, T1::Archived, T2::Archived, T3::Archived, T4::Archived, T5::Archived, T6::Archived, T7::Archived, T8::Archived>
where D: Fallible + ?Sized, T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T6: Archive, T7: Archive, T8: Archive, T0::Archived: Deserialize<T0, D>, T1::Archived: Deserialize<T1, D>, T2::Archived: Deserialize<T2, D>, T3::Archived: Deserialize<T3, D>, T4::Archived: Deserialize<T4, D>, T5::Archived: Deserialize<T5, D>, T6::Archived: Deserialize<T6, D>, T7::Archived: Deserialize<T7, D>, T8::Archived: Deserialize<T8, D>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, D> Deserialize<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9), D> for ArchivedTuple10<T0::Archived, T1::Archived, T2::Archived, T3::Archived, T4::Archived, T5::Archived, T6::Archived, T7::Archived, T8::Archived, T9::Archived>
where D: Fallible + ?Sized, T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T6: Archive, T7: Archive, T8: Archive, T9: Archive, T0::Archived: Deserialize<T0, D>, T1::Archived: Deserialize<T1, D>, T2::Archived: Deserialize<T2, D>, T3::Archived: Deserialize<T3, D>, T4::Archived: Deserialize<T4, D>, T5::Archived: Deserialize<T5, D>, T6::Archived: Deserialize<T6, D>, T7::Archived: Deserialize<T7, D>, T8::Archived: Deserialize<T8, D>, T9::Archived: Deserialize<T9, D>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, D> Deserialize<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10), D> for ArchivedTuple11<T0::Archived, T1::Archived, T2::Archived, T3::Archived, T4::Archived, T5::Archived, T6::Archived, T7::Archived, T8::Archived, T9::Archived, T10::Archived>
where D: Fallible + ?Sized, T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T6: Archive, T7: Archive, T8: Archive, T9: Archive, T10: Archive, T0::Archived: Deserialize<T0, D>, T1::Archived: Deserialize<T1, D>, T2::Archived: Deserialize<T2, D>, T3::Archived: Deserialize<T3, D>, T4::Archived: Deserialize<T4, D>, T5::Archived: Deserialize<T5, D>, T6::Archived: Deserialize<T6, D>, T7::Archived: Deserialize<T7, D>, T8::Archived: Deserialize<T8, D>, T9::Archived: Deserialize<T9, D>, T10::Archived: Deserialize<T10, D>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, D> Deserialize<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), D> for ArchivedTuple12<T0::Archived, T1::Archived, T2::Archived, T3::Archived, T4::Archived, T5::Archived, T6::Archived, T7::Archived, T8::Archived, T9::Archived, T10::Archived, T11::Archived>
where D: Fallible + ?Sized, T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T6: Archive, T7: Archive, T8: Archive, T9: Archive, T10: Archive, T11: Archive, T0::Archived: Deserialize<T0, D>, T1::Archived: Deserialize<T1, D>, T2::Archived: Deserialize<T2, D>, T3::Archived: Deserialize<T3, D>, T4::Archived: Deserialize<T4, D>, T5::Archived: Deserialize<T5, D>, T6::Archived: Deserialize<T6, D>, T7::Archived: Deserialize<T7, D>, T8::Archived: Deserialize<T8, D>, T9::Archived: Deserialize<T9, D>, T10::Archived: Deserialize<T10, D>, T11::Archived: Deserialize<T11, D>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, D> Deserialize<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12), D> for ArchivedTuple13<T0::Archived, T1::Archived, T2::Archived, T3::Archived, T4::Archived, T5::Archived, T6::Archived, T7::Archived, T8::Archived, T9::Archived, T10::Archived, T11::Archived, T12::Archived>
where D: Fallible + ?Sized, T0: Archive, T1: Archive, T2: Archive, T3: Archive, T4: Archive, T5: Archive, T6: Archive, T7: Archive, T8: Archive, T9: Archive, T10: Archive, T11: Archive, T12: Archive, T0::Archived: Deserialize<T0, D>, T1::Archived: Deserialize<T1, D>, T2::Archived: Deserialize<T2, D>, T3::Archived: Deserialize<T3, D>, T4::Archived: Deserialize<T4, D>, T5::Archived: Deserialize<T5, D>, T6::Archived: Deserialize<T6, D>, T7::Archived: Deserialize<T7, D>, T8::Archived: Deserialize<T8, D>, T9::Archived: Deserialize<T9, D>, T10::Archived: Deserialize<T10, D>, T11::Archived: Deserialize<T11, D>, T12::Archived: Deserialize<T12, D>,

source§

impl<T, D> Deserialize<Bound<T>, D> for ArchivedBound<T::Archived>
where T: Archive, T::Archived: Deserialize<T, D>, D: Fallible + ?Sized,

source§

impl<T, D> Deserialize<Option<T>, D> for ArchivedOption<T::Archived>
where T: Archive, T::Archived: Deserialize<T, D>, D: Fallible + ?Sized,

source§

impl<T, D> Deserialize<Box<T>, D> for ArchivedBox<T::Archived>

Available on crate feature alloc only.
source§

impl<T, D> Deserialize<VecDeque<T>, D> for ArchivedVec<T::Archived>
where T: Archive, [T::Archived]: DeserializeUnsized<[T], D>, D: Fallible + ?Sized, D::Error: Source,

Available on crate feature alloc only.
source§

impl<T, D> Deserialize<Rc<T>, D> for ArchivedRc<T::Archived, RcFlavor>

Available on crate feature alloc only.
source§

impl<T, D> Deserialize<Weak<T>, D> for ArchivedRcWeak<T::Archived, RcFlavor>

Available on crate feature alloc only.
source§

impl<T, D> Deserialize<Arc<T>, D> for ArchivedRc<T::Archived, ArcFlavor>

Available on target_has_atomic="ptr" and crate feature alloc only.
source§

impl<T, D> Deserialize<Weak<T>, D> for ArchivedRcWeak<T::Archived, ArcFlavor>

Available on target_has_atomic="ptr" and crate feature alloc only.
source§

impl<T, D> Deserialize<Vec<T>, D> for ArchivedVec<T::Archived>
where T: Archive, [T::Archived]: DeserializeUnsized<[T], D>, D: Fallible + ?Sized, D::Error: Source,

Available on crate feature alloc only.
source§

impl<T, D> Deserialize<Range<T>, D> for ArchivedRange<T::Archived>
where T: Archive, T::Archived: Deserialize<T, D>, D: Fallible + ?Sized,

source§

impl<T, D> Deserialize<RangeFrom<T>, D> for ArchivedRangeFrom<T::Archived>
where T: Archive, D: Fallible + ?Sized, T::Archived: Deserialize<T, D>,

source§

impl<T, D> Deserialize<RangeInclusive<T>, D> for ArchivedRangeInclusive<T::Archived>
where T: Archive, T::Archived: Deserialize<T, D>, D: Fallible + ?Sized,

source§

impl<T, D> Deserialize<RangeTo<T>, D> for ArchivedRangeTo<T::Archived>
where T: Archive, D: Fallible + ?Sized, T::Archived: Deserialize<T, D>,

source§

impl<T, D> Deserialize<RangeToInclusive<T>, D> for ArchivedRangeToInclusive<T::Archived>
where T: Archive, T::Archived: Deserialize<T, D>, D: Fallible + ?Sized,

source§

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

source§

impl<T, U, D> Deserialize<Result<T, U>, D> for ArchivedResult<T::Archived, U::Archived>
where T: Archive, U: Archive, D: Fallible + ?Sized, T::Archived: Deserialize<T, D>, U::Archived: Deserialize<U, D>,