pub struct Error { /* private fields */ }openapi only.Expand description
This type represents all possible errors that can occur when serializing or deserializing JSON data.
Implementations§
Source§impl Error
impl Error
Sourcepub fn line(&self) -> usize
Available on native and crate feature serde only.
pub fn line(&self) -> usize
native and crate feature serde only.One-based line number at which the error was detected.
Characters in the first line of the input (before the first newline character) are in line 1.
Sourcepub fn column(&self) -> usize
Available on native and crate feature serde only.
pub fn column(&self) -> usize
native and crate feature serde only.One-based column number at which the error was detected.
The first character in the input and any characters immediately following a newline character are in column 1.
Note that errors may occur in column 0, for example if a read from an I/O stream fails immediately following a previously read newline character.
Sourcepub fn classify(&self) -> Category
Available on native and crate feature serde only.
pub fn classify(&self) -> Category
native and crate feature serde only.Categorizes the cause of this error.
Category::Io- failure to read or write bytes on an I/O streamCategory::Syntax- input that is not syntactically valid JSONCategory::Data- input data that is semantically incorrectCategory::Eof- unexpected end of the input data
Sourcepub fn is_io(&self) -> bool
Available on native and crate feature serde only.
pub fn is_io(&self) -> bool
native and crate feature serde only.Returns true if this error was caused by a failure to read or write bytes on an I/O stream.
Sourcepub fn is_syntax(&self) -> bool
Available on native and crate feature serde only.
pub fn is_syntax(&self) -> bool
native and crate feature serde only.Returns true if this error was caused by input that was not syntactically valid JSON.
Sourcepub fn is_data(&self) -> bool
Available on native and crate feature serde only.
pub fn is_data(&self) -> bool
native and crate feature serde only.Returns true if this error was caused by input data that was semantically incorrect.
For example, JSON containing a number is semantically incorrect when the type being deserialized into holds a String.
Sourcepub fn is_eof(&self) -> bool
Available on native and crate feature serde only.
pub fn is_eof(&self) -> bool
native and crate feature serde only.Returns true if this error was caused by prematurely reaching the end of the input data.
Callers that process streaming input may be interested in retrying the deserialization once more data is available.
Sourcepub fn io_error_kind(&self) -> Option<ErrorKind>
Available on native and crate feature serde and crate feature std only.
pub fn io_error_kind(&self) -> Option<ErrorKind>
native and crate feature serde and crate feature std only.The kind reported by the underlying standard library I/O error, if this error was caused by a failure to read or write bytes on an I/O stream.
§Example
use serde_json::Value;
use std::io::{self, ErrorKind, Read};
use std::process;
struct ReaderThatWillTimeOut<'a>(&'a [u8]);
impl<'a> Read for ReaderThatWillTimeOut<'a> {
fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {
if self.0.is_empty() {
Err(io::Error::new(ErrorKind::TimedOut, "timed out"))
} else {
self.0.read(buf)
}
}
}
fn main() {
let reader = ReaderThatWillTimeOut(br#" {"k": "#);
let _: Value = match serde_json::from_reader(reader) {
Ok(value) => value,
Err(error) => {
if error.io_error_kind() == Some(ErrorKind::TimedOut) {
// Maybe this application needs to retry certain kinds of errors.
} else {
eprintln!("error: {}", error);
process::exit(1);
}
}
};
}Trait Implementations§
Source§impl Error for Error
impl Error for Error
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl Error for Error
impl Error for Error
Source§fn custom<T>(msg: T) -> Errorwhere
T: Display,
fn custom<T>(msg: T) -> Errorwhere
T: Display,
Source§fn invalid_type(unexp: Unexpected<'_>, exp: &dyn Expected) -> Error
fn invalid_type(unexp: Unexpected<'_>, exp: &dyn Expected) -> Error
Deserialize receives a type different from what it was
expecting. Read moreSource§fn invalid_value(unexp: Unexpected<'_>, exp: &dyn Expected) -> Error
fn invalid_value(unexp: Unexpected<'_>, exp: &dyn Expected) -> Error
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
Source§fn unknown_variant(variant: &str, expected: &'static [&'static str]) -> Self
fn unknown_variant(variant: &str, expected: &'static [&'static str]) -> Self
Deserialize enum type received a variant with an
unrecognized name.Source§fn unknown_field(field: &str, expected: &'static [&'static str]) -> Self
fn unknown_field(field: &str, expected: &'static [&'static str]) -> Self
Deserialize struct type received a field with an
unrecognized name.Source§fn missing_field(field: &'static str) -> Self
fn missing_field(field: &'static str) -> Self
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
Deserialize struct type received more than one of the
same field.Source§impl From<Error> for SchemaError
impl From<Error> for SchemaError
Source§fn from(e: Error) -> SchemaError
fn from(e: Error) -> SchemaError
Source§impl From<Error> for DatabaseError
impl From<Error> for DatabaseError
Source§fn from(err: Error) -> DatabaseError
fn from(err: Error) -> DatabaseError
Source§impl From<Error> for NoSQLError
impl From<Error> for NoSQLError
Source§fn from(err: Error) -> NoSQLError
fn from(err: Error) -> NoSQLError
Source§impl From<Error> for ExecutionError
impl From<Error> for ExecutionError
Source§fn from(source: Error) -> ExecutionError
fn from(source: Error) -> ExecutionError
Source§impl From<Error> for SourceError
impl From<Error> for SourceError
Source§fn from(source: Error) -> SourceError
fn from(source: Error) -> SourceError
Source§impl From<Error> for DynamicError
impl From<Error> for DynamicError
Source§fn from(source: Error) -> DynamicError
fn from(source: Error) -> DynamicError
Source§impl From<Error> for SerializationError
impl From<Error> for SerializationError
Source§fn from(source: Error) -> SerializationError
fn from(source: Error) -> SerializationError
Source§impl From<Error> for SocialAuthError
Conversion from serde_json::Error
impl From<Error> for SocialAuthError
Conversion from serde_json::Error
Source§fn from(error: Error) -> SocialAuthError
fn from(error: Error) -> SocialAuthError
Source§impl From<Error> for BrowsableApiError
impl From<Error> for BrowsableApiError
Source§fn from(source: Error) -> BrowsableApiError
fn from(source: Error) -> BrowsableApiError
Source§impl From<Error> for SchemaError
impl From<Error> for SchemaError
Source§fn from(source: Error) -> SchemaError
fn from(source: Error) -> SchemaError
Source§impl From<Error> for CommandError
impl From<Error> for CommandError
Source§fn from(err: Error) -> CommandError
fn from(err: Error) -> CommandError
Source§impl From<Error> for ClientError
impl From<Error> for ClientError
Source§fn from(source: Error) -> ClientError
fn from(source: Error) -> ClientError
Source§impl From<Error> for GrpcAuthError
impl From<Error> for GrpcAuthError
Source§fn from(source: Error) -> GrpcAuthError
fn from(source: Error) -> GrpcAuthError
Source§impl From<Error> for DeeplinkError
impl From<Error> for DeeplinkError
Source§fn from(source: Error) -> DeeplinkError
fn from(source: Error) -> DeeplinkError
Source§impl<'de> IntoDeserializer<'de, Error> for Map<String, Value>
impl<'de> IntoDeserializer<'de, Error> for Map<String, Value>
Source§fn into_deserializer(
self,
) -> <Map<String, Value> as IntoDeserializer<'de, Error>>::Deserializer
fn into_deserializer( self, ) -> <Map<String, Value> as IntoDeserializer<'de, Error>>::Deserializer
Source§impl<'de> IntoDeserializer<'de, Error> for &'de Map<String, Value>
impl<'de> IntoDeserializer<'de, Error> for &'de Map<String, Value>
Source§type Deserializer = &'de Map<String, Value>
type Deserializer = &'de Map<String, Value>
Source§fn into_deserializer(
self,
) -> <&'de Map<String, Value> as IntoDeserializer<'de, Error>>::Deserializer
fn into_deserializer( self, ) -> <&'de Map<String, Value> as IntoDeserializer<'de, Error>>::Deserializer
Source§impl<'de> IntoDeserializer<'de, Error> for Value
impl<'de> IntoDeserializer<'de, Error> for Value
Source§type Deserializer = Value
type Deserializer = Value
Source§fn into_deserializer(
self,
) -> <Value as IntoDeserializer<'de, Error>>::Deserializer
fn into_deserializer( self, ) -> <Value as IntoDeserializer<'de, Error>>::Deserializer
Source§impl<'de> IntoDeserializer<'de, Error> for &'de Value
impl<'de> IntoDeserializer<'de, Error> for &'de Value
Source§type Deserializer = &'de Value
type Deserializer = &'de Value
Source§fn into_deserializer(
self,
) -> <&'de Value as IntoDeserializer<'de, Error>>::Deserializer
fn into_deserializer( self, ) -> <&'de Value as IntoDeserializer<'de, Error>>::Deserializer
Source§impl<'de> IntoDeserializer<'de, Error> for &'de RawValue
impl<'de> IntoDeserializer<'de, Error> for &'de RawValue
Source§type Deserializer = &'de RawValue
type Deserializer = &'de RawValue
Source§fn into_deserializer(
self,
) -> <&'de RawValue as IntoDeserializer<'de, Error>>::Deserializer
fn into_deserializer( self, ) -> <&'de RawValue as IntoDeserializer<'de, Error>>::Deserializer
Auto Trait Implementations§
impl !RefUnwindSafe for Error
impl !UnwindSafe for Error
impl Freeze for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl UnsafeUnpin for Error
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = !
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<E> ServerFnErrorAssertions<E> for Ewhere
E: Debug,
impl<E> ServerFnErrorAssertions<E> for Ewhere
E: Debug,
Source§fn should_contain_message(&self, expected: &str)where
E: Display,
fn should_contain_message(&self, expected: &str)where
E: Display,
Source§fn should_have_message(&self, expected: &str)where
E: Display,
fn should_have_message(&self, expected: &str)where
E: Display,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.