```rust use virtue::prelude::*;
pub fn deriveyourderive(input: TokenStream) -> TokenStream { deriveyourderiveinner(input) .unwraporelse(|error| error.intotoken_stream()) }
fn deriveyourderiveinner(input: TokenStream) -> ResultGenerator
for more information
generator.implfor("YourTrait")?
.generatefn("yourfn")
.withselfarg(FnSelfArg::RefSelf)
.body(|fnbody| {
fnbody.pushparsed("println!(\"Hello world\");");
})?;
},
Body::Enum(body) => {
// Implement your enum body here
// See Generator
for more information
generator.implfor("YourTrait")?
.generatefn("yourfn")
.withselfarg(FnSelfArg::RefSelf)
.body(|fnbody| {
fnbody.pushparsed("println!(\"Hello world\");");
})?;
},
}
generator.finish()
}
```
Will generate
ignore
impl YourTrait for <Struct or Enum> {
fn your_fn(&self) { // .generate_fn("your_fn").with_self_arg(FnSelfArg::RefSelf)
println!("Hello world"); // fn_body.push_parsed(...)
}
}