有没有办法让我在库的结构或枚举上使用#[derive]而无需编辑实际的库源代码?

时间:2018-01-15 16:28:03

标签: rust

我正在使用一个使用serde-json的Rust程序,我非常喜欢它为自定义结构和枚举使用的#[derive(Serialize, Deserialize)]宏。使用我自己的类型,宏可以正常工作。但是,我希望能够从我正在使用的其他库中调用类型的宏。

我会自己实现这些类型的SerializeDeserialize特征,但Deserialize的代码特别复杂,写入每个库都会很痛苦我在结构中使用的类型。

1 个答案:

答案 0 :(得分:8)

  

我是否有办法在库中使用RoutesViewModel { public int ID { get; set; } public string DriverName { get; set; } public string Vehicle { get; set; } public string Destination { get; set; } public DateTime StartingTime { get; set; } } 而无需编辑实际库的源代码?

不,没有。

另见:

对于Serde的特定情况,您可以使用"remote deriving",但您必须提供类型的重复定义,基本上重写原始结构。

许多板条箱提供了一个功能标志来启用可选功能,因此您可能希望查看您的箱子是否有一个用于Serde。如果没有,您可以将其提交给图书馆。