#可见性 # #属性 #详细程度

fully_pub

一次使多个项或字段公开的宏

5个版本

0.1.4 2023年4月9日
0.1.3 2023年4月9日
0.1.2 2023年4月9日
0.1.1 2023年4月8日
0.1.0 2023年4月8日

645过程宏

每月31次下载

MIT/Apache

13KB
157

完全公开

github crates.io docs.rs

这个crate公开了一个单一的属性宏,可以用来减轻将Rust项的每个字段标记为pub时的冗长,通过自动完成这项工作。

[dependencies]
fully_pub = "0.1"

示例

use fully_pub::fully_pub;

#[fully_pub]
struct User {
    name: String,
    age: i32,
    #[fully_pub(exclude)]
    secret: String,
}

#[fully_pub]
impl User {
    fn new(name: String, age: i32, secret: String) -> Self {
        Self { name, age, secret }
    }

    fn happy_birthday(&mut self) {
        self.age += 1;
    }

    #[fully_pub(exclude)]
    fn get_secret(&mut self) -> &str {
        &self.secret
    }
}

此宏几乎可以在Rust编程语言中的任何地方使用,如果需要,甚至可以递归地用于嵌套模块。

有关更多详细信息,请参阅宏本身的文档。


许可证

根据您的选择,许可为Apache License,版本2.0MIT许可证
除非您明确表示,否则您提交给此crate的任何有意包含的贡献,根据Apache-2.0许可证定义,应双重许可如上所述,不附加任何其他条款或条件。

依赖项

~260–700KB
~17K SLoC