INNER CODE UNIT · Rust
derive_absorb
arkworks-rs/crypto-primitives · macros/src/lib.rs:8
pub fn derive_absorb(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as DeriveInput);
let name = input.ident;
let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl();
let len = if let Data::Struct(ref data_struct) = input.data {
data_struct.fields.len()
} else {
panic!(
"`Absorb` can only be derived for structs, {} is not a struct",
name
);
};
let mut to_sponge_bytes = Vec::<TokenStream2>::with_capacity(len);
let mut to_sponge_field_elements = Vec::<TokenStream2>::with_capacity(len);