gpt4 book ai didi

serialization - Java 的 transient 在 Serde 中的等价物是什么?

转载 作者:行者123 更新时间:2023-11-29 07:46:10 24 4
gpt4 key购买 nike

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

最佳答案

您可以使用 #[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)](或 #[serde(default = "fn_name")])属性。 Serde 反序列化跳过的字段,就好像隐式添加了 #[serde(default)] 一样,但如果您明确说明该值的来源,阅读您的代码的人会更清楚。

参见:

关于serialization - Java 的 transient 在 Serde 中的等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55505837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com