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

Function derive_zeroize_on_drop_impl

zeroize_derive/src/lib.rs:99–120  ·  view source on GitHub ↗
(input: DeriveInput)

Source from the content-addressed store, hash-verified

97}
98
99fn derive_zeroize_on_drop_impl(input: DeriveInput) -> TokenStream {
100 let zeroizers = generate_fields(&input, quote! { zeroize_or_on_drop });
101
102 let (impl_gen, type_gen, where_) = input.generics.split_for_impl();
103 let name = input.ident.clone();
104
105 let drop_impl = quote! {
106 impl #impl_gen Drop for #name #type_gen #where_ {
107 fn drop(&mut self) {
108 use ::zeroize::__internal::AssertZeroize;
109 use ::zeroize::__internal::AssertZeroizeOnDrop;
110 #zeroizers
111 }
112 }
113 };
114 let zeroize_on_drop_impl = impl_zeroize_on_drop(&input);
115
116 quote! {
117 #drop_impl
118 #zeroize_on_drop_impl
119 }
120}
121
122/// Custom derive attributes for `Zeroize`
123#[derive(Default)]

Callers 1

derive_zeroize_on_dropFunction · 0.85

Calls 3

generate_fieldsFunction · 0.85
impl_zeroize_on_dropFunction · 0.85
cloneMethod · 0.45

Tested by

no test coverage detected