diff --git a/src/main.rs b/src/main.rs index 0a21937..035b4ba 100644 --- a/src/main.rs +++ b/src/main.rs @@ -425,8 +425,8 @@ where { use serde::Deserialize; - let opt = Option::>::deserialize(de)?; - match opt.as_deref() { + let opt = Option::<&'de str>::deserialize(de)?; + match opt { None | Some("") => Ok(None), Some(s) => s.parse::().map_err(serde::de::Error::custom).map(Some), } @@ -671,48 +671,4 @@ mod parse_query_params { ) "#); } - - #[test] - fn ipv4_and_empty_ipv6() { - let uri = http::Uri::builder() - .path_and_query("/update?ipv4=1.2.3.4&ipv6=") - .build() - .unwrap(); - let query: Query = Query::try_from_uri(&uri).unwrap(); - insta::assert_debug_snapshot!(query, @r#" - Query( - FritzBoxUpdateParams { - domain: None, - ipv4: Some( - 1.2.3.4, - ), - ipv6: None, - ipv6prefix: None, - dualstack: None, - }, - ) - "#); - } - - #[test] - fn empty_ipv4_and_ipv6() { - let uri = http::Uri::builder() - .path_and_query("/update?ipv4=&ipv6=%3A%3A1234") - .build() - .unwrap(); - let query: Query = Query::try_from_uri(&uri).unwrap(); - insta::assert_debug_snapshot!(query, @r#" - Query( - FritzBoxUpdateParams { - domain: None, - ipv4: None, - ipv6: Some( - ::1234, - ), - ipv6prefix: None, - dualstack: None, - }, - ) - "#); - } }