#holder #getter-setter #traits #gen #auto #derive

holder_derive

使用holder trait实现getter setter auto gen

11个重大版本发布

0.14.0 2024年7月18日
0.11.0 2024年7月8日

#9#holder

Download history 541/week @ 2024-07-06 136/week @ 2024-07-13 12/week @ 2024-07-20 183/week @ 2024-07-27

872 每月下载量
holder 中使用

MIT 许可证

9KB
149

holder

使用holder trait实现getter setter auto gen

示例

use holder::{Holder, Holdable};

#[derive(Holder)]
struct Wrapper {
    #[hold]
    value: Token
}

#[derive(Holdable)]
struct Token(u32);

#[test]
fn holder_test() {
    let mut wrapper = Wrapper { value: Token(123) };
    let token: &Token = wrapper.token();
    let token_mut: &mut Token = wrapper.token_mut();
}

fn holder_test_2<T: TokenHolder>(mut holder: T) {
    *holder.token_mut() = Token(123);
}

依赖

~0.8–1.3MB
~25K SLoC