Trait SourceGenerator

Source
pub trait SourceGenerator {
    // Provided methods
    fn generate_struct(
        &self,
        _args: AttributeArgs,
        _item: &ItemStruct,
    ) -> Result<Option<TokenStream>, Error> { ... }
    fn generate_enum(
        &self,
        _args: AttributeArgs,
        _item: &ItemEnum,
    ) -> Result<Option<TokenStream>, Error> { ... }
    fn generate_trait(
        &self,
        _args: AttributeArgs,
        _item: &ItemTrait,
    ) -> Result<Option<TokenStream>, Error> { ... }
    fn generate_mod(
        &self,
        _args: AttributeArgs,
        _item: &ItemMod,
    ) -> Result<Option<TokenStream>, Error> { ... }
    fn generate_file(
        &self,
        _args: AttributeArgs,
        _file: &File,
    ) -> Result<Option<TokenStream>, Error> { ... }
}
Expand description

Trait to be implemented by source generators.

Provided Methods§

Source

fn generate_struct( &self, _args: AttributeArgs, _item: &ItemStruct, ) -> Result<Option<TokenStream>, Error>

Generate struct definition. Return None if no changes are necessary.

Source

fn generate_enum( &self, _args: AttributeArgs, _item: &ItemEnum, ) -> Result<Option<TokenStream>, Error>

Generate enum definition. Return None if no changes are necessary.

Source

fn generate_trait( &self, _args: AttributeArgs, _item: &ItemTrait, ) -> Result<Option<TokenStream>, Error>

Generate trait definition. Return None if no changes are necessary.

Source

fn generate_mod( &self, _args: AttributeArgs, _item: &ItemMod, ) -> Result<Option<TokenStream>, Error>

Generate module. Return None if no changes are necessary.

Source

fn generate_file( &self, _args: AttributeArgs, _file: &File, ) -> Result<Option<TokenStream>, Error>

Generate the whole file. Return None if no changes are necessary.

Implementors§