2 个版本
0.1.1 | 2022年4月10日 |
---|---|
0.1.0 | 2022年4月10日 |
#1269 in 过程宏
每月下载量:937
用于 8 个Crate(其中6个直接使用)
12KB
283 代码行
派生Deref宏
Crate derive-deref-rs
是一个宏库,用于轻松定义核心库中的 Derive 和 DrerfMut 特性。
如何使用 #[derive(Deref)]
- 只有单个字段的结构体
#[derive(Deref)] struct MyStruct { a: String }
这将使用字段 a 实现 Deref 和 DerefMut 特性。
#[derive(Deref)] struct MyStruct(String);
由于它只有一个字段,因此这也会正常工作。
- 具有多个字段的结构体
struct MyStruct { #[deref] a: String, b: String }
当一个结构体有多个字段时,我们需要指定哪个字段将用于解引用结构体。为此,只需在您想要使用的字段上添加
#[deref]
属性即可。您只能使用此属性一次,否则会出现编译错误。
宏的限制。
- 不支持 Enum 和 Union
- 仅支持只有一个字段的元组结构体。
- 在没有任何字段的 struct 上不起作用。
- 不能使用
#[deref]
属性来解引用具有两个字段的结构体。
依赖项
~1.5MB
~35K SLoC