3个不稳定版本
0.2.0 | 2022年8月11日 |
---|---|
0.1.1 | 2022年4月13日 |
0.1.0 | 2022年4月13日 |
#1056 在 过程宏
每月 37 次下载
56KB
1.5K SLoC
子模型
项目尚未完成
进度
- 从宏输入中加载必要的子模型信息
- 生成代码
- 字段类型映射
- 额外的子模型字段
- 支持
Generic
- 条件字段类型映射
- 在子模型上添加额外
proc_marco
的更好方式
用法
使用 all
或 none
定义子模型类型
all
默认所有字段都是子模型的一部分none
默认为空结构体
在 all
或 none
中
- 如果只需要定义子模型名称,可以使用如下方式
#[sub_model(all("foo"),none("foo2"))]
- 或者使用完整模式
name = "foo"
可以定义一组信息
vis
子模型的可见性,默认pub
name
子模型的名称extra_field
子模型的额外字段,可以使用如下方式- 的
ty
定义额外字段的类型 - 的
from
定义如何创建此字段中的值,它接受一个无参数函数的路径
- 的
#[all(
name = "foo",
extra_field(
foo(ty = "bool", from = "Default::default")
))]
示例:向子模型 foo
添加一个名为 foo
的新字段,类型为 bool
,由 Default::default
创建
extra
添加到此新子模型的其他宏,例如
#[all(
name = "foo",
extra(
derive(Debug, Serialize, Deserialize)
))]
示例使子模型 foo
可以进行 序列化
和 反序列化
依赖项
~2MB
~42K SLoC