Trait CheckBytes
pub unsafe trait CheckBytes<C>{
// Required method
unsafe fn check_bytes(
value: *const Self,
context: &mut C,
) -> Result<(), <C as Fallible>::Error> ⓘ;
}
Available on crate feature
dep_rkyv
only.Expand description
A type that can check whether a pointer points to a valid value.
CheckBytes
can be derived with CheckBytes
or
implemented manually for custom behavior.
§Safety
check_bytes
must only return Ok
if value
points to a valid instance of
Self
. Because value
must always be properly aligned for Self
and point
to enough bytes to represent the type, this implies that value
may be
dereferenced safely.
§Example
use core::{error::Error, fmt};
use bytecheck::CheckBytes;
use rancor::{fail, Fallible, Source};
#[repr(C, align(4))]
pub struct NonMaxU32(u32);
unsafe impl<C: Fallible + ?Sized> CheckBytes<C> for NonMaxU32
where
C::Error: Source,
{
unsafe fn check_bytes(
value: *const Self,
context: &mut C,
) -> Result<(), C::Error> {
#[derive(Debug)]
struct NonMaxCheckError;
impl fmt::Display for NonMaxCheckError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "non-max u32 was set to u32::MAX")
}
}
impl Error for NonMaxCheckError {}
let value = unsafe { value.read() };
if value.0 == u32::MAX {
fail!(NonMaxCheckError);
}
Ok(())
}
}
See Verify
for an example which uses less unsafe.
Required Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
§impl<C> CheckBytes<C> for bool
impl<C> CheckBytes<C> for bool
§impl<C> CheckBytes<C> for char
impl<C> CheckBytes<C> for char
§impl<C> CheckBytes<C> for f32
impl<C> CheckBytes<C> for f32
§impl<C> CheckBytes<C> for f64
impl<C> CheckBytes<C> for f64
§impl<C> CheckBytes<C> for i8
impl<C> CheckBytes<C> for i8
§impl<C> CheckBytes<C> for i16
impl<C> CheckBytes<C> for i16
§impl<C> CheckBytes<C> for i32
impl<C> CheckBytes<C> for i32
§impl<C> CheckBytes<C> for i64
impl<C> CheckBytes<C> for i64
§impl<C> CheckBytes<C> for i128
impl<C> CheckBytes<C> for i128
§impl<C> CheckBytes<C> for str
impl<C> CheckBytes<C> for str
§impl<C> CheckBytes<C> for u8
impl<C> CheckBytes<C> for u8
§impl<C> CheckBytes<C> for u16
impl<C> CheckBytes<C> for u16
§impl<C> CheckBytes<C> for u32
impl<C> CheckBytes<C> for u32
§impl<C> CheckBytes<C> for u64
impl<C> CheckBytes<C> for u64
§impl<C> CheckBytes<C> for u128
impl<C> CheckBytes<C> for u128
§impl<C> CheckBytes<C> for ()
impl<C> CheckBytes<C> for ()
§impl<T0, C> CheckBytes<C> for (T0,)
impl<T0, C> CheckBytes<C> for (T0,)
§impl<T0, T1, C> CheckBytes<C> for (T0, T1)
impl<T0, T1, C> CheckBytes<C> for (T0, T1)
§impl<T0, T1, T2, C> CheckBytes<C> for (T0, T1, T2)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
impl<T0, T1, T2, C> CheckBytes<C> for (T0, T1, T2)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
unsafe fn check_bytes( value: *const (T0, T1, T2), context: &mut C, ) -> Result<(), <C as Fallible>::Error> ⓘ
§impl<T0, T1, T2, T3, C> CheckBytes<C> for (T0, T1, T2, T3)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
impl<T0, T1, T2, T3, C> CheckBytes<C> for (T0, T1, T2, T3)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
unsafe fn check_bytes( value: *const (T0, T1, T2, T3), context: &mut C, ) -> Result<(), <C as Fallible>::Error> ⓘ
§impl<T0, T1, T2, T3, T4, C> CheckBytes<C> for (T0, T1, T2, T3, T4)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
impl<T0, T1, T2, T3, T4, C> CheckBytes<C> for (T0, T1, T2, T3, T4)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
unsafe fn check_bytes( value: *const (T0, T1, T2, T3, T4), context: &mut C, ) -> Result<(), <C as Fallible>::Error> ⓘ
§impl<T0, T1, T2, T3, T4, T5, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
impl<T0, T1, T2, T3, T4, T5, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
unsafe fn check_bytes( value: *const (T0, T1, T2, T3, T4, T5), context: &mut C, ) -> Result<(), <C as Fallible>::Error> ⓘ
§impl<T0, T1, T2, T3, T4, T5, T6, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5, T6)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
T6: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
impl<T0, T1, T2, T3, T4, T5, T6, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5, T6)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
T6: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
unsafe fn check_bytes( value: *const (T0, T1, T2, T3, T4, T5, T6), context: &mut C, ) -> Result<(), <C as Fallible>::Error> ⓘ
§impl<T0, T1, T2, T3, T4, T5, T6, T7, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5, T6, T7)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
T6: CheckBytes<C>,
T7: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
impl<T0, T1, T2, T3, T4, T5, T6, T7, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5, T6, T7)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
T6: CheckBytes<C>,
T7: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
unsafe fn check_bytes( value: *const (T0, T1, T2, T3, T4, T5, T6, T7), context: &mut C, ) -> Result<(), <C as Fallible>::Error> ⓘ
§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
T6: CheckBytes<C>,
T7: CheckBytes<C>,
T8: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
T6: CheckBytes<C>,
T7: CheckBytes<C>,
T8: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
unsafe fn check_bytes( value: *const (T0, T1, T2, T3, T4, T5, T6, T7, T8), context: &mut C, ) -> Result<(), <C as Fallible>::Error> ⓘ
§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
T6: CheckBytes<C>,
T7: CheckBytes<C>,
T8: CheckBytes<C>,
T9: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
T6: CheckBytes<C>,
T7: CheckBytes<C>,
T8: CheckBytes<C>,
T9: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
unsafe fn check_bytes( value: *const (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9), context: &mut C, ) -> Result<(), <C as Fallible>::Error> ⓘ
§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
T6: CheckBytes<C>,
T7: CheckBytes<C>,
T8: CheckBytes<C>,
T9: CheckBytes<C>,
T10: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
T6: CheckBytes<C>,
T7: CheckBytes<C>,
T8: CheckBytes<C>,
T9: CheckBytes<C>,
T10: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
unsafe fn check_bytes( value: *const (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10), context: &mut C, ) -> Result<(), <C as Fallible>::Error> ⓘ
§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
T6: CheckBytes<C>,
T7: CheckBytes<C>,
T8: CheckBytes<C>,
T9: CheckBytes<C>,
T10: CheckBytes<C>,
T11: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
T6: CheckBytes<C>,
T7: CheckBytes<C>,
T8: CheckBytes<C>,
T9: CheckBytes<C>,
T10: CheckBytes<C>,
T11: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
unsafe fn check_bytes( value: *const (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), context: &mut C, ) -> Result<(), <C as Fallible>::Error> ⓘ
§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
T6: CheckBytes<C>,
T7: CheckBytes<C>,
T8: CheckBytes<C>,
T9: CheckBytes<C>,
T10: CheckBytes<C>,
T11: CheckBytes<C>,
T12: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, C> CheckBytes<C> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)where
T0: CheckBytes<C>,
T1: CheckBytes<C>,
T2: CheckBytes<C>,
T3: CheckBytes<C>,
T4: CheckBytes<C>,
T5: CheckBytes<C>,
T6: CheckBytes<C>,
T7: CheckBytes<C>,
T8: CheckBytes<C>,
T9: CheckBytes<C>,
T10: CheckBytes<C>,
T11: CheckBytes<C>,
T12: CheckBytes<C>,
C: Fallible + ?Sized,
<C as Fallible>::Error: Trace,
unsafe fn check_bytes( value: *const (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12), context: &mut C, ) -> Result<(), <C as Fallible>::Error> ⓘ
§impl<T, C> CheckBytes<C> for [T]
impl<T, C> CheckBytes<C> for [T]
§impl<T, const N: usize, C> CheckBytes<C> for [T; N]
impl<T, const N: usize, C> CheckBytes<C> for [T; N]
Implementors§
impl<C> CheckBytes<C> for AtomicBool
impl<C> CheckBytes<C> for AtomicI8
impl<C> CheckBytes<C> for AtomicI16
impl<C> CheckBytes<C> for AtomicI32
impl<C> CheckBytes<C> for AtomicI64
impl<C> CheckBytes<C> for AtomicU8
impl<C> CheckBytes<C> for AtomicU16
impl<C> CheckBytes<C> for AtomicU32
impl<C> CheckBytes<C> for AtomicU64
impl<C> CheckBytes<C> for NonZero<i8>
impl<C> CheckBytes<C> for NonZero<i16>
impl<C> CheckBytes<C> for NonZero<i32>
impl<C> CheckBytes<C> for NonZero<i64>
impl<C> CheckBytes<C> for NonZero<i128>
impl<C> CheckBytes<C> for NonZero<u8>
impl<C> CheckBytes<C> for NonZero<u16>
impl<C> CheckBytes<C> for NonZero<u32>
impl<C> CheckBytes<C> for NonZero<u64>
impl<C> CheckBytes<C> for NonZero<u128>
impl<C> CheckBytes<C> for PhantomPinned
impl<C> CheckBytes<C> for RangeFull
impl<C> CheckBytes<C> for CStr
impl<C> CheckBytes<C> for AtomicI16_be
impl<C> CheckBytes<C> for AtomicI16_le
impl<C> CheckBytes<C> for AtomicI32_be
impl<C> CheckBytes<C> for AtomicI32_le
impl<C> CheckBytes<C> for AtomicI64_be
impl<C> CheckBytes<C> for AtomicI64_le
impl<C> CheckBytes<C> for AtomicU16_be
impl<C> CheckBytes<C> for AtomicU16_le
impl<C> CheckBytes<C> for AtomicU32_be
impl<C> CheckBytes<C> for AtomicU32_le
impl<C> CheckBytes<C> for AtomicU64_be
impl<C> CheckBytes<C> for AtomicU64_le
impl<C> CheckBytes<C> for NonZeroI16_be
impl<C> CheckBytes<C> for NonZeroI16_le
impl<C> CheckBytes<C> for NonZeroI32_be
impl<C> CheckBytes<C> for NonZeroI32_le
impl<C> CheckBytes<C> for NonZeroI64_be
impl<C> CheckBytes<C> for NonZeroI64_le
impl<C> CheckBytes<C> for NonZeroI128_be
impl<C> CheckBytes<C> for NonZeroI128_le
impl<C> CheckBytes<C> for NonZeroU16_be
impl<C> CheckBytes<C> for NonZeroU16_le
impl<C> CheckBytes<C> for NonZeroU32_be
impl<C> CheckBytes<C> for NonZeroU32_le
impl<C> CheckBytes<C> for NonZeroU64_be
impl<C> CheckBytes<C> for NonZeroU64_le
impl<C> CheckBytes<C> for NonZeroU128_be
impl<C> CheckBytes<C> for NonZeroU128_le
impl<C> CheckBytes<C> for char_be
impl<C> CheckBytes<C> for char_le
impl<C> CheckBytes<C> for f32_be
impl<C> CheckBytes<C> for f32_le
impl<C> CheckBytes<C> for f64_be
impl<C> CheckBytes<C> for f64_le
impl<C> CheckBytes<C> for i16_be
impl<C> CheckBytes<C> for i16_le
impl<C> CheckBytes<C> for i32_be
impl<C> CheckBytes<C> for i32_le
impl<C> CheckBytes<C> for i64_be
impl<C> CheckBytes<C> for i64_le
impl<C> CheckBytes<C> for i128_be
impl<C> CheckBytes<C> for i128_le
impl<C> CheckBytes<C> for u16_be
impl<C> CheckBytes<C> for u16_le
impl<C> CheckBytes<C> for u32_be
impl<C> CheckBytes<C> for u32_le
impl<C> CheckBytes<C> for u64_be
impl<C> CheckBytes<C> for u64_le
impl<C> CheckBytes<C> for u128_be
impl<C> CheckBytes<C> for u128_le
impl<C> CheckBytes<C> for NonZeroI16_ube
impl<C> CheckBytes<C> for NonZeroI16_ule
impl<C> CheckBytes<C> for NonZeroI32_ube
impl<C> CheckBytes<C> for NonZeroI32_ule
impl<C> CheckBytes<C> for NonZeroI64_ube
impl<C> CheckBytes<C> for NonZeroI64_ule
impl<C> CheckBytes<C> for NonZeroI128_ube
impl<C> CheckBytes<C> for NonZeroI128_ule
impl<C> CheckBytes<C> for NonZeroU16_ube
impl<C> CheckBytes<C> for NonZeroU16_ule
impl<C> CheckBytes<C> for NonZeroU32_ube
impl<C> CheckBytes<C> for NonZeroU32_ule
impl<C> CheckBytes<C> for NonZeroU64_ube
impl<C> CheckBytes<C> for NonZeroU64_ule
impl<C> CheckBytes<C> for NonZeroU128_ube
impl<C> CheckBytes<C> for NonZeroU128_ule
impl<C> CheckBytes<C> for char_ube
impl<C> CheckBytes<C> for char_ule
impl<C> CheckBytes<C> for f32_ube
impl<C> CheckBytes<C> for f32_ule
impl<C> CheckBytes<C> for f64_ube
impl<C> CheckBytes<C> for f64_ule
impl<C> CheckBytes<C> for i16_ube
impl<C> CheckBytes<C> for i16_ule
impl<C> CheckBytes<C> for i32_ube
impl<C> CheckBytes<C> for i32_ule
impl<C> CheckBytes<C> for i64_ube
impl<C> CheckBytes<C> for i64_ule
impl<C> CheckBytes<C> for i128_ube
impl<C> CheckBytes<C> for i128_ule
impl<C> CheckBytes<C> for u16_ube
impl<C> CheckBytes<C> for u16_ule
impl<C> CheckBytes<C> for u32_ube
impl<C> CheckBytes<C> for u32_ule
impl<C> CheckBytes<C> for u64_ube
impl<C> CheckBytes<C> for u64_ule
impl<C> CheckBytes<C> for u128_ube
impl<C> CheckBytes<C> for u128_ule
impl<C> CheckBytes<C> for ArchivedStringRepr
impl<K, H, __C> CheckBytes<__C> for ArchivedHashSet<K, H>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedHashMap<K, (), H>: CheckBytes<__C>,
impl<K, H, __C> CheckBytes<__C> for ArchivedIndexSet<K, H>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedIndexMap<K, (), H>: CheckBytes<__C>,
impl<K, V, H, __C> CheckBytes<__C> for ArchivedHashMap<K, V, H>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedHashTable<Entry<K, V>>: CheckBytes<__C>,
PhantomData<H>: CheckBytes<__C>,
impl<K, V, H, __C> CheckBytes<__C> for ArchivedIndexMap<K, V, H>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedIndexMap<K, V, H>: Verify<__C>,
ArchivedHashTable<u32_le>: CheckBytes<__C>,
RelPtr<Entry<K, V>, i32_le>: CheckBytes<__C>,
PhantomData<H>: CheckBytes<__C>,
impl<K, V, __C> CheckBytes<__C> for Entry<K, V>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
K: CheckBytes<__C>,
V: CheckBytes<__C>,
impl<K, V, const E: usize, __C> CheckBytes<__C> for ArchivedBTreeMap<K, V, E>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedBTreeMap<K, V, E>: Verify<__C>,
RelPtr<Node<K, V, E>, i32_le>: CheckBytes<__C>,
u32_le: CheckBytes<__C>,
PhantomData<(K, V)>: CheckBytes<__C>,
impl<K, const E: usize, __C> CheckBytes<__C> for ArchivedBTreeSet<K, E>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedBTreeMap<K, (), E>: CheckBytes<__C>,
impl<O, __C> CheckBytes<__C> for RawRelPtr<O>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
O: CheckBytes<__C>,
PhantomPinned: CheckBytes<__C>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, __C> CheckBytes<__C> for ArchivedTuple13<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
T0: CheckBytes<__C>,
T1: CheckBytes<__C>,
T2: CheckBytes<__C>,
T3: CheckBytes<__C>,
T4: CheckBytes<__C>,
T5: CheckBytes<__C>,
T6: CheckBytes<__C>,
T7: CheckBytes<__C>,
T8: CheckBytes<__C>,
T9: CheckBytes<__C>,
T10: CheckBytes<__C>,
T11: CheckBytes<__C>,
T12: CheckBytes<__C>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, __C> CheckBytes<__C> for ArchivedTuple12<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
T0: CheckBytes<__C>,
T1: CheckBytes<__C>,
T2: CheckBytes<__C>,
T3: CheckBytes<__C>,
T4: CheckBytes<__C>,
T5: CheckBytes<__C>,
T6: CheckBytes<__C>,
T7: CheckBytes<__C>,
T8: CheckBytes<__C>,
T9: CheckBytes<__C>,
T10: CheckBytes<__C>,
T11: CheckBytes<__C>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, __C> CheckBytes<__C> for ArchivedTuple11<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
T0: CheckBytes<__C>,
T1: CheckBytes<__C>,
T2: CheckBytes<__C>,
T3: CheckBytes<__C>,
T4: CheckBytes<__C>,
T5: CheckBytes<__C>,
T6: CheckBytes<__C>,
T7: CheckBytes<__C>,
T8: CheckBytes<__C>,
T9: CheckBytes<__C>,
T10: CheckBytes<__C>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, __C> CheckBytes<__C> for ArchivedTuple10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
T0: CheckBytes<__C>,
T1: CheckBytes<__C>,
T2: CheckBytes<__C>,
T3: CheckBytes<__C>,
T4: CheckBytes<__C>,
T5: CheckBytes<__C>,
T6: CheckBytes<__C>,
T7: CheckBytes<__C>,
T8: CheckBytes<__C>,
T9: CheckBytes<__C>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, __C> CheckBytes<__C> for ArchivedTuple9<T0, T1, T2, T3, T4, T5, T6, T7, T8>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
T0: CheckBytes<__C>,
T1: CheckBytes<__C>,
T2: CheckBytes<__C>,
T3: CheckBytes<__C>,
T4: CheckBytes<__C>,
T5: CheckBytes<__C>,
T6: CheckBytes<__C>,
T7: CheckBytes<__C>,
T8: CheckBytes<__C>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, __C> CheckBytes<__C> for ArchivedTuple8<T0, T1, T2, T3, T4, T5, T6, T7>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
T0: CheckBytes<__C>,
T1: CheckBytes<__C>,
T2: CheckBytes<__C>,
T3: CheckBytes<__C>,
T4: CheckBytes<__C>,
T5: CheckBytes<__C>,
T6: CheckBytes<__C>,
T7: CheckBytes<__C>,
impl<T0, T1, T2, T3, T4, T5, T6, __C> CheckBytes<__C> for ArchivedTuple7<T0, T1, T2, T3, T4, T5, T6>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
T0: CheckBytes<__C>,
T1: CheckBytes<__C>,
T2: CheckBytes<__C>,
T3: CheckBytes<__C>,
T4: CheckBytes<__C>,
T5: CheckBytes<__C>,
T6: CheckBytes<__C>,
impl<T0, T1, T2, T3, T4, T5, __C> CheckBytes<__C> for ArchivedTuple6<T0, T1, T2, T3, T4, T5>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
T0: CheckBytes<__C>,
T1: CheckBytes<__C>,
T2: CheckBytes<__C>,
T3: CheckBytes<__C>,
T4: CheckBytes<__C>,
T5: CheckBytes<__C>,
impl<T0, T1, T2, T3, T4, __C> CheckBytes<__C> for ArchivedTuple5<T0, T1, T2, T3, T4>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
T0: CheckBytes<__C>,
T1: CheckBytes<__C>,
T2: CheckBytes<__C>,
T3: CheckBytes<__C>,
T4: CheckBytes<__C>,
impl<T0, T1, T2, T3, __C> CheckBytes<__C> for ArchivedTuple4<T0, T1, T2, T3>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
T0: CheckBytes<__C>,
T1: CheckBytes<__C>,
T2: CheckBytes<__C>,
T3: CheckBytes<__C>,
impl<T0, T1, T2, __C> CheckBytes<__C> for ArchivedTuple3<T0, T1, T2>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
T0: CheckBytes<__C>,
T1: CheckBytes<__C>,
T2: CheckBytes<__C>,
impl<T0, T1, __C> CheckBytes<__C> for ArchivedTuple2<T0, T1>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
T0: CheckBytes<__C>,
T1: CheckBytes<__C>,
impl<T0, __C> CheckBytes<__C> for ArchivedTuple1<T0>
impl<T, C> CheckBytes<C> for Cell<T>
impl<T, C> CheckBytes<C> for ManuallyDrop<T>
impl<T, C> CheckBytes<C> for PhantomData<T>
impl<T, C> CheckBytes<C> for Range<T>
impl<T, C> CheckBytes<C> for RangeFrom<T>
impl<T, C> CheckBytes<C> for RangeTo<T>
impl<T, C> CheckBytes<C> for RangeToInclusive<T>
impl<T, C> CheckBytes<C> for UnsafeCell<T>
impl<T, E, __C> CheckBytes<__C> for ArchivedResult<T, E>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Source,
T: CheckBytes<__C>,
E: CheckBytes<__C>,
impl<T, F, __C> CheckBytes<__C> for ArchivedRc<T, F>where
T: ArchivePointee + ?Sized,
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedRc<T, F>: Verify<__C>,
RelPtr<T, i32_le>: CheckBytes<__C>,
PhantomData<F>: CheckBytes<__C>,
impl<T, F, __C> CheckBytes<__C> for ArchivedRcWeak<T, F>where
T: ArchivePointee + ?Sized,
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedRcWeak<T, F>: Verify<__C>,
RelPtr<T, i32_le>: CheckBytes<__C>,
PhantomData<F>: CheckBytes<__C>,
impl<T, N, C> CheckBytes<C> for NichedOption<T, N>
impl<T, O, __C> CheckBytes<__C> for RelPtr<T, O>where
T: ArchivePointee + ?Sized,
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
RawRelPtr<O>: CheckBytes<__C>,
<T as ArchivePointee>::ArchivedMetadata: CheckBytes<__C>,
PhantomData<T>: CheckBytes<__C>,
impl<T, __C> CheckBytes<__C> for ArchivedBound<T>
impl<T, __C> CheckBytes<__C> for ArchivedOption<T>
impl<T, __C> CheckBytes<__C> for ArchivedBox<T>where
T: ArchivePointee + ?Sized,
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedBox<T>: Verify<__C>,
RelPtr<T, i32_le>: CheckBytes<__C>,
impl<T, __C> CheckBytes<__C> for ArchivedHashTable<T>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedHashTable<T>: Verify<__C>,
RawRelPtr<i32_le>: CheckBytes<__C>,
u32_le: CheckBytes<__C>,
PhantomData<T>: CheckBytes<__C>,
impl<T, __C> CheckBytes<__C> for ArchivedOptionBox<T>where
T: ArchivePointee + ?Sized,
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
Repr<T>: CheckBytes<__C>,
impl<T, __C> CheckBytes<__C> for ArchivedRange<T>
impl<T, __C> CheckBytes<__C> for ArchivedRangeFrom<T>
impl<T, __C> CheckBytes<__C> for ArchivedRangeInclusive<T>
impl<T, __C> CheckBytes<__C> for ArchivedRangeTo<T>
impl<T, __C> CheckBytes<__C> for ArchivedRangeToInclusive<T>
impl<T, __C> CheckBytes<__C> for ArchivedVec<T>where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedVec<T>: Verify<__C>,
RelPtr<T, i32_le>: CheckBytes<__C>,
u32_le: CheckBytes<__C>,
impl<T, __C: Fallible + ?Sized> CheckBytes<__C> for ArchivedBareBox<T>
impl<T, const C: usize, const R: usize, const CR: usize, const RMAJ: bool, S: Storage, __C: Fallible + ?Sized> CheckBytes<__C> for ArchivedArray2d<T, C, R, CR, RMAJ, S>
impl<T, const CAP: usize, IDX, S: Storage, __C: Fallible + ?Sized> CheckBytes<__C> for ArchivedDestaque<T, CAP, IDX, S>
impl<T, const CAP: usize, IDX, S: Storage, __C: Fallible + ?Sized> CheckBytes<__C> for ArchivedStack<T, CAP, IDX, S>
impl<T, const CAP: usize, S: Storage, __C: Fallible + ?Sized> CheckBytes<__C> for ArchivedArray<T, CAP, S>
impl<__C> CheckBytes<__C> for ArchivedIpAddrwhere
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Source,
ArchivedIpv4Addr: CheckBytes<__C>,
ArchivedIpv6Addr: CheckBytes<__C>,
impl<__C> CheckBytes<__C> for ArchivedSocketAddrwhere
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Source,
ArchivedSocketAddrV4: CheckBytes<__C>,
ArchivedSocketAddrV6: CheckBytes<__C>,
impl<__C> CheckBytes<__C> for ArchivedCString
impl<__C> CheckBytes<__C> for ArchivedIpv4Addr
impl<__C> CheckBytes<__C> for ArchivedIpv6Addr
impl<__C> CheckBytes<__C> for ArchivedSocketAddrV4where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedIpv4Addr: CheckBytes<__C>,
u16_le: CheckBytes<__C>,
impl<__C> CheckBytes<__C> for ArchivedSocketAddrV6where
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedIpv6Addr: CheckBytes<__C>,
u16_le: CheckBytes<__C>,
u32_le: CheckBytes<__C>,
impl<__C> CheckBytes<__C> for ArchivedOptionNonZeroI8
impl<__C> CheckBytes<__C> for ArchivedOptionNonZeroI16
impl<__C> CheckBytes<__C> for ArchivedOptionNonZeroI32
impl<__C> CheckBytes<__C> for ArchivedOptionNonZeroI64
impl<__C> CheckBytes<__C> for ArchivedOptionNonZeroI128
impl<__C> CheckBytes<__C> for ArchivedOptionNonZeroU8
impl<__C> CheckBytes<__C> for ArchivedOptionNonZeroU16
impl<__C> CheckBytes<__C> for ArchivedOptionNonZeroU32
impl<__C> CheckBytes<__C> for ArchivedOptionNonZeroU64
impl<__C> CheckBytes<__C> for ArchivedOptionNonZeroU128
impl<__C> CheckBytes<__C> for ArchivedRangeFull
impl<__C> CheckBytes<__C> for ArchivedStringwhere
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedString: Verify<__C>,
ArchivedStringRepr: CheckBytes<__C>,
impl<__C> CheckBytes<__C> for ArchivedDurationwhere
__C: Fallible + ?Sized,
<__C as Fallible>::Error: Trace,
ArchivedDuration: Verify<__C>,
u64_le: CheckBytes<__C>,
u32_le: CheckBytes<__C>,
impl<__C: Fallible + ?Sized> CheckBytes<__C> for ArchivedBoxed
Available on crate feature
alloc
only.