[][src]Crate serde_strz

Serde Str

Documentation | Github | crates.io | lib.rs

A (de)serializer for anything that has implemented FromStr / Display but does not have Serialize/Deserialize.

Example

use std::net::IpAddr;

/// A demonstration structure that holds a lonesome IP address.
#[derive(Serialize, Deserialize)]
struct WithIp {
	#[serde(with = "serde_strz")]
	ip: IpAddr,
}

use serde_json::{
	from_str,
	to_string,
};
let with_ip: WithIp = from_str(r#"{"ip": "127.0.0.1"}"#)?;
assert_eq!(WithIp { ip: [127, 0, 0, 1].into() }, with_ip);
assert_eq!(to_string(&with_ip)?, r#"{"ip":"127.0.0.1"}"#);

let with_ip: WithIp = from_str(r#"{"ip": "::"}"#)?;
assert_eq!(WithIp { ip: [0u16; 8].into() }, with_ip);
assert_eq!(to_string(&with_ip)?, r#"{"ip":"::"}"#);

Modules

emp

A (de)serializer for anything that has implemented FromStr / Display (as ToString) but does not have Serialize/Deserialize, and is wrapped in an Option type, and may be represented as an empty string.

opt

A (de)serializer for anything that has implemented FromStr / Display (as ToString) but does not have Serialize/Deserialize, and is wrapped in an Option type.

Functions

deserialize

Deserialize function, see crate docs examples to see how to use it

serialize

Serialize function, see crate docs examples to see how to use it