MCPcopy Create free account
hub / github.com/RustCrypto/utils / derive_enum_skip

Function derive_enum_skip

zeroize/tests/zeroize_derive.rs:160–230  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

158#[test]
159#[cfg(feature = "alloc")]
160fn derive_enum_skip() {
161 #[derive(Zeroize, ZeroizeOnDrop)]
162 enum Z {
163 #[allow(dead_code)]
164 Variant1,
165 #[zeroize(skip)]
166 Variant2([u8; 3]),
167 #[zeroize(skip)]
168 Variant3 {
169 string: String,
170 vec: Vec<u8>,
171 bytearray: [u8; 3],
172 number: usize,
173 boolean: bool,
174 },
175 Variant4 {
176 string: String,
177 vec: Vec<u8>,
178 #[zeroize(skip)]
179 bytearray: [u8; 3],
180 number: usize,
181 boolean: bool,
182 },
183 }
184
185 let mut value = Z::Variant2([4, 5, 6]);
186
187 value.zeroize();
188
189 assert!(matches!(&value, Z::Variant2([4, 5, 6])));
190
191 let mut value = Z::Variant3 {
192 string: String::from("Hello, world!"),
193 vec: vec![1, 2, 3],
194 bytearray: [4, 5, 6],
195 number: 42,
196 boolean: true,
197 };
198
199 value.zeroize();
200
201 assert!(matches!(
202 &value,
203 Z::Variant3 { string, vec, bytearray, number, boolean }
204 if string == "Hello, world!" &&
205 vec == &[1, 2, 3] &&
206 bytearray == &[4, 5, 6] &&
207 *number == 42 &&
208 *boolean
209 ));
210
211 let mut value = Z::Variant4 {
212 string: String::from("Hello, world!"),
213 vec: vec![1, 2, 3],
214 bytearray: [4, 5, 6],
215 number: 42,
216 boolean: true,
217 };

Callers

nothing calls this directly

Calls 1

zeroizeMethod · 0.45

Tested by

no test coverage detected