This crate is a Rust library for serialize/deserialize structured query-string. This crate was strongly inspired by serdeurlencoded and serdeqs.
Serialize nested struct with period-delimited keys.
```rust use serde::Serialize;
struct Parent {
key1: String,
key2: Option
struct Child {
key3: i32,
key4: Option
asserteq!( serdestructuredqs::to_string(&Parent { key1: String::from("foo"), key2: Some(String::from("ほげ")), child: Child { key3: 100, key4: None, } }) .unwrap(), String::from("key1=foo&key2=%E3%81%BB%E3%81%92&child.key3=100") ) ```
And deserialize query-string with period-delimited keys into nested struct. ```rust use serde::Deserialize;
struct Parent {
key1: String,
key2: Option
struct Child {
key3: i32,
key4: Option
asserteq!(
serdestructuredqs::from_str::
The value of a field of type Vec
is serialized as a comma-separated string.
```rust use serde::Serialize;
struct MyStruct {
key: Vec
Similarly, comma-separated values are deserialized as Vec
.
```rust use serde::Deserialize;
struct MyStruct {
key: Vec
asserteq!(
serdestructuredqs::from_str::