arrow_json::reader::tape

Enum TapeElement

Source
pub enum TapeElement {
Show 13 variants StartObject(u32), EndObject(u32), StartList(u32), EndList(u32), String(u32), Number(u32), I64(i32), I32(i32), F64(u32), F32(u32), True, False, Null,
}
Expand description

We decode JSON to a flattened tape representation, allowing for efficient traversal of the JSON data

This approach is inspired by simdjson

Uses u32 for offsets to ensure TapeElement is 64-bits. A future iteration may increase this to a custom u56 type.

Variants§

§

StartObject(u32)

The start of an object, i.e. {

Contains the offset of the corresponding Self::EndObject

§

EndObject(u32)

The end of an object, i.e. }

Contains the offset of the corresponding Self::StartObject

§

StartList(u32)

The start of a list , i.e. [

Contains the offset of the corresponding Self::EndList

§

EndList(u32)

The end of a list , i.e. ]

Contains the offset of the corresponding Self::StartList

§

String(u32)

A string value

Contains the offset into the Tape string data

§

Number(u32)

A numeric value

Contains the offset into the Tape string data

§

I64(i32)

The high bits of a i64

Followed by Self::I32 containing the low bits

§

I32(i32)

A 32-bit signed integer

May be preceded by Self::I64 containing high bits

§

F64(u32)

The high bits of a 64-bit float

Followed by Self::F32 containing the low bits

§

F32(u32)

A 32-bit float or the low-bits of a 64-bit float if preceded by Self::F64

§

True

A true literal

§

False

A false literal

§

Null

A null literal

Trait Implementations§

Source§

impl Clone for TapeElement

Source§

fn clone(&self) -> TapeElement

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for TapeElement

Source§

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

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

impl PartialEq for TapeElement

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for TapeElement

Source§

impl Eq for TapeElement

Source§

impl StructuralPartialEq for TapeElement

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

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

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

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> 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.
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,