mirror of
https://github.com/instant-labs/instant-xml.git
synced 2025-02-16 06:52:15 +00:00
Stop eagerly checking for missing values
This commit is contained in:
parent
99dab24219
commit
a1d7d826f8
@ -144,13 +144,11 @@ macro_rules! from_xml_for_number {
|
|||||||
|
|
||||||
let mut value = None;
|
let mut value = None;
|
||||||
FromXmlStr::<Self>::deserialize(deserializer, &mut value)?;
|
FromXmlStr::<Self>::deserialize(deserializer, &mut value)?;
|
||||||
match value {
|
if let Some(value) = value {
|
||||||
Some(value) => {
|
*into = Some(value.0);
|
||||||
*into = Some(value.0);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
None => Err(Error::MissingValue(Kind::Scalar)),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
const KIND: Kind = Kind::Scalar;
|
const KIND: Kind = Kind::Scalar;
|
||||||
@ -190,13 +188,11 @@ impl<'xml> FromXml<'xml> for char {
|
|||||||
|
|
||||||
let mut value = None;
|
let mut value = None;
|
||||||
FromXmlStr::<Self>::deserialize(deserializer, &mut value)?;
|
FromXmlStr::<Self>::deserialize(deserializer, &mut value)?;
|
||||||
match value {
|
if let Some(value) = value {
|
||||||
Some(value) => {
|
*into = Some(value.0);
|
||||||
*into = Some(value.0);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
None => Err(Error::MissingValue(Kind::Scalar)),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
const KIND: Kind = Kind::Scalar;
|
const KIND: Kind = Kind::Scalar;
|
||||||
@ -283,13 +279,11 @@ where
|
|||||||
|
|
||||||
let mut value = None;
|
let mut value = None;
|
||||||
T::Owned::deserialize(deserializer, &mut value)?;
|
T::Owned::deserialize(deserializer, &mut value)?;
|
||||||
match value {
|
if let Some(value) = value {
|
||||||
Some(value) => {
|
*into = Some(Cow::Owned(value));
|
||||||
*into = Some(Cow::Owned(value));
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
None => Err(Error::MissingValue(Kind::Scalar)),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
const KIND: Kind = Kind::Scalar;
|
const KIND: Kind = Kind::Scalar;
|
||||||
@ -308,23 +302,17 @@ impl<'xml, T: FromXml<'xml>> FromXml<'xml> for Option<T> {
|
|||||||
match into.as_mut() {
|
match into.as_mut() {
|
||||||
Some(value) => {
|
Some(value) => {
|
||||||
<T>::deserialize(deserializer, value)?;
|
<T>::deserialize(deserializer, value)?;
|
||||||
match value {
|
|
||||||
Some(_) => Ok(()),
|
|
||||||
None => Err(Error::MissingValue(<T as FromXml<'_>>::KIND)),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
None => {
|
None => {
|
||||||
let mut value = None;
|
let mut value = None;
|
||||||
<T>::deserialize(deserializer, &mut value)?;
|
<T>::deserialize(deserializer, &mut value)?;
|
||||||
match value {
|
if let Some(value) = value {
|
||||||
Some(value) => {
|
*into = Some(Some(value));
|
||||||
*into = Some(Some(value));
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
None => Err(Error::MissingValue(<T as FromXml<'_>>::KIND)),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn missing_value() -> Result<Self, Error> {
|
fn missing_value() -> Result<Self, Error> {
|
||||||
@ -709,13 +697,11 @@ impl<'xml> FromXml<'xml> for IpAddr {
|
|||||||
|
|
||||||
let mut value = None;
|
let mut value = None;
|
||||||
FromXmlStr::<Self>::deserialize(deserializer, &mut value)?;
|
FromXmlStr::<Self>::deserialize(deserializer, &mut value)?;
|
||||||
match value {
|
if let Some(value) = value {
|
||||||
Some(value) => {
|
*into = Some(value.0);
|
||||||
*into = Some(value.0);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
None => Err(Error::MissingValue(Kind::Scalar)),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
const KIND: Kind = Kind::Scalar;
|
const KIND: Kind = Kind::Scalar;
|
||||||
|
Loading…
Reference in New Issue
Block a user