gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 11:36:39 25 4
gpt4 key购买 nike

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

struct Product {
name: String,
sku: String,
amount: i32,
}
crate B
#[derive(copy_fields_from = "a::Product", InputObject)]
struct ProductApi {}
我必须在使用的 API 中从另一个 crate 中公开几个对象
#[derive(InputObject)]”。为此,我必须复制其他结构的所有结构。是否可以复制另一个结构的字段?也许使用假设的语法,例如 #[derive(copy_fields_from ="a::Product")] .

最佳答案

不,没有办法干净地做到这一点。
如果您觉得必须这样做,您需要编写一个构建脚本:

  • 找到目标 crate 的源代码。
  • 使用像 syn 这样的 crate 解析源代码.
  • 找到有问题的类型。
  • 再次输出它们。

  • 也可以看看:
  • How do I apply a macro attribute to a function defined in a separate module?
  • Add Serialize attribute to type from third-party lib
  • Is it possible for one struct to extend an existing struct, keeping all the fields?

  • 对于您的具体情况,我提倡手动实现任何特征。

    关于rust - 如何复制另一个结构的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64901751/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com