|
@@ -2700,7 +2700,7 @@ impl Url {
|
|
|
where
|
|
where
|
|
|
D: serde::Deserializer<'de>,
|
|
D: serde::Deserializer<'de>,
|
|
|
{
|
|
{
|
|
|
- use serde::de::{Deserialize, Error, Unexpected};
|
|
|
|
|
|
|
+ use serde::de::{Deserialize, Error};
|
|
|
let (
|
|
let (
|
|
|
serialization,
|
|
serialization,
|
|
|
scheme_end,
|
|
scheme_end,
|
|
@@ -2726,10 +2726,8 @@ impl Url {
|
|
|
fragment_start,
|
|
fragment_start,
|
|
|
};
|
|
};
|
|
|
if cfg!(debug_assertions) {
|
|
if cfg!(debug_assertions) {
|
|
|
- url.check_invariants().map_err(|reason| {
|
|
|
|
|
- let reason: &str = &reason;
|
|
|
|
|
- Error::invalid_value(Unexpected::Other("value"), &reason)
|
|
|
|
|
- })?
|
|
|
|
|
|
|
+ url.check_invariants()
|
|
|
|
|
+ .map_err(|reason| Error::custom(reason))?
|
|
|
}
|
|
}
|
|
|
Ok(url)
|
|
Ok(url)
|
|
|
}
|
|
}
|
|
@@ -2942,7 +2940,7 @@ impl<'de> serde::Deserialize<'de> for Url {
|
|
|
where
|
|
where
|
|
|
D: serde::Deserializer<'de>,
|
|
D: serde::Deserializer<'de>,
|
|
|
{
|
|
{
|
|
|
- use serde::de::{Error, Unexpected, Visitor};
|
|
|
|
|
|
|
+ use serde::de::{Error, Visitor};
|
|
|
|
|
|
|
|
struct UrlVisitor;
|
|
struct UrlVisitor;
|
|
|
|
|
|
|
@@ -2957,10 +2955,7 @@ impl<'de> serde::Deserialize<'de> for Url {
|
|
|
where
|
|
where
|
|
|
E: Error,
|
|
E: Error,
|
|
|
{
|
|
{
|
|
|
- Url::parse(s).map_err(|err| {
|
|
|
|
|
- let err_s = format!("{}", err);
|
|
|
|
|
- Error::invalid_value(Unexpected::Str(s), &err_s.as_str())
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ Url::parse(s).map_err(|err| Error::custom(format!("{}: {:?}", err, s)))
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|