3 个稳定版本
1.1.1 | 2020 年 10 月 16 日 |
---|---|
1.1.0 | 2020 年 7 月 20 日 |
1.0.0 | 2020 年 6 月 24 日 |
#1931 在 编码
每月下载量 68 次
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 License, Version 2.0, (./LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (./LICENSE-MIT 或 http://opensource.org/licenses/MIT),任选其一。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的您提交的任何有意贡献的内容,均应按照上述双重许可发布,不附加任何额外条款或条件。
依赖项
~110–345KB