Trait generic_btree::Query

source ·
pub trait Query<B: BTreeTrait> {
    type QueryArg: Debug + Clone;

    // Required methods
    fn init(target: &Self::QueryArg) -> Self;
    fn find_node(
        &mut self,
        target: &Self::QueryArg,
        child_caches: &[Child<B::Cache>]
    ) -> FindResult;
    fn find_element(
        &mut self,
        target: &Self::QueryArg,
        elements: &[B::Elem]
    ) -> FindResult;

    // Provided methods
    fn delete(
        elements: &mut Vec<B::Elem>,
        query: &Self::QueryArg,
        elem_index: usize,
        offset: usize
    ) -> Option<B::Elem> { ... }
    fn delete_range(
        elements: &mut Vec<B::Elem>,
        start_query: &Self::QueryArg,
        end_query: &Self::QueryArg,
        start: Option<QueryResult>,
        end: Option<QueryResult>
    ) -> SmallVec<[B::Elem; 8]> { ... }
}

Required Associated Types§

Required Methods§

source

fn init(target: &Self::QueryArg) -> Self

source

fn find_node( &mut self, target: &Self::QueryArg, child_caches: &[Child<B::Cache>] ) -> FindResult

source

fn find_element( &mut self, target: &Self::QueryArg, elements: &[B::Elem] ) -> FindResult

Provided Methods§

source

fn delete( elements: &mut Vec<B::Elem>, query: &Self::QueryArg, elem_index: usize, offset: usize ) -> Option<B::Elem>

source

fn delete_range( elements: &mut Vec<B::Elem>, start_query: &Self::QueryArg, end_query: &Self::QueryArg, start: Option<QueryResult>, end: Option<QueryResult> ) -> SmallVec<[B::Elem; 8]>

Implementors§