Skip to main content

batch_trait

Macro batch_trait 

Source
batch_trait!() { /* proc-macro */ }
Expand description

对已声明的 trait 批量生成 impl 块的函数式宏。

§语法

batch_trait!(Trait路径: impl-specs; Trait路径: impl-specs)

: 前是 trait 路径(支持 sub::MyTrait),: 后是 #[batch_impl] 同款参数, ; 分隔不同的 trait。

trait A {}
trait B<T> {}
mod foo { pub trait C {} }

batch_trait!(
    A: usize, isize;
    B: <T> B<T> Vec<T>;
    foo::C: u32
);
// → impl A for usize {}  +  impl A for isize {}
// → impl<T> B<T> for Vec<T> {}
// → impl foo::C for u32 {}

注意:trait 有泛型时,必须在 : 后的 impl-spec 中显式写出 Trait名<泛型>