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(Box<dyn Error>, 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(Box<dyn Error>, Span)

Some other error occurred

Implementations§

source§

impl Error

source

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 Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

1.30.0 · source§

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

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl Error for Error

source§

fn custom<T>(msg: T) -> Self
where 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

Raised when a Deserialize struct type received a field with an unrecognized name.
source§

fn invalid_type(unexp: Unexpected<'_>, exp: &dyn Expected) -> Self

Raised when a Deserialize receives a type different from what it was expecting. Read more
source§

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 more
source§

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

Raised when a Deserialize enum type received a variant with an unrecognized name.
source§

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

Raised when a Deserialize struct type received more than one of the same field.
source§

impl From<ParseFloatError> for Error

source§

fn from(value: ParseFloatError) -> Self

Converts to this type from the input type.
source§

impl From<ParseIntError> for Error

source§

fn from(value: ParseIntError) -> Self

Converts to this type from the input type.
source§

impl<'de> IntoDeserializer<'de, Error> for &'de MarkedMappingNode

§

type Deserializer = MarkedMappingNodeDeserializer<'de>

The type of the deserializer being converted into.
source§

fn into_deserializer(self) -> Self::Deserializer

Convert this value into a deserializer.
source§

impl<'de> IntoDeserializer<'de, Error> for &'de MarkedScalarNode

§

type Deserializer = MarkedScalarNodeDeserializer<'de>

The type of the deserializer being converted into.
source§

fn into_deserializer(self) -> MarkedScalarNodeDeserializer<'de>

Convert this value into a deserializer.
source§

impl<'de> IntoDeserializer<'de, Error> for &'de MarkedSequenceNode

§

type Deserializer = MarkedSequenceNodeDeserializer<'de>

The type of the deserializer being converted into.
source§

fn into_deserializer(self) -> Self::Deserializer

Convert this value into a deserializer.
source§

impl<'de> IntoDeserializer<'de, Error> for &'de Node

§

type Deserializer = NodeDeserializer<'de>

The type of the deserializer being converted into.
source§

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> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.