pub struct BindingInfo<'a> {
pub binding: Ident,
pub style: BindStyle,
// some fields omitted
}
Information about a specific binding. This contains both an Ident
reference to the given field, and the syn &'a Field
descriptor for that
field.
This type supports quote::ToTokens
, so can be directly used within the
quote!
macro. It expands to a reference to the matched field.
The name which this BindingInfo will bind to.
The type of binding which this BindingInfo will create.
Returns a reference to the underlying syn
AST node which this
BindingInfo
references
Generates the pattern fragment for this field binding.
let di: syn::DeriveInput = parse_quote! {
enum A {
B{ a: i32, b: i32 },
C(u32),
}
};
let s = Structure::new(&di);
assert_eq!(
s.variants()[0].bindings()[0].pat().to_string(),
quote! {
ref __binding_0
}.to_string()
);
Returns a list of the type parameters which are referenced in this
field's type.
If the field contains any macros in type position, all parameters will
be considered bound. This is because we cannot determine which type
parameters are bound by type macros.
let di: syn::DeriveInput = parse_quote! {
struct A<T, U> {
a: Option<T>,
b: U,
}
};
let mut s = Structure::new(&di);
assert_eq!(
s.variants()[0].bindings()[0].referenced_ty_params(),
&[&(syn::Ident::new("T", proc_macro2::Span::call_site()))]
);
This method tests for self
and other
values to be equal, and is used by ==
. Read more
This method tests for !=
.
Performs copy-assignment from source
. Read more
Feeds this value into the given [Hasher
]. Read more
Feeds a slice of this type into the given [Hasher
]. Read more
Formats the value using the given formatter. Read more
Write self
to the given TokenStream
. Read more
Convert self
directly into a TokenStream
object. Read more
Creates owned data from borrowed data, usually by cloning. Read more
🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Immutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static
Mutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Returns a Span
covering the complete contents of this syntax tree node, or [Span::call_site()
] if this node is empty. Read more