Documentation | Github | crates.io | libs.rs
A serde wrapper that simplifies (de)serializaton of data types using [Display
][]
(as [ToString::to_string(&self)
][ToString
]) and [FromStr
][] as intermediataries.
```rust use serde::{Serialize, Deserialize}; use std::net::IpAddr;
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, }
struct Optional {
// The above but handling null types
#[serde(with = "serde_str::opt")]
ip: Option
struct Empty {
// The above but an empty string is a none-value
#[serde(with = "serde_str::emp")]
ip: Option
struct EmptyOptional {
// The above but an empty string, null, or unspecified is a none-value.
#[serde(with = "serde_str::emp", default)]
ip: Option
See docs.rs for more examples and usage.
Licensed under either of
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.