#[non_exhaustive]
pub enum Error {
Show 22 variants ControlCharacterInString, EofWhileParsingList, EofWhileParsingObject, EofWhileParsingString, EofWhileParsingValue, ExpectedColon, ExpectedHighSurrogate, ExpectedListCommaOrEnd, ExpectedLowSurrogate, ExpectedObjectCommaOrEnd, ExpectedSomeIdent, ExpectedSomeValue, InvalidEscape, InvalidNumber, InvalidType, InvalidUnicodeCodePoint, KeyMustBeAString, LoneSurrogateFound, TrailingCharacters, TrailingComma, RecursionLimitExceeded, Custom(String),
}
Expand description

This type represents all possible errors that can occur when deserializing JSON data

It implements [std::error::Error] trait so long as either std or unstable features are enabled. std is enabled by default and disabling it makes the crate no_std. unstable makes it necessary to build code with nightly compiler.

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.
§

ControlCharacterInString

Control character (U+0000 to U+001F) found in string. Those must always be escaped.

§

EofWhileParsingList

EOF while parsing a list.

§

EofWhileParsingObject

EOF while parsing an object.

§

EofWhileParsingString

EOF while parsing a string.

§

EofWhileParsingValue

EOF while parsing a JSON value.

§

ExpectedColon

Expected this character to be a ':'.

§

ExpectedHighSurrogate

Expected a high surrogate (D800–DBFF) but found something else

§

ExpectedListCommaOrEnd

Expected this character to be either a ',' or a ']'.

§

ExpectedLowSurrogate

Expected a low surrogate (DC00–DFFF) but found something else

§

ExpectedObjectCommaOrEnd

Expected this character to be either a ',' or a '}'.

§

ExpectedSomeIdent

Expected to parse either a true, false, or a null.

§

ExpectedSomeValue

Expected this character to start a JSON value.

§

InvalidEscape

Invalid escape sequence

§

InvalidNumber

Invalid number.

§

InvalidType

Invalid type

§

InvalidUnicodeCodePoint

Invalid unicode code point.

§

KeyMustBeAString

Object key is not a string.

§

LoneSurrogateFound

Found a lone surrogate, which can exist in JSON but cannot be encoded to UTF-8

§

TrailingCharacters

JSON has non-whitespace trailing characters after the value.

§

TrailingComma

JSON has a comma after the last value in an array or map.

§

RecursionLimitExceeded

JSON is nested too deeply, exceeded the recursion limit.

§

Custom(String)

Custom error message from serde

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: Display>(msg: T) -> Self

Raised when there is general error when deserializing a type. Read more
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 unknown_field(field: &str, expected: &'static [&'static str]) -> Self

Raised when a Deserialize struct type received a field 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 PartialEq for Error

source§

fn eq(&self, other: &Error) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Error

source§

impl StructuralEq for Error

source§

impl StructuralPartialEq for Error

Auto Trait Implementations§

§

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.