ReaderError

Enum ReaderError 

Source
#[non_exhaustive]
pub enum ReaderError { SyntaxError(JsonSyntaxError), UnexpectedValueType { expected: ValueType, actual: ValueType, location: JsonReaderPosition, }, UnexpectedStructure { kind: UnexpectedStructureKind, location: JsonReaderPosition, }, MaxNestingDepthExceeded { max_nesting_depth: u32, location: JsonReaderPosition, }, UnsupportedNumberValue { number: String, location: JsonReaderPosition, }, IoError { error: Error, location: JsonReaderPosition, }, }
Expand description

Error which occurred while reading from a JSON reader

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

SyntaxError(JsonSyntaxError)

A syntax error was encountered

§

UnexpectedValueType

The next JSON value had an unexpected type

This error can occur for example when trying to read a JSON number when the next value is actually a JSON boolean.

Fields

§expected: ValueType

The expected JSON value type

§actual: ValueType

The actual JSON value type

§location: JsonReaderPosition

Location where the error occurred in the JSON document

§

UnexpectedStructure

The JSON document had an unexpected structure

This error occurs when trying to consume more elements than a JSON array or object has, or when trying to end a JSON array or object when there are still unprocessed elements in it. If these remaining elements should be ignored they can be skipped like this:

while json_reader.has_next()? {
    json_reader.skip_value()?;
}

Note: For a JSON object skip_name and skip_value have to be called for every member to skip its name and value.

Fields

§kind: UnexpectedStructureKind

Describes why the JSON document is considered to have an invalid structure

§location: JsonReaderPosition

Location where the error occurred in the JSON document

§

MaxNestingDepthExceeded

The maximum nesting depth was exceeded while reading

See ReaderSettings::max_nesting_depth for more information.

Fields

§max_nesting_depth: u32

The maximum nesting depth

§location: JsonReaderPosition

Location within the JSON document

§

UnsupportedNumberValue

An unsupported JSON number value was encountered

See ReaderSettings::restrict_number_values for more information.

Fields

§number: String

The unsupported number value

§location: JsonReaderPosition

Location of the number value within the JSON document

§

IoError

An IO error occurred while trying to read from the underlying reader, or malformed UTF-8 data was encountered

Fields

§error: Error

The IO error which occurred

§location: JsonReaderPosition

Rough location where the error occurred within the JSON document

The location might not be completely accurate. Since the IO error might have been returned by the underlying reader, it might not be related to the content of the JSON document. For example the location might still point to the beginning of the current JSON value while the IO error actually occurred multiple bytes ahead while fetching more data from the underlying reader.

Trait Implementations§

Source§

impl Debug for ReaderError

Source§

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

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

impl Display for ReaderError

Source§

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

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

impl Error for ReaderError

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns 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 From<JsonSyntaxError> for ReaderError

Source§

fn from(source: JsonSyntaxError) -> Self

Converts to this type from the input type.
Source§

impl From<ReaderError> for DeserializerError

Available on crate feature serde only.
Source§

fn from(source: ReaderError) -> Self

Converts to this type from the input type.
Source§

impl From<ReaderError> for TransferError

Source§

fn from(source: ReaderError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

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§

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>,

Source§

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>,

Source§

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.