如果这是基本的,请原谅我,我对Rust 还很陌生.我正在try 创建一些struct
来模仿外部API.在外部API中,有一个属性可以是数字,也可以是字符串.在打印脚本中,我可以这样做:
interface ApiParams {
thing: string | number;
}
在Rust中,我想对struct
中的thing
属性做同样的事情,但我找不到任何这样的方法,或者动态类型的例子,或者与我试图在这里做的非常匹配的问题.允许动态类型似乎与rust的类型安全特性背道而驰,但我仍然需要在我的API和数据库中允许这一点,以匹配外部API.
我试过这个:
pub enum Thing {
CouldBeANumber(u8),
CouldBeAString(String),
}
struct ExternalApiThing {
thing: Thing
}
但是当我发布到我的API时,我收到了这样的错误
Json deserialize error: unknown variant 'the string that was posted', expected 'CouldBeANumber' or 'CouldBeAString' at line 1 column 1921
个
很明显,我不明白如何创建一个枚举,这样我就可以使用任何数字或任何字符串.
一个人如何在Rust 中做到这样的事情呢?