Skip to main content

ContextFrame

Enum ContextFrame 

Source
pub enum ContextFrame {
    Indexed {
        data: Value,
        index: usize,
    },
    Keyed {
        data: Value,
        index: usize,
        key: String,
    },
    Reduce {
        current: Value,
        accumulator: Value,
    },
    Data(Value),
}
Expand description

A single frame in the context stack, optimized as an enum to minimize size.

Field usage analysis shows mutually exclusive patterns:

  • 59% of frames use only data + index (array iteration)
  • 18% use data + index + key (object iteration)
  • 9% use reduce_current + reduce_accumulator (reduce operations)
  • 14% use only data (error context, etc.)

Variants§

§

Indexed

Array iteration frame — most common (data + index)

Fields

§data: Value
§index: usize
§

Keyed

Object iteration frame (data + index + key)

Fields

§data: Value
§index: usize
§

Reduce

Reduce operation frame (current + accumulator)

Fields

§current: Value
§accumulator: Value
§

Data(Value)

Simple data-only frame

Implementations§

Source§

impl ContextFrame

Source

pub fn data(&self) -> &Value

Get the data value for this frame

Source

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

Get the index if available

Source

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

Get the key if available

Source

pub fn get_reduce_current(&self) -> Option<&Value>

Get the reduce “current” value if this is a reduce frame

Source

pub fn get_reduce_accumulator(&self) -> Option<&Value>

Get the reduce “accumulator” value if this is a reduce frame

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