pub trait ZeroizeMetadata {
const CAN_BE_BULK_ZEROIZED: bool;
}Expand description
Metadata about zeroization strategy for a type.
This trait provides compile-time information about whether a type can be bulk-zeroized with memset or requires element-by-element zeroization.
Note: This trait is NOT dyn-compatible (has associated constants).
Use FastZeroizable for trait objects.
Required Associated Constants§
Sourceconst CAN_BE_BULK_ZEROIZED: bool
const CAN_BE_BULK_ZEROIZED: bool
Whether this type can be bulk-zeroized with memset.
true: All-zeros is a valid bit pattern (primitives)false: Requires element-by-element recursive zeroization (complex types)
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§
Source§impl ZeroizeMetadata for bool
impl ZeroizeMetadata for bool
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for char
impl ZeroizeMetadata for char
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for f32
impl ZeroizeMetadata for f32
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for f64
impl ZeroizeMetadata for f64
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for i8
impl ZeroizeMetadata for i8
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for i16
impl ZeroizeMetadata for i16
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for i32
impl ZeroizeMetadata for i32
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for i64
impl ZeroizeMetadata for i64
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for i128
impl ZeroizeMetadata for i128
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for isize
impl ZeroizeMetadata for isize
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for u8
impl ZeroizeMetadata for u8
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for u16
impl ZeroizeMetadata for u16
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for u32
impl ZeroizeMetadata for u32
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for u64
impl ZeroizeMetadata for u64
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for u128
impl ZeroizeMetadata for u128
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for ()
impl ZeroizeMetadata for ()
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for usize
impl ZeroizeMetadata for usize
const CAN_BE_BULK_ZEROIZED: bool = true
Source§impl ZeroizeMetadata for String
impl ZeroizeMetadata for String
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl ZeroizeMetadata for AtomicBool
impl ZeroizeMetadata for AtomicBool
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl ZeroizeMetadata for AtomicI8
impl ZeroizeMetadata for AtomicI8
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl ZeroizeMetadata for AtomicI16
impl ZeroizeMetadata for AtomicI16
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl ZeroizeMetadata for AtomicI32
impl ZeroizeMetadata for AtomicI32
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl ZeroizeMetadata for AtomicI64
impl ZeroizeMetadata for AtomicI64
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl ZeroizeMetadata for AtomicIsize
impl ZeroizeMetadata for AtomicIsize
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl ZeroizeMetadata for AtomicU8
impl ZeroizeMetadata for AtomicU8
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl ZeroizeMetadata for AtomicU16
impl ZeroizeMetadata for AtomicU16
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl ZeroizeMetadata for AtomicU32
impl ZeroizeMetadata for AtomicU32
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl ZeroizeMetadata for AtomicU64
impl ZeroizeMetadata for AtomicU64
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl ZeroizeMetadata for AtomicUsize
impl ZeroizeMetadata for AtomicUsize
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl<T> ZeroizeMetadata for *const T
impl<T> ZeroizeMetadata for *const T
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl<T> ZeroizeMetadata for *mut T
impl<T> ZeroizeMetadata for *mut T
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl<T> ZeroizeMetadata for [T]where
T: FastZeroizable + ZeroizeMetadata,
impl<T> ZeroizeMetadata for [T]where
T: FastZeroizable + ZeroizeMetadata,
const CAN_BE_BULK_ZEROIZED: bool = T::CAN_BE_BULK_ZEROIZED
Source§impl<T: ZeroizeMetadata + FastZeroizable> ZeroizeMetadata for Option<T>
impl<T: ZeroizeMetadata + FastZeroizable> ZeroizeMetadata for Option<T>
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl<T: ZeroizeMetadata + FastZeroizable> ZeroizeMetadata for Box<T>
impl<T: ZeroizeMetadata + FastZeroizable> ZeroizeMetadata for Box<T>
const CAN_BE_BULK_ZEROIZED: bool = T::CAN_BE_BULK_ZEROIZED
Source§impl<T: ZeroizeMetadata> ZeroizeMetadata for Vec<T>
impl<T: ZeroizeMetadata> ZeroizeMetadata for Vec<T>
const CAN_BE_BULK_ZEROIZED: bool = false
Source§impl<T: ZeroizeMetadata, const N: usize> ZeroizeMetadata for [T; N]
Zeroizes an array using either bulk memset or recursive element zeroization.
impl<T: ZeroizeMetadata, const N: usize> ZeroizeMetadata for [T; N]
Zeroizes an array using either bulk memset or recursive element zeroization.
When fast=true, forces bulk memset regardless of T::CAN_BE_BULK_ZEROIZED.
When fast=false, recursively zeroizes each element.
This function is exposed for testing both code paths independently.