Skip to main content

JsonCursor

Struct JsonCursor 

Source
pub struct JsonCursor<'de> { /* private fields */ }
Expand description

A low-level, allocation-free cursor for routing selected object fields.

Prefer normal Serde deserialization for application models. JsonCursor is intended for protocol envelopes whose hot path must inspect a few fields and defer large nested values as crate::RawJson.

Implementations§

Source§

impl<'de> JsonCursor<'de>

Source

pub const fn from_slice(input: &'de [u8]) -> Self

Creates a cursor over a byte slice.

Source

pub fn from_str(input: &'de str) -> Self

Creates a cursor over a UTF-8 string.

Source

pub fn object<T>( &mut self, visitor: impl FnOnce(&mut Object<'_, 'de>) -> Result<T>, ) -> Result<T>

Visits the next value as an object.

Unvisited fields are validated and skipped before this method returns.

§Errors

Returns an error for malformed JSON or when the next value is not an object.

Source

pub fn end(&mut self) -> Result<()>

Verifies that no trailing value or garbage remains.

§Errors

Returns an error when non-whitespace input remains.

Auto Trait Implementations§

§

impl<'de> Freeze for JsonCursor<'de>

§

impl<'de> RefUnwindSafe for JsonCursor<'de>

§

impl<'de> Send for JsonCursor<'de>

§

impl<'de> Sync for JsonCursor<'de>

§

impl<'de> Unpin for JsonCursor<'de>

§

impl<'de> UnsafeUnpin for JsonCursor<'de>

§

impl<'de> UnwindSafe for JsonCursor<'de>

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