是否有任何机箱或功能允许我从另一个结构复制字段?
板条箱A
struct Product {
name: String,
sku: String,
amount: i32,
}
板条箱B
#[derive(copy_fields_from = "a::Product", InputObject)]
struct ProductApi {}
我必须在API中暴露另一个机箱中的几个对象,该API使用"#[derive(InputObject)]
";。为此,我必须复制其他结构的所有结构。是否可以复制另一个结构的字段?也许使用假设语法,如#[derive(copy_fields_from ="a::Product")]
。
不,没有办法做到这一点。
如果你觉得必须这样做,你需要编写一个构建脚本:
- 找到目标机箱的源代码
- 使用类似
syn
的板条箱解析源代码 - 找到有问题的类型
- 再次输出
另请参阅:
- 如何将宏属性应用于在单独模块中定义的函数
- 将Serialize特性添加到第三方库中的类型
- 一个结构是否可以扩展现有结构,保留所有字段
对于您的具体情况,我主张手动实现任何特性。