diff --git a/Cargo.toml b/Cargo.toml index c657305..1a76daf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,3 +44,7 @@ axum = ["axum-framework", "futures"] [package.metadata.docs.rs] features = ["actix4", "warp"] + +[[example]] +name = "csv_vectors" +test = true \ No newline at end of file diff --git a/examples/csv_vectors.rs b/examples/csv_vectors.rs index c193c64..78ed6af 100644 --- a/examples/csv_vectors.rs +++ b/examples/csv_vectors.rs @@ -8,7 +8,7 @@ use serde::de::DeserializeOwned; use std::default::Default; -#[derive(Debug, Deserialize, Serialize)] +#[derive(Debug, PartialEq, Deserialize, Serialize)] struct Query { #[serde(deserialize_with = "from_csv")] r: Vec, @@ -21,6 +21,17 @@ fn main() { println!("{:?}", q); } +#[test] +fn deserialize_sequence() { + let q = "s=12&r=1,2,3"; + let q: Query = qs::from_str(q).unwrap(); + let expected = Query { + r: vec![1, 2, 3], + s: 12, + }; + assert_eq!(q, expected); +} + fn from_csv<'de, D, T>(deserializer: D) -> Result, D::Error> where D: serde::Deserializer<'de>,