diff options
-rw-r--r-- | Cargo.toml | 4 | ||||
-rw-r--r-- | examples/csv_vectors.rs | 13 |
2 files changed, 16 insertions, 1 deletions
@@ -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<u8>, @@ -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<Vec<T>, D::Error> where D: serde::Deserializer<'de>, |