pub struct Jiter<'j> { /* private fields */ }Expand description
A JSON iterator.
Implementations§
Source§impl<'j> Jiter<'j>
impl<'j> Jiter<'j>
Sourcepub fn new(data: &'j [u8]) -> Self
pub fn new(data: &'j [u8]) -> Self
Constructs a new Jiter.
§Arguments
data: The JSON data to be parsed.allow_inf_nan: Whether to allowNaN,Infinityand-Infinityas numbers.
pub fn with_allow_inf_nan(self) -> Self
pub fn with_allow_partial_strings(self) -> Self
Sourcepub fn current_position(&self) -> LinePosition
pub fn current_position(&self) -> LinePosition
Get the current LinePosition of the parser.
Sourcepub fn current_index(&self) -> usize
pub fn current_index(&self) -> usize
Get the current index of the parser.
Sourcepub fn slice_to_current(&self, start: usize) -> &'j [u8] ⓘ
pub fn slice_to_current(&self, start: usize) -> &'j [u8] ⓘ
Get a slice of the underlying JSON data from start to current_index.
Sourcepub fn error_position(&self, index: usize) -> LinePosition
pub fn error_position(&self, index: usize) -> LinePosition
Convert an error index to a LinePosition.
§Arguments
index: The index of the error to find the position of.
Sourcepub fn peek(&mut self) -> JiterResult<Peek>
pub fn peek(&mut self) -> JiterResult<Peek>
Peek at the next JSON value without consuming it.
Sourcepub fn next_null(&mut self) -> JiterResult<()>
pub fn next_null(&mut self) -> JiterResult<()>
Assuming the next value is null, consume it. Error if it is not null, or is invalid JSON.
Sourcepub fn known_null(&mut self) -> JiterResult<()>
pub fn known_null(&mut self) -> JiterResult<()>
Knowing the next value is null, consume it.
Sourcepub fn next_bool(&mut self) -> JiterResult<bool>
pub fn next_bool(&mut self) -> JiterResult<bool>
Assuming the next value is true or false, consume it. Error if it is not a boolean, or is invalid JSON.
§Returns
The boolean value.
Sourcepub fn known_bool(&mut self, peek: Peek) -> JiterResult<bool>
pub fn known_bool(&mut self, peek: Peek) -> JiterResult<bool>
Knowing the next value is true or false, parse it.
Sourcepub fn next_number(&mut self) -> JiterResult<NumberAny>
pub fn next_number(&mut self) -> JiterResult<NumberAny>
Sourcepub fn known_number(&mut self, peek: Peek) -> JiterResult<NumberAny>
pub fn known_number(&mut self, peek: Peek) -> JiterResult<NumberAny>
Knowing the next value is a number, parse it.
Sourcepub fn next_int(&mut self) -> JiterResult<NumberInt>
pub fn next_int(&mut self) -> JiterResult<NumberInt>
Assuming the next value is an integer, consume it. Error if it is not an integer, or is invalid JSON.
Sourcepub fn known_int(&mut self, peek: Peek) -> JiterResult<NumberInt>
pub fn known_int(&mut self, peek: Peek) -> JiterResult<NumberInt>
Knowing the next value is an integer, parse it.
Sourcepub fn next_float(&mut self) -> JiterResult<f64>
pub fn next_float(&mut self) -> JiterResult<f64>
Assuming the next value is a float, consume it. Error if it is not a float, or is invalid JSON.
Sourcepub fn known_float(&mut self, peek: Peek) -> JiterResult<f64>
pub fn known_float(&mut self, peek: Peek) -> JiterResult<f64>
Knowing the next value is a float, parse it.
Sourcepub fn next_number_bytes(&mut self) -> JiterResult<&[u8]>
pub fn next_number_bytes(&mut self) -> JiterResult<&[u8]>
Assuming the next value is a number, consume it and return bytes from the original JSON data.
Sourcepub fn known_number_bytes(&mut self, peek: Peek) -> JiterResult<&[u8]>
pub fn known_number_bytes(&mut self, peek: Peek) -> JiterResult<&[u8]>
Knowing the next value is a number, parse it and return bytes from the original JSON data.
Sourcepub fn next_str(&mut self) -> JiterResult<&str>
pub fn next_str(&mut self) -> JiterResult<&str>
Assuming the next value is a string, consume it. Error if it is not a string, or is invalid JSON.
Sourcepub fn known_str(&mut self) -> JiterResult<&str>
pub fn known_str(&mut self) -> JiterResult<&str>
Knowing the next value is a string, parse it.
Sourcepub fn next_bytes(&mut self) -> JiterResult<&[u8]>
pub fn next_bytes(&mut self) -> JiterResult<&[u8]>
Assuming the next value is a string, consume it and return bytes from the original JSON data.
Sourcepub fn known_bytes(&mut self) -> JiterResult<&[u8]>
pub fn known_bytes(&mut self) -> JiterResult<&[u8]>
Knowing the next value is a string, parse it and return bytes from the original JSON data.
Sourcepub fn next_value(&mut self) -> JiterResult<JsonValue<'j>>
pub fn next_value(&mut self) -> JiterResult<JsonValue<'j>>
Parse the next JSON value and return it as a JsonValue. Error if it is invalid JSON.
Sourcepub fn known_value(&mut self, peek: Peek) -> JiterResult<JsonValue<'j>>
pub fn known_value(&mut self, peek: Peek) -> JiterResult<JsonValue<'j>>
Sourcepub fn next_skip(&mut self) -> JiterResult<()>
pub fn next_skip(&mut self) -> JiterResult<()>
Parse the next JSON value, but don’t return it. This should be faster than returning the value, useful when you don’t care about this value. Error if it is invalid JSON.
WARNING: For performance reasons, this method does not check that strings would be valid UTF-8.
Sourcepub fn known_skip(&mut self, peek: Peek) -> JiterResult<()>
pub fn known_skip(&mut self, peek: Peek) -> JiterResult<()>
Sourcepub fn next_value_owned(&mut self) -> JiterResult<JsonValue<'static>>
pub fn next_value_owned(&mut self) -> JiterResult<JsonValue<'static>>
Parse the next JSON value and return it as a JsonValue with static lifetime. Error if it is invalid JSON.
Sourcepub fn known_value_owned(
&mut self,
peek: Peek,
) -> JiterResult<JsonValue<'static>>
pub fn known_value_owned( &mut self, peek: Peek, ) -> JiterResult<JsonValue<'static>>
Sourcepub fn next_array(&mut self) -> JiterResult<Option<Peek>>
pub fn next_array(&mut self) -> JiterResult<Option<Peek>>
Assuming the next value is an array, peek at the first value. Error if it is not an array, or is invalid JSON.
§Returns
The Some(peek) of the first value in the array is not empty, None if it is empty.
Sourcepub fn known_array(&mut self) -> JiterResult<Option<Peek>>
pub fn known_array(&mut self) -> JiterResult<Option<Peek>>
Assuming the next value is an array, peat at the first value.
Sourcepub fn array_step(&mut self) -> JiterResult<Option<Peek>>
pub fn array_step(&mut self) -> JiterResult<Option<Peek>>
Peek at the next value in an array.
Sourcepub fn next_object(&mut self) -> JiterResult<Option<&str>>
pub fn next_object(&mut self) -> JiterResult<Option<&str>>
Assuming the next value is an object, consume the first key. Error if it is not an object, or is invalid JSON.
§Returns
The Some(key) of the first key in the object is not empty, None if it is empty.
Sourcepub fn known_object(&mut self) -> JiterResult<Option<&str>>
pub fn known_object(&mut self) -> JiterResult<Option<&str>>
Assuming the next value is an object, conssume the first key and return bytes from the original JSON data.
Sourcepub fn next_object_bytes(&mut self) -> JiterResult<Option<&[u8]>>
pub fn next_object_bytes(&mut self) -> JiterResult<Option<&[u8]>>
Assuming the next value is an object, peek at the first key.
Sourcepub fn next_key(&mut self) -> JiterResult<Option<&str>>
pub fn next_key(&mut self) -> JiterResult<Option<&str>>
Get the next key in an object, or None if there are no more keys.
Sourcepub fn next_key_bytes(&mut self) -> JiterResult<Option<&[u8]>>
pub fn next_key_bytes(&mut self) -> JiterResult<Option<&[u8]>>
Get the next key in an object as bytes, or None if there are no more keys.
Sourcepub fn finish(&mut self) -> JiterResult<()>
pub fn finish(&mut self) -> JiterResult<()>
Finish parsing the JSON data. Error if there is more data to be parsed.
Trait Implementations§
Auto Trait Implementations§
impl<'j> Freeze for Jiter<'j>
impl<'j> RefUnwindSafe for Jiter<'j>
impl<'j> Send for Jiter<'j>
impl<'j> Sync for Jiter<'j>
impl<'j> Unpin for Jiter<'j>
impl<'j> UnsafeUnpin for Jiter<'j>
impl<'j> UnwindSafe for Jiter<'j>
Blanket Implementations§
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> 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.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
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.