#struct #macro #struct-fields #visbility

macro puball

公开你结构体中的所有字段

2个版本

0.1.1 2022年8月8日
0.1.0 2022年8月8日

#2012过程宏

Apache-2.0

7KB
52

puball

github docs.rs crates.io

一个简单的API,帮助你生成所有字段公开的结构体。

动机

我的一个朋友写了一个包含71个 pub 关键字的巨大结构体。写这么多 pub 关键字太难了。尤其是当你意识到在完成结构体设计后你忘记添加那些可见性之后。

用法

# Cargo.toml

[dependencies]
puball = "0.1"
mod my_space {
    use puball::pub_all;

    pub_all!{
        pub struct NoPrivacy {
            a: i32,
            b: String,
            c: bool,
        }
    }
}

fn main() {
    use my_space::NoPrivacy;

    let np = NoPrivacy {
        a: 1,
        b: String::new(),
        c: true,
    };

    assert_eq!(1, np.a);
    assert!(np.c);
}

依赖

~1.5MB
~35K SLoC