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§
Sourcefn generate_struct(
&self,
_args: AttributeArgs,
_item: &ItemStruct,
) -> Result<Option<TokenStream>, Error>
fn generate_struct( &self, _args: AttributeArgs, _item: &ItemStruct, ) -> Result<Option<TokenStream>, Error>
Generate struct definition. Return None
if no changes are necessary.
Sourcefn generate_enum(
&self,
_args: AttributeArgs,
_item: &ItemEnum,
) -> Result<Option<TokenStream>, Error>
fn generate_enum( &self, _args: AttributeArgs, _item: &ItemEnum, ) -> Result<Option<TokenStream>, Error>
Generate enum definition. Return None
if no changes are necessary.
Sourcefn generate_trait(
&self,
_args: AttributeArgs,
_item: &ItemTrait,
) -> Result<Option<TokenStream>, Error>
fn generate_trait( &self, _args: AttributeArgs, _item: &ItemTrait, ) -> Result<Option<TokenStream>, Error>
Generate trait definition. Return None
if no changes are necessary.
Sourcefn generate_mod(
&self,
_args: AttributeArgs,
_item: &ItemMod,
) -> Result<Option<TokenStream>, Error>
fn generate_mod( &self, _args: AttributeArgs, _item: &ItemMod, ) -> Result<Option<TokenStream>, Error>
Generate module. Return None
if no changes are necessary.
Sourcefn generate_file(
&self,
_args: AttributeArgs,
_file: &File,
) -> Result<Option<TokenStream>, Error>
fn generate_file( &self, _args: AttributeArgs, _file: &File, ) -> Result<Option<TokenStream>, Error>
Generate the whole file. Return None
if no changes are necessary.