Compare commits
3 commits
f61a91234b
...
6124a4097b
Author | SHA1 | Date | |
---|---|---|---|
6124a4097b | |||
70ed898f1d | |||
2f97008475 |
1 changed files with 46 additions and 2 deletions
48
src/main.rs
48
src/main.rs
|
@ -425,8 +425,8 @@ where
|
||||||
{
|
{
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
|
|
||||||
let opt = Option::<&'de str>::deserialize(de)?;
|
let opt = Option::<std::borrow::Cow<'de, str>>::deserialize(de)?;
|
||||||
match opt {
|
match opt.as_deref() {
|
||||||
None | Some("") => Ok(None),
|
None | Some("") => Ok(None),
|
||||||
Some(s) => s.parse::<T>().map_err(serde::de::Error::custom).map(Some),
|
Some(s) => s.parse::<T>().map_err(serde::de::Error::custom).map(Some),
|
||||||
}
|
}
|
||||||
|
@ -671,4 +671,48 @@ 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<FritzBoxUpdateParams> = 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<FritzBoxUpdateParams> = 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,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
"#);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue