Crates.io | pub_this |
lib.rs | pub_this |
version | 0.1.0 |
source | src |
created_at | 2022-11-15 16:53:55.98026 |
updated_at | 2022-11-15 16:53:55.98026 |
description | Make your structs' fields be pub |
homepage | |
repository | https://github.com/lesterhnu/pub_this |
max_upload_size | |
id | 715836 |
size | 69,993 |
这个宏让你的struct的字段变为
pub
,省去在每个字段名前加pub
的操作;注意 仅仅作用于字段上,对struct的可见性没有影响
This macro add
pub
before your structs' fields; Notice: It won't addpub
before your structs
use pub_this::pub_this;
#[pub_this]
struct Father<T> {
pub name: String,
age: usize,
child: T,
}
mod children{
use pub_this::pub_this;
#[pub_this]
pub struct Son {
name: String,
age: usize,
}
pub struct Daughter {
name: String,
age: usize,
}
}
fn main() {
let f1 = Father {
name: "me".to_string(),
age: 55,
child: children::Son {
name: "You".to_string(),
age: 10,
},
};
let f2 = Father {
name: "me".to_string(),
age: 55,
child: children::Daughter {
name: "You".to_string(), // hint private field
age: 10, // hint private field
},
};
println!{"{}",f1.child.name}
}
Here is what it looks like after expand