Java在Serde中的瞬态等效于什么?

时间:2019-04-03 23:42:16

标签: serialization rust serde

我有兴趣使变量不使用Java的tensorflow-gpu之类的关键字自动序列化(例如,通过Serde),而是在Rust中。我需要这个来存储密码。当然,我可以在序列化到磁盘后手动清除数据,但是我想知道是否有更好,更自动的选项。

1 个答案:

答案 0 :(得分:10)

您可以使用#[serde(skip)]属性:

use serde::{Deserialize, Serialize}; // 1.0.88

#[derive(Deserialize, Serialize)]
struct MyStruct {
    field1: i32, // this will be (de)serialized
    #[serde(skip)]
    field2: i32, // this will be skipped
}

如果类型需要 de 序列化,则最好在#[serde(skip)]后面加上#[serde(default)](或{{ 1}})属性。 Serde对已跳过的字段进行反序列化,就好像是隐式添加了#[serde(default = "fn_name")]一样,但是如果您明确指出此值的来源,则对于阅读您的代码的人来说更清楚。

请参阅: