Enum marked_yaml::Error
source · #[non_exhaustive]pub enum Error {
NotBoolean(Span),
IntegerParseFailure(ParseIntError, Span),
FloatParseFailure(ParseFloatError, Span),
UnknownFieldError(String, &'static [&'static str], Span),
Other(String, Span),
}
Available on crate feature
serde
only.Expand description
Errors which can come from deserialisation
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
NotBoolean(Span)
The value was not a valid boolean
IntegerParseFailure(ParseIntError, Span)
Failed to parse integer
FloatParseFailure(ParseFloatError, Span)
Failed to parse float
UnknownFieldError(String, &'static [&'static str], Span)
An unknown field was encountered
Other(String, Span)
Some other error occurred
Implementations§
source§impl Error
impl Error
sourcepub fn start_mark(&self) -> Option<Marker>
pub fn start_mark(&self) -> Option<Marker>
Retrieve the start marker if there is one
Most spans which are generated by the loader only have start marks (containers have end marks as well, but these failures) are unlikely to exist here.
const YAML: &str = r#"
bad: float
"#;
#[derive(Deserialize)]
struct Example {
bad: Spanned<f64>,
}
let nodes = parse_yaml(0, YAML).unwrap();
let err = from_node::<Example>(&nodes).err().unwrap();
assert!(matches!(&*err, Error::FloatParseFailure(_,_)));
let mark = err.start_mark().unwrap();
assert_eq!(mark.source(), 0);
assert_eq!(mark.line(), 2);
assert_eq!(mark.column(), 6);
Trait Implementations§
source§impl Error for Error
impl Error for Error
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
source§impl Error for Error
impl Error for Error
source§fn custom<T>(msg: T) -> Selfwhere
T: Display,
fn custom<T>(msg: T) -> Selfwhere
T: Display,
Raised when there is general error when deserializing a type. Read more
source§fn unknown_field(field: &str, expected: &'static [&'static str]) -> Self
fn unknown_field(field: &str, expected: &'static [&'static str]) -> Self
Raised when a
Deserialize
struct type received a field with an
unrecognized name.source§fn invalid_type(unexp: Unexpected<'_>, exp: &dyn Expected) -> Self
fn invalid_type(unexp: Unexpected<'_>, exp: &dyn Expected) -> Self
Raised when a
Deserialize
receives a type different from what it was
expecting. Read moresource§fn invalid_value(unexp: Unexpected<'_>, exp: &dyn Expected) -> Self
fn invalid_value(unexp: Unexpected<'_>, exp: &dyn Expected) -> Self
Raised when a
Deserialize
receives a value of the right type but that
is wrong for some other reason. Read moresource§fn invalid_length(len: usize, exp: &dyn Expected) -> Self
fn invalid_length(len: usize, exp: &dyn Expected) -> Self
Raised when deserializing a sequence or map and the input data contains
too many or too few elements. Read more
source§fn unknown_variant(variant: &str, expected: &'static [&'static str]) -> Self
fn unknown_variant(variant: &str, expected: &'static [&'static str]) -> Self
Raised when a
Deserialize
enum type received a variant with an
unrecognized name.source§fn missing_field(field: &'static str) -> Self
fn missing_field(field: &'static str) -> Self
Raised when a
Deserialize
struct type expected to receive a required
field with a particular name but that field was not present in the
input.source§fn duplicate_field(field: &'static str) -> Self
fn duplicate_field(field: &'static str) -> Self
Raised when a
Deserialize
struct type received more than one of the
same field.source§impl From<ParseFloatError> for Error
impl From<ParseFloatError> for Error
source§fn from(value: ParseFloatError) -> Self
fn from(value: ParseFloatError) -> Self
Converts to this type from the input type.
source§impl From<ParseIntError> for Error
impl From<ParseIntError> for Error
source§fn from(value: ParseIntError) -> Self
fn from(value: ParseIntError) -> Self
Converts to this type from the input type.
source§impl<'de> IntoDeserializer<'de, Error> for &'de MarkedMappingNode
impl<'de> IntoDeserializer<'de, Error> for &'de MarkedMappingNode
§type Deserializer = MarkedMappingNodeDeserializer<'de>
type Deserializer = MarkedMappingNodeDeserializer<'de>
The type of the deserializer being converted into.
source§fn into_deserializer(self) -> Self::Deserializer
fn into_deserializer(self) -> Self::Deserializer
Convert this value into a deserializer.
source§impl<'de> IntoDeserializer<'de, Error> for &'de MarkedScalarNode
impl<'de> IntoDeserializer<'de, Error> for &'de MarkedScalarNode
§type Deserializer = MarkedScalarNodeDeserializer<'de>
type Deserializer = MarkedScalarNodeDeserializer<'de>
The type of the deserializer being converted into.
source§fn into_deserializer(self) -> MarkedScalarNodeDeserializer<'de>
fn into_deserializer(self) -> MarkedScalarNodeDeserializer<'de>
Convert this value into a deserializer.
source§impl<'de> IntoDeserializer<'de, Error> for &'de MarkedSequenceNode
impl<'de> IntoDeserializer<'de, Error> for &'de MarkedSequenceNode
§type Deserializer = MarkedSequenceNodeDeserializer<'de>
type Deserializer = MarkedSequenceNodeDeserializer<'de>
The type of the deserializer being converted into.
source§fn into_deserializer(self) -> Self::Deserializer
fn into_deserializer(self) -> Self::Deserializer
Convert this value into a deserializer.
source§impl<'de> IntoDeserializer<'de, Error> for &'de Node
impl<'de> IntoDeserializer<'de, Error> for &'de Node
§type Deserializer = NodeDeserializer<'de>
type Deserializer = NodeDeserializer<'de>
The type of the deserializer being converted into.
source§fn into_deserializer(self) -> Self::Deserializer
fn into_deserializer(self) -> Self::Deserializer
Convert this value into a deserializer.
Auto Trait Implementations§
impl Freeze for Error
impl RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl UnwindSafe for Error
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more