use crate::{ArrayLength, GenericArray};
use zeroize::{Zeroize, ZeroizeOnDrop};
impl<Z: Zeroize, N: ArrayLength> Zeroize for GenericArray<Z, N> {
fn zeroize(&mut self) {
self.as_mut_slice().iter_mut().zeroize()
}
}
impl<Z: ZeroizeOnDrop, N: ArrayLength> ZeroizeOnDrop for GenericArray<Z, N> {}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_zeroize() {
let mut array = GenericArray::<u8, typenum::U2>::default();
array[0] = 4;
array[1] = 9;
array.zeroize();
assert_eq!(array[0], 0);
assert_eq!(array[1], 0);
}
}