5 个版本
使用旧版 Rust 2015
0.2.2 | 2017年4月12日 |
---|---|
0.2.1 | 2016年8月1日 |
0.2.0 | 2016年7月24日 |
0.1.1 | 2016年7月24日 |
0.1.0 | 2016年7月24日 |
#2701 在 Rust 模式
13KB
208 行
delegatemethod-rs
将方法调用委托给字段。
0.2.0 版本新特性
代码整体重新组织。
现在我们支持方法的泛型参数。
但这意味着我们现在生成整个 impl 而不是 impl 项。
现在你必须将整个 impl 放在宏里面。
示例
假设你有一个名为 Inner
的结构体,其中包含方法 fn1
和 fn2
。
你还有一个名为 Outer
的结构体,其中字段使用 Inner
作为类型。
你可以使用 delegate_method
将某些方法实现委托给字段。
#[derive(Copy, Clone)]
struct Outer {
inner1: Inner,
inner2: Inner,
}
delegate_method! {
impl Outer {
// the <as FieldType> is optional below
// it is only used for methods without self or &self or &mut self argument
inner as Inner:
pub fn fn1();
// here comes another group, using another field.
inner2 as Inner:
pub fn fn2() -> usize;
}
}
致谢
- 这个想法来自 Tommy McGuire 的博客,但调整以更好地匹配 Rust 语法。