pub_this

Crates.iopub_this
lib.rspub_this
version0.1.0
sourcesrc
created_at2022-11-15 16:53:55.98026
updated_at2022-11-15 16:53:55.98026
descriptionMake your structs' fields be pub
homepage
repositoryhttps://github.com/lesterhnu/pub_this
max_upload_size
id715836
size69,993
liz (lesterhnu)

documentation

README

Description

这个宏让你的struct的字段变为 pub ,省去在每个字段名前加pub的操作;注意 仅仅作用于字段上,对struct的可见性没有影响

This macro add pub before your structs' fields; Notice: It won't add pub before your structs

Example

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}
}

Expand

Here is what it looks like after expand

pic

Commit count: 2

cargo fmt