#lombok #macro #automatic #getter-setter #editor #build #plugs

macro r-lombok-macros

r-lombok 是一个自动连接到您的编辑器和构建工具的 Rust 宏

3 个版本

0.0.3 2022 年 8 月 18 日
0.0.2 2022 年 7 月 29 日
0.0.1 2022 年 7 月 19 日

1692进程宏

MIT 许可证

23KB
319 行代码(不含注释)

r-lombok-macros

Crates.io Documentation

r-lombok-macros 提供宏。它是一个自动连接到您的编辑器和构建工具的 Rust 宏,类似于 Java 的 lombok

有关此包的更多信息,请参阅包文档

使用示例

use std::fmt::Debug;
use r_lombok_macros::{Getter, Setter};

#[derive(Debug, Getter, Setter)]
struct Company {
    name: &'static str,
    boss: &'static str,
    number: u32,
    department: Vec<String>,
}

#[derive(Getter, Setter)]
struct CompanyGen<T> where T: Debug {
    name: T,
    boss: &'static str,
    number: u32,
    department: Vec<String>,
}

#[derive(Getter, Setter)]
struct CompanyWrap {
    sub_company: CompanyGen<Company>,
    name: &'static str,
}

// Unit struct
#[derive(Getter, Setter, Debug)]
struct UnitStruct {}

fn main() {
    let mut xp = Company {
        name: "xp",
        boss: "Big Brother",
        number: u32::MAX,
        department: vec!["HR".to_owned(), "Finance".to_owned()],
    };
    println!("xp name = {:?} boss = {:?} number = {:?} department = {:?}", xp.get_name(), xp.get_boss(), xp.get_number(), xp.get_department());
    xp.set_name("set_name");
    xp.set_boss("set_boss");
    xp.set_number(u32::MIN);
    xp.set_department(vec!["department".to_owned()]);


    let xp_t = CompanyGen::<Company> {
        name: xp,
        boss: "Big Brother",
        number: u32::MAX,
        department: vec!["HR".to_owned(), "Finance".to_owned()],
    };
    println!("xp_t name = {:?} boss = {:?} number = {:?} department = {:?}", xp_t.get_name(), xp_t.get_boss(), xp_t.get_number(), xp_t.get_department());

    let xp_wrap = CompanyWrap {
        sub_company: xp_t,
        name: "xp_wrap",
    };
    println!("xp_wrap name = {:?} sub_company = {:?}", xp_wrap.get_name(), xp_wrap.get_sub_company().get_name());
    let unit = UnitStruct {};
    println!("unit = {:?}", unit);
}

更多示例请参阅 测试

获取帮助

您也可以通过 问题 获取帮助。

许可证

本项目采用 MIT 许可证

贡献

除非您明确声明,否则您提交给 r-lombok-macros 的任何有意贡献均应按照 MIT 许可证授权,不附加任何额外条款或条件。

依赖项

~1.5MB
~35K SLoC