Как я могу реализовать черту Deserialize в структуре BigInt из библиотеки num? - PullRequest
0 голосов
/ 11 марта 2020

Я использую 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?

1 Ответ

3 голосов
/ 11 марта 2020

В общем, вы не можете. См. Как реализовать черту, которой я не владею, для типа, который мне не принадлежит? для получения более подробной информации

Для вашего конкретного случая c, num уже имеет функция для этого:

Функция serde включает сериализацию для типов в num-bigint, num-complex и num-rational.

, так просто используйте его:

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