Skip to main content

JsonPrettyError

Struct JsonPrettyError 

Source
pub struct JsonPrettyError { /* private fields */ }
Expand description

Error from validating, planning, or writing formatted JSON tokens.

Syntax errors can carry a byte offset into the input, while output limits, capacity failures, and I/O errors do not. A source error is available only when the failure has an underlying cause.

use std::error::Error;

use qubit_json::format::JsonPrettyErrorKind;
use qubit_json::format::JsonPrettyOptions;
use qubit_json::format::format_json_tokens;

let options = JsonPrettyOptions::builder().build()?;
let syntax = format_json_tokens(b"{}x", &options, None).expect_err("trailing data is invalid");
assert_eq!(syntax.kind(), JsonPrettyErrorKind::Syntax);
assert_eq!(syntax.offset(), Some(2));
assert!(syntax.source().is_some());

let limit = format_json_tokens(b"0", &options, Some(0)).expect_err("zero output allowance");
assert_eq!(limit.kind(), JsonPrettyErrorKind::OutputLimit);
assert_eq!(limit.offset(), None);

Implementations§

Source§

impl JsonPrettyError

Source

pub fn kind(&self) -> JsonPrettyErrorKind

Returns the stable error category.

Source

pub fn offset(&self) -> Option<usize>

Returns an available zero-based byte coordinate in the source input.

None means the error is not associated with a source position; it does not mean byte zero. Not every syntax error is guaranteed to have an offset.

§Returns

The source input byte offset, or None when no coordinate is available.

Trait Implementations§

Source§

impl Debug for JsonPrettyError

Source§

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

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

impl Display for JsonPrettyError

Source§

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

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

impl Error for JsonPrettyError

Source§

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

Returns the optional underlying parsing, allocation, or I/O cause.

Formatting and debug output do not include this cause automatically.

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

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.