| 128 | #[test] |
| 129 | #[cfg(feature = "alloc")] |
| 130 | fn derive_struct_skip() { |
| 131 | #[derive(Zeroize, ZeroizeOnDrop)] |
| 132 | struct Z { |
| 133 | string: String, |
| 134 | vec: Vec<u8>, |
| 135 | #[zeroize(skip)] |
| 136 | bytearray: [u8; 3], |
| 137 | number: usize, |
| 138 | boolean: bool, |
| 139 | } |
| 140 | |
| 141 | let mut value = Z { |
| 142 | string: String::from("Hello, world!"), |
| 143 | vec: vec![1, 2, 3], |
| 144 | bytearray: [4, 5, 6], |
| 145 | number: 42, |
| 146 | boolean: true, |
| 147 | }; |
| 148 | |
| 149 | value.zeroize(); |
| 150 | |
| 151 | assert!(value.string.is_empty()); |
| 152 | assert!(value.vec.is_empty()); |
| 153 | assert_eq!(&value.bytearray, &[4, 5, 6]); |
| 154 | assert_eq!(value.number, 0); |
| 155 | assert!(!value.boolean); |
| 156 | } |
| 157 | |
| 158 | #[test] |
| 159 | #[cfg(feature = "alloc")] |