Skip to main content

DataExt

Trait DataExt 

Source
pub trait DataExt {
    // Required methods
    fn is_struct(&self) -> bool;
    fn is_enum(&self) -> bool;
    fn is_union(&self) -> bool;
    fn as_struct(&self) -> Option<&DataStruct>;
    fn as_enum(&self) -> Option<&DataEnum>;
    fn as_union(&self) -> Option<&DataUnion>;
    fn span(&self) -> Span;
}
Expand description

Extension methods for syn::Data.

Provides variant predicates (is_struct, is_enum, is_union) and conversions (as_struct, as_enum, as_union).

§Examples

use zyn::ext::DataExt;

assert!(data.is_enum());
let e = data.as_enum().unwrap();
// e.variants ...

Required Methods§

Source

fn is_struct(&self) -> bool

Returns true if this is Data::Struct.

Source

fn is_enum(&self) -> bool

Returns true if this is Data::Enum.

Source

fn is_union(&self) -> bool

Returns true if this is Data::Union.

Source

fn as_struct(&self) -> Option<&DataStruct>

Returns the inner syn::DataStruct if this is a struct.

Source

fn as_enum(&self) -> Option<&DataEnum>

Returns the inner syn::DataEnum if this is an enum.

Source

fn as_union(&self) -> Option<&DataUnion>

Returns the inner syn::DataUnion if this is a union.

Source

fn span(&self) -> Span

Returns the span of this data item.

Implementations on Foreign Types§

Source§

impl DataExt for Data

Implementors§