#getter-setter #accessor #macro

nightly macro accessors

(WIP) 使用宏为Rust编写获取器和设置器 1.1

3个版本

使用旧的Rust 2015

0.0.3 2016年10月12日
0.0.2 2016年10月12日
0.0.1 2016年10月12日

21 in #accessor

CC0许可证

7KB
121

#[derive(accessors)]:Rust的获取器和设置器(WIP)

这是一个正在进行中的项目! API可能会发生变化。

我们使用nightly Rust中的新宏1.1支持来自动生成基本的获取器和设置器。如果你有一个导出具有许多字段的库,但不想使字段本身公开,这将很有用。

如果你指定#[setters(into = true)],你可以生成使用Into来自动转换为所需类型的设置器。

#![feature(proc_macro)]

#[macro_use]
extern crate accessors;

#[derive(getters, setters)]
#[setters(into = true)]
struct Simple {
    field: String,
}

impl Simple {
    pub fn new(field: String) -> Simple {
        Simple { field: field }
    }
}

fn main() {
    let mut s = Simple::new("hello".to_owned());
    println!("{}", s.field());
    s.set_field("there");
}

目前,你只能用nightly Rust使用它,但David Tolnay制定了一个路线图,说明如何与稳定Rust一起使用

依赖项

~2MB
~44K SLoC