Attribute Macro ut::clone_impl [−][src]
#[clone_impl]
Clones an group of async functions in an impl to a new sub structure
This is useful when you want to support both async and sync functions in a struct implementation.
Examples
#[derive(Default)] pub struct Example { pub fooers: Fooers, } #[derive(Default)] pub struct ExampleBlocking { pub fooers: FooersBlocking, } #[derive(Default)] pub struct Fooers; #[derive(Default)] pub struct FooersBlocking; #[ut::clone_impl] impl Fooers { pub async fn foo(&self, input: &str) -> String { format!("I am {} now", input) } } let out = ExampleBlocking::default().fooers.foo("sync"); assert_eq!(out, "I am sync now".to_owned())