// `None` is interpreted as a missing field so be sure to implement `Some` // as a present field. fn deserialize_option<V>(self, visitor: V) -> Result<V::Value, Error> where
V: serde_core::de::Visitor<'de>,
{ let span = self.span.clone();
visitor.visit_some(self).map_err(|mut e: Self::Error| { if e.span().is_none() {
e.set_span(Some(span));
}
e
})
}
fn deserialize_newtype_struct<V>( self,
_name: &'static str,
visitor: V,
) -> Result<V::Value, Error> where
V: serde_core::de::Visitor<'de>,
{ let span = self.span.clone();
visitor
.visit_newtype_struct(self)
.map_err(|mut e: Self::Error| { if e.span().is_none() {
e.set_span(Some(span));
}
e
})
}
if toml_datetime::de::is_datetime(name) { let span = self.span.clone(); iflet DeValue::Datetime(d) = self.input { return visitor.visit_map(DatetimeDeserializer::new(d)).map_err(
|mut e: Self::Error| { if e.span().is_none() {
e.set_span(Some(span));
}
e
},
);
}
}
ifself.validate_struct_keys { let span = self.span.clone(); match &self.input {
DeValue::Table(values) => validate_struct_keys(values, fields),
_ => Ok(()),
}
.map_err(|mut e: Self::Error| { if e.span().is_none() {
e.set_span(Some(span));
}
e
})?;
}
self.deserialize_any(visitor)
}
// Called when the type to deserialize is an enum, as opposed to a field in the type. fn deserialize_enum<V>( self,
name: &'static str,
variants: &'static [&'static str],
visitor: V,
) -> Result<V::Value, Error> where
V: serde_core::de::Visitor<'de>,
{ let span = self.span.clone(); matchself.input {
DeValue::String(v) => visitor.visit_enum(v.into_deserializer()),
DeValue::Table(v) => {
TableDeserializer::new(v, span.clone()).deserialize_enum(name, variants, visitor)
}
_ => Err(Error::custom("wanted string or table", Some(span.clone()))),
}
.map_err(|mut e: Self::Error| { if e.span().is_none() {
e.set_span(Some(span));
}
e
})
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.