darling_core::codegen::from_variant_impl

Struct FromVariantImpl

source
pub struct FromVariantImpl<'a> {
    pub base: TraitImpl<'a>,
    pub ident: Option<&'a Ident>,
    pub fields: Option<&'a Ident>,
    pub discriminant: Option<&'a Ident>,
    pub attr_names: &'a PathList,
    pub forward_attrs: ForwardAttrs<'a>,
    pub from_ident: bool,
    pub supports: Option<&'a DataShape>,
}

Fields§

§base: TraitImpl<'a>§ident: Option<&'a Ident>

If set, the ident of the field into which the variant ident should be placed.

This is one of darling’s “magic fields”, which allow a type deriving a darling trait to get fields from the input syn element added to the deriving struct automatically.

§fields: Option<&'a Ident>

If set, the ident of the field into which the transformed output of the input variant’s fields should be placed.

This is one of darling’s “magic fields”.

§discriminant: Option<&'a Ident>

If set, the ident of the field into which the discriminant of the input variant should be placed. The receiving field must be an Option as not all enums have discriminants.

This is one of darling’s “magic fields”.

§attr_names: &'a PathList§forward_attrs: ForwardAttrs<'a>§from_ident: bool§supports: Option<&'a DataShape>

Trait Implementations§

source§

impl<'a> ExtractAttribute for FromVariantImpl<'a>

source§

fn local_declarations(&self) -> TokenStream

A set of mutable declarations for all members of the implementing type.
source§

fn attr_names(&self) -> &PathList

Gets the list of attribute names that should be parsed by the extractor.
source§

fn forward_attrs(&self) -> &ForwardAttrs<'_>

source§

fn param_name(&self) -> TokenStream

Gets the name used by the generated impl to return to the syn item passed as input.
source§

fn core_loop(&self) -> TokenStream

Gets the core from-meta-item loop that should be used on matching attributes.
source§

fn attrs_accessor(&self) -> TokenStream

Get the tokens to access a borrowed list of attributes where extraction will take place. Read more
source§

fn extractor(&self) -> TokenStream

Generates the main extraction loop.
source§

impl<'a> From<&'a FromVariantOptions> for FromVariantImpl<'a>

source§

fn from(v: &'a FromVariantOptions) -> Self

Converts to this type from the input type.
source§

impl<'a> OuterFromImpl<'a> for FromVariantImpl<'a>

source§

fn trait_path(&self) -> Path

Gets the path of the trait being implemented.
source§

fn trait_bound(&self) -> Path

source§

fn base(&'a self) -> &'a TraitImpl<'a>

source§

fn wrap<T: ToTokens>(&'a self, body: T, tokens: &mut TokenStream)

source§

impl<'a> ToTokens for FromVariantImpl<'a>

source§

fn to_tokens(&self, tokens: &mut TokenStream)

Write self to the given TokenStream. Read more
source§

fn to_token_stream(&self) -> TokenStream

Convert self directly into a TokenStream object. Read more
source§

fn into_token_stream(self) -> TokenStream
where Self: Sized,

Convert self directly into a TokenStream object. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for FromVariantImpl<'a>

§

impl<'a> RefUnwindSafe for FromVariantImpl<'a>

§

impl<'a> !Send for FromVariantImpl<'a>

§

impl<'a> !Sync for FromVariantImpl<'a>

§

impl<'a> Unpin for FromVariantImpl<'a>

§

impl<'a> UnwindSafe for FromVariantImpl<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Spanned for T
where T: Spanned + ?Sized,

source§

fn span(&self) -> Span

Returns a Span covering the complete contents of this syntax tree node, or Span::call_site() if this node is empty.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.