Crate serde_qs [−] [src]
Serde support for querystring-style strings
Querystrings are not formally defined and loosely take the form of nested urlencoded queries.
This library aims for compatability with the syntax of
qs and also of the
Rack::Utils::parse_nested_query
implementation.
For users who do not require nested URL parameters, it is highly
recommended that the serde_urlencoded
crate is used instead, which
will almost certainly perform better for deserializing simple inputs.
The serialization implementation of this library is adapted from
serde_urlencoded
.
Usage
See the examples folder for a more detailed introduction.
Serializing/Deserializing is designed to work with maps and structs.
#[macro_use] extern crate serde_derive; extern crate serde_qs as qs; #[derive(Debug, PartialEq, Deserialize, Serialize)] struct Address { city: String, postcode: String, } #[derive(Debug, PartialEq, Deserialize, Serialize)] struct QueryParams { id: u8, name: String, address: Address, phone: u32, user_ids: Vec<u8>, } let params = QueryParams { id: 42, name: "Acme".to_string(), phone: 12345, address: Address { city: "Carrot City".to_string(), postcode: "12345".to_string(), }, user_ids: vec![1, 2, 3, 4], }; let rec_params: QueryParams = qs::from_str("\ name=Acme&id=42&phone=12345&address[postcode]=12345&\ address[city]=Carrot+City&user_ids[0]=1&user_ids[1]=2&\ user_ids[2]=3&user_ids[3]=4") .unwrap(); assert_eq!(rec_params, params);
Modules
de |
Deserialization support for querystrings. |
ser |
Serialization support for querystrings. |
Structs
Deserializer |
A deserializer for the querystring format. |
Serializer |
A serializer for the querystring format. |
Functions
from_bytes |
Deserializes a querystring from a |
from_reader |
Convenience function that reads all bytes from |
from_str |
Deserializes a querystring from a |
to_string |
Serializes a value into a querystring. |