如何复制另一个结构的字段



是否有任何机箱或功能允许我从另一个结构复制字段?

板条箱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")]

不,没有办法做到这一点。

如果你觉得必须这样做,你需要编写一个构建脚本:

  1. 找到目标机箱的源代码
  2. 使用类似syn的板条箱解析源代码
  3. 找到有问题的类型
  4. 再次输出

另请参阅:

  • 如何将宏属性应用于在单独模块中定义的函数
  • 将Serialize特性添加到第三方库中的类型
  • 一个结构是否可以扩展现有结构,保留所有字段

对于您的具体情况,我主张手动实现任何特性。

相关内容

  • 没有找到相关文章