[][src]Struct dinotree_alg::analyze::QueryBuilder

pub struct QueryBuilder<'a, A: Axis, N: Node> { /* fields omitted */ }

Builder for a query on a DinoTree.

Methods

impl<'a, A: Axis, N: Node + Send + Sync> QueryBuilder<'a, A, N> where
    N::T: Send + Sync
[src]

pub fn query_par(
    self,
    func: impl Fn(PMut<N::T>, PMut<N::T>) + Clone + Send + Sync
)
[src]

Perform the query in parallel

pub fn query_splitter_par<C: ColMulti<T = N::T> + Splitter + Send + Sync>(
    self,
    clos: C
)
[src]

The user has more control using this version of the query. The splitter will split and add at every level. The clos will split and add only at levels that are handled in parallel. This can be useful if the use wants to create a list of colliding pair indicies, but still wants paralleism.

impl<'a, A: Axis, N: Node> QueryBuilder<'a, A, N>[src]

pub fn new(tree: &'a mut DinoTree<A, N>) -> QueryBuilder<'a, A, N>[src]

Create the builder.

pub fn with_switch_height(self, height: usize) -> Self[src]

Choose a custom height at which to switch from parallel to sequential. If you end up building sequentially, this option is ignored.

pub fn query_seq(self, func: impl FnMut(PMut<N::T>, PMut<N::T>))[src]

Perform the query sequentially.

pub fn query_with_splitter_seq(
    self,
    func: impl FnMut(PMut<N::T>, PMut<N::T>),
    splitter: &mut impl Splitter
)
[src]

Perform the query sequentially with a splitter.

Auto Trait Implementations

impl<'a, A, N> RefUnwindSafe for QueryBuilder<'a, A, N> where
    A: RefUnwindSafe,
    N: RefUnwindSafe

impl<'a, A, N> Send for QueryBuilder<'a, A, N> where
    N: Send

impl<'a, A, N> Sync for QueryBuilder<'a, A, N> where
    N: Sync

impl<'a, A, N> Unpin for QueryBuilder<'a, A, N>

impl<'a, A, N> !UnwindSafe for QueryBuilder<'a, A, N>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.