Skip to main content

Element

Struct Element 

Source
pub struct Element<'buf> { /* private fields */ }
Expand description

A JSON Element with identity, source span, and value.

Each element carries a shared reference to the document it was parsed from, so Element::path() can resolve its path.

Implementations§

Source§

impl<'buf> Element<'buf>

Source

pub fn id(&self) -> ElemId

Returns this element’s identity within its Document.

Source

pub fn span(&self) -> Span

Returns the span covering this element’s value alone, without any trailing comma.

See Element::full_span for the span that reaches the next sibling.

Source

pub fn full_span(&self) -> Span

Returns the span covering the value plus any trailing comma and the whitespace after it, so the span ends where the next sibling begins.

When there is no trailing comma (the root element, or the last child of its parent), full_span() == span().

Use Element::span to replace a value. Removal is not simply a matter of erasing full_span: which span removes a child depends on which of its siblings survive, and erasing the full_span of a last child leaves a dangling comma on the sibling before it. Use Document::removal_spans, which resolves a whole set of removals against the surviving siblings.

Source

pub fn value(&self) -> &Value<'buf>

Returns this element’s JSON value.

Source

pub fn path(&self) -> Path

Returns the RFC 9535 path to this element.

NOTE: The Path is constructed anew every time this functions is called.

Source

pub fn source_json_value(&self) -> &'buf str

Returns the slice of the source JSON that this element spans.

Source

pub fn source(&self) -> &'buf str

The full source string; all element spans are relative to this.

Source

pub fn location(&self) -> Location

Return the location that this element begins at.

Source

pub fn as_value(&self) -> &Value<'buf>

Return the inner Value by ref.

Source

pub fn to_raw_str(&self) -> Option<RawStr<'buf>>

Return Some(&str) if the Value is a String.

Source

pub fn as_object_fields(&self) -> Option<&[Field<'buf>]>

Return Some(&[Field]) if the Value is a Object.

Source

pub fn as_array(&self) -> Option<&[Element<'buf>]>

Returns the items if this element is a JSON array, None otherwise.

Source

pub fn as_number_str(&self) -> Option<&str>

Returns the number as it was written in the source if this element is a JSON number, None otherwise. The text is not parsed, so it keeps the precision the document had.

Source

pub fn is_null(&self) -> bool

Return true if the Elements Value is null.

Source

pub fn is_object(&self) -> bool

Return true if the Elements Value is an object.

Source

pub fn is_array(&self) -> bool

Return true if the Elements Value is an array.

Trait Implementations§

Source§

impl<'buf> Clone for Element<'buf>

Source§

fn clone(&self) -> Element<'buf>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'buf> Debug for Element<'buf>

Source§

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

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

impl Eq for Element<'_>

Source§

impl PartialEq for Element<'_>

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more

Auto Trait Implementations§

§

impl<'buf> !Send for Element<'buf>

§

impl<'buf> !Sync for Element<'buf>

§

impl<'buf> Freeze for Element<'buf>

§

impl<'buf> RefUnwindSafe for Element<'buf>

§

impl<'buf> Unpin for Element<'buf>

§

impl<'buf> UnsafeUnpin for Element<'buf>

§

impl<'buf> UnwindSafe for Element<'buf>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoCaveat for T

Source§

fn into_caveat<W>(self, warnings: Set<W>) -> Caveat<T, W>
where W: Warning,

Any type can be converted to Caveat<T> by supplying a list of Warnings.
Source§

fn into_infallible_caveat(self) -> Caveat<Self, Infallible>

If a FromSchema is infallible a Caveat can be created using this method.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more