#field #inner #outer #methods

delegatemethod

将方法调用委托给字段

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日

#2701Rust 模式

MIT 许可证

13KB
208

delegatemethod-rs

将方法调用委托给字段。

0.2.0 版本新特性

代码整体重新组织。

现在我们支持方法的泛型参数。

但这意味着我们现在生成整个 impl 而不是 impl 项。

现在你必须将整个 impl 放在宏里面。

示例

假设你有一个名为 Inner 的结构体,其中包含方法 fn1fn2

你还有一个名为 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;
        }
    }

致谢

无运行时依赖