【问题标题】:How can I implement the Deserialize trait on the BigInt struct from the num library?如何在 num 库中的 BigInt 结构上实现 Deserialize 特征?
【发布时间】:2020-03-11 18:39:09
【问题描述】:

我正在使用toml 来解析数据,并且我有这个结构:

use serde_derive::Deserialize;
use toml::value::Datetime;

#[derive(Debug, Deserialize)]
pub struct Trade {
    pub action: Action,
    pub date_time: Datetime,
    pub exchange: Exchange,
    pub fee: i64,
    pub id: Option<String>,
    pub matched: Option<bool>,
    pub price: i64,
    pub quantity: i64,
}

我想将整数 (i64) 替换为 BigInt,这是 num 库中的一个结构。

这可能吗?我是否必须自己实现 Deserialize 特征?

【问题讨论】:

    标签: data-structures struct rust serde


    【解决方案1】:

    一般来说,你不能。详情请见How do I implement a trait I don't own for a type I don't own?

    对于您的具体情况,num 已经有一个 feature

    serde 功能支持对num-bigintnum-complexnum-rational 中的类型进行序列化。

    所以就用它吧:

    [dependencies.num]
    version = "0.3"
    features = ["serde"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多