Skip to main content

Op

Enum Op 

Source
pub enum Op {
Show 16 variants LoadKey(Arc<str>), LoadDepth(u16), LoadSubtree(TokenId), LoadAll, LoadOne(TokenId), And(Box<Op>, Box<Op>), Or(Box<Op>, Box<Op>), Sub(Box<Op>, Box<Op>), FieldOf(Arc<str>), Descendants, AllChildren, ValueEqLit(Vec<u8>), First, Last, Nth(u32), Count,
}

Variants§

§

LoadKey(Arc<str>)

Load a bitmap of every Key token whose name matches.

§

LoadDepth(u16)

Load a bitmap of every token at the given nesting depth.

§

LoadSubtree(TokenId)

Load a bitmap of every token in the subtree rooted at the given container.

§

LoadAll

Load a bitmap of every token in the document — identity for restrict.

§

LoadOne(TokenId)

Load a singleton bitmap containing a single token.

§

And(Box<Op>, Box<Op>)

Bitmap intersect of two op outputs (Roaring SIMD AND).

§

Or(Box<Op>, Box<Op>)

Bitmap union of two op outputs.

§

Sub(Box<Op>, Box<Op>)

Bitmap difference: a minus b.

§

FieldOf(Arc<str>)

For each token in state, drill into its named-key value token.

§

Descendants

For each token in state, expand to its full subtree.

§

AllChildren

For each container in state, expand to its immediate child tokens.

§

ValueEqLit(Vec<u8>)

Filter state to tokens whose byte span equals the given literal (string-aware; honours surrounding quotes via json_string_eq).

§

First

Collapse state to its smallest token id (document-order first).

§

Last

Collapse state to its largest token id (document-order last).

§

Nth(u32)

Collapse state to the k-th token in document order.

§

Count

Collapse state to a singleton bitmap encoding the cardinality.

Implementations§

Source§

impl Op

Source

pub fn card_class(&self) -> CardClass

Cardinality contract of this op — used by the optimiser.

Source

pub fn supports_demand(&self) -> bool

Whether this op can short-circuit upstream work given a bound number of outputs (Reducer-class ops in particular).

Source§

impl Op

Source

pub fn apply(&self, state: &Bitmap, ctx: &Ctx<'_>) -> Bitmap

Apply this op to a running token set, returning the new set.

Trait Implementations§

Source§

impl Clone for Op

Source§

fn clone(&self) -> Op

Returns a duplicate 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 Op

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Op

§

impl RefUnwindSafe for Op

§

impl Send for Op

§

impl Sync for Op

§

impl Unpin for Op

§

impl UnsafeUnpin for Op

§

impl UnwindSafe for Op

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