ZeroizeMetadata

Trait ZeroizeMetadata 

Source
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§

Source

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

Source§

impl ZeroizeMetadata for char

Source§

impl ZeroizeMetadata for f32

Source§

impl ZeroizeMetadata for f64

Source§

impl ZeroizeMetadata for i8

Source§

impl ZeroizeMetadata for i16

Source§

impl ZeroizeMetadata for i32

Source§

impl ZeroizeMetadata for i64

Source§

impl ZeroizeMetadata for i128

Source§

impl ZeroizeMetadata for isize

Source§

impl ZeroizeMetadata for u8

Source§

impl ZeroizeMetadata for u16

Source§

impl ZeroizeMetadata for u32

Source§

impl ZeroizeMetadata for u64

Source§

impl ZeroizeMetadata for u128

Source§

impl ZeroizeMetadata for ()

Source§

impl ZeroizeMetadata for usize

Source§

impl ZeroizeMetadata for String

Source§

impl ZeroizeMetadata for AtomicBool

Source§

impl ZeroizeMetadata for AtomicI8

Source§

impl ZeroizeMetadata for AtomicI16

Source§

impl ZeroizeMetadata for AtomicI32

Source§

impl ZeroizeMetadata for AtomicI64

Source§

impl ZeroizeMetadata for AtomicIsize

Source§

impl ZeroizeMetadata for AtomicU8

Source§

impl ZeroizeMetadata for AtomicU16

Source§

impl ZeroizeMetadata for AtomicU32

Source§

impl ZeroizeMetadata for AtomicU64

Source§

impl ZeroizeMetadata for AtomicUsize

Source§

impl<T> ZeroizeMetadata for *const T

Source§

impl<T> ZeroizeMetadata for *mut T

Source§

impl<T> ZeroizeMetadata for [T]

Source§

const CAN_BE_BULK_ZEROIZED: bool = T::CAN_BE_BULK_ZEROIZED

Source§

impl<T: ZeroizeMetadata + FastZeroizable> ZeroizeMetadata for Option<T>

Source§

impl<T: ZeroizeMetadata + FastZeroizable> ZeroizeMetadata for Box<T>

Source§

const CAN_BE_BULK_ZEROIZED: bool = T::CAN_BE_BULK_ZEROIZED

Source§

impl<T: ZeroizeMetadata> ZeroizeMetadata for Vec<T>

Source§

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.

Source§

const CAN_BE_BULK_ZEROIZED: bool = T::CAN_BE_BULK_ZEROIZED

Implementors§