Skip to content

A Rust Macro Used To Make Your Structs' Fields Be Pub!

License

Notifications You must be signed in to change notification settings

lesterhnu/pub_this

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A Rust Macro Used To Make Your Structs' Fields Be Pub!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages