Skip to main content

TieredExprDatabase

Struct TieredExprDatabase 

Source
pub struct TieredExprDatabase { /* private fields */ }
Expand description

Database with tiered storage for efficient priority-based searching

Expressions are organized by complexity tiers, allowing searches to process simpler expressions first and potentially skip higher tiers when good matches are found.

Implementations§

Source§

impl TieredExprDatabase

Source

pub fn new() -> Self

Create a new empty tiered database

Source

pub fn insert(&mut self, expr: EvaluatedExpr)

Insert an expression into the appropriate tier

Source

pub fn finalize(&mut self)

Finalize the database by sorting each tier by value

Source

pub fn total_count(&self) -> usize

Get total count of expressions across all tiers

Source

pub fn tier_count(&self, tier: ComplexityTier) -> usize

Get count for a specific tier

Source

pub fn range_in_tier( &self, tier: ComplexityTier, low: f64, high: f64, ) -> &[EvaluatedExpr]

Find expressions in a specific tier within the value range [low, high]

Source

pub fn iter_tiers_in_range(&self, low: f64, high: f64) -> TieredRangeIter<'_>

Create an iterator that yields expressions from all tiers in order (Tier 0 first, then Tier 1, etc.) within a value range

Trait Implementations§

Source§

impl Default for TieredExprDatabase

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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.