#serialization #string #display #serde #from-str

serde-strz

使用 Display 和 FromStr 存储类型的 serde 包装器

3 个稳定版本

1.1.1 2020 年 10 月 16 日
1.1.0 2020 年 7 月 20 日
1.0.0 2020 年 6 月 24 日

#1931编码

Download history 26/week @ 2024-04-08 27/week @ 2024-04-15 41/week @ 2024-04-22 71/week @ 2024-04-29 399/week @ 2024-05-06 231/week @ 2024-05-13 114/week @ 2024-05-20 32/week @ 2024-05-27 56/week @ 2024-06-03 39/week @ 2024-06-10 20/week @ 2024-06-17 9/week @ 2024-06-24 47/week @ 2024-07-01 5/week @ 2024-07-08 15/week @ 2024-07-22

每月下载量 68 次

MIT/Apache

15KB
124

Serde Str

文档 | Github | crates.io | libs.rs

一个 serde 包装器,简化了使用 Display (作为 ToString::to_string(&self)) 和 FromStr 作为中间件的数据类型 (反) 序列化。

示例

use serde::{Serialize, Deserialize};
use std::net::IpAddr;

#[derive(Serialize, Deserialize)]
struct Struct {
	// By default IpAddr serializes the same in human-readable formats
	// like json. This forces the impl even for binary formats.
	//
	// More imporantly this is useful for types which don't have serde impl.
	#[serde(with = "serde_str")]
	ip: IpAddr,
}
#[derive(Serialize, Deserialize)]
struct Optional {
	// The above but handling null types
	#[serde(with = "serde_str::opt")]
	ip: Option<IpAddr>,
}
#[derive(Serialize, Deserialize)]
struct Empty {
	// The above but an empty string is a none-value
	#[serde(with = "serde_str::emp")]
	ip: Option<IpAddr>,
}
#[derive(Serialize, Deserialize)]
struct EmptyOptional {
	// The above but an empty string, null, or unspecified is a none-value.
	#[serde(with = "serde_str::emp", default)]
	ip: Option<IpAddr>,
}

有关更多示例和用法,请参阅 docs.rs

许可证

根据以下任一许可证发布:

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的您提交的任何有意贡献的内容,均应按照上述双重许可发布,不附加任何额外条款或条件。

依赖项

~110–345KB