Trait generic_btree::Query

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

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

    // Provided methods
    fn delete(
        elements: &mut HeapVec<B::Elem>,
        query: &Self::QueryArg,
        elem_index: usize,
        offset: usize
    ) -> Option<B::Elem> { ... }
    fn drain_range<'a, 'b>(
        elements: &'a mut HeapVec<B::Elem>,
        start_query: &'b Self::QueryArg,
        end_query: &'b Self::QueryArg,
        start: Option<QueryResult>,
        end: Option<QueryResult>
    ) -> Box<dyn Iterator<Item = B::Elem> + 'a> { ... }
    fn delete_range(
        elements: &mut HeapVec<B::Elem>,
        start_query: &Self::QueryArg,
        end_query: &Self::QueryArg,
        start: Option<QueryResult>,
        end: Option<QueryResult>
    ) { ... }
}

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>] ) -> FindResult

source

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

Provided Methods§

source

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

source

fn drain_range<'a, 'b>( elements: &'a mut HeapVec<B::Elem>, start_query: &'b Self::QueryArg, end_query: &'b Self::QueryArg, start: Option<QueryResult>, end: Option<QueryResult> ) -> Box<dyn Iterator<Item = B::Elem> + 'a>

source

fn delete_range( elements: &mut HeapVec<B::Elem>, start_query: &Self::QueryArg, end_query: &Self::QueryArg, start: Option<QueryResult>, end: Option<QueryResult> )

Implementors§

source§

impl<Elem: 'static, B: BTreeTrait<Elem = Elem> + UseLengthFinder<B>> Query<B> for LengthFinder