这个宏让你的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