INNER CODE UNIT · Rust
word_wrapper_derive
0xMiden/crypto · miden-crypto-derive/src/lib.rs:136
pub fn word_wrapper_derive(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();
// Validate that this is a tuple struct with a single field
let field_type = match &input.data {
Data::Struct(data_struct) => match &data_struct.fields {
Fields::Unnamed(fields) if fields.unnamed.len() == 1 => match fields.unnamed.first() {
Some(field) => &field.ty,
None => {
return syn::Error::new_spanned(
&input,
"WordWrapper requires exactly one field",
)
.to_compile_error()
.into();