Struct macro_tools::type_struct::protected::TypeStructParsed
source · pub struct TypeStructParsed {
pub item: ItemStruct,
pub item_name: Ident,
pub fields: Fields,
}
Expand description
Represents the outcome of parsing a Rust struct
definition.
This structure encapsulates details extracted from a structure definition, such as the structure itself, its name, and its fields. It provides a comprehensive view of a parsed structure, facilitating further processing or analysis of its components.
Fields§
§item: ItemStruct
The parsed structure item, encompassing the entire struct
.
item_name: Ident
Identifier of the struct, useful for referencing in generated code.
fields: Fields
Collection of struct’s fields, including visibility, attributes, and types.
Implementations§
source§impl TypeStructParsed
impl TypeStructParsed
sourcepub fn fields_many(&self) -> Vec<&Field>
pub fn fields_many(&self) -> Vec<&Field>
Returns a vector of the struct’s fields for iteration.
sourcepub fn field_types<'a>(&'a self) -> Vec<&'a Type>
pub fn field_types<'a>(&'a self) -> Vec<&'a Type>
Extracts the types of each field into a vector.
sourcepub fn field_names(&self) -> Option<Vec<Ident>>
pub fn field_names(&self) -> Option<Vec<Ident>>
Retrieves the names of each field, if they exist.
sourcepub fn first_field_type(&self) -> Result<Type>
pub fn first_field_type(&self) -> Result<Type>
Retrieves the type of the first field of the struct.
Returns the type if the struct has at least one field, otherwise returns an error.
sourcepub fn first_field_name(&self) -> Result<Option<Ident>>
pub fn first_field_name(&self) -> Result<Option<Ident>>
Retrieves the name of the first field of the struct, if available.
Returns Some
with the field identifier for named fields, or None
for unnamed fields.
Returns an error if the struct has no fields
Trait Implementations§
source§impl Debug for TypeStructParsed
impl Debug for TypeStructParsed
source§impl Parse for TypeStructParsed
impl Parse for TypeStructParsed
fn parse(input: ParseStream<'_>) -> Result<Self>
source§impl ToTokens for TypeStructParsed
impl ToTokens for TypeStructParsed
source§fn to_tokens(&self, tokens: &mut TokenStream)
fn to_tokens(&self, tokens: &mut TokenStream)
source§fn to_token_stream(&self) -> TokenStream
fn to_token_stream(&self) -> TokenStream
source§fn into_token_stream(self) -> TokenStreamwhere
Self: Sized,
fn into_token_stream(self) -> TokenStreamwhere
Self: Sized,
Auto Trait Implementations§
impl Freeze for TypeStructParsed
impl RefUnwindSafe for TypeStructParsed
impl !Send for TypeStructParsed
impl !Sync for TypeStructParsed
impl Unpin for TypeStructParsed
impl UnwindSafe for TypeStructParsed
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Spanned for Twhere
T: Spanned + ?Sized,
impl<T> Spanned for Twhere
T: Spanned + ?Sized,
source§fn span(&self) -> Span
fn span(&self) -> Span
Span
covering the complete contents of this syntax tree
node, or Span::call_site()
if this node is empty.