Skip to main content

RStarSplit

Struct RStarSplit 

Source
pub struct RStarSplit<const MAX: usize = 32, const MIN: usize = 9>;
Expand description

R*-split selection with one capacity for branches and leaves.

Chooses the split axis by minimum summed margin, then the split index by minimum overlap and combined area. Insertion descent still uses least enlargement; this policy does not perform forced reinsertion. Its <32, 9> type default is not the default of crate::Rtree; see the module tuning guide.

Trait Implementations§

Source§

impl<const MAX: usize, const MIN: usize> Clone for RStarSplit<MAX, MIN>

Source§

fn clone(&self) -> RStarSplit<MAX, MIN>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<const MAX: usize, const MIN: usize> Copy for RStarSplit<MAX, MIN>

Source§

impl<const MAX: usize, const MIN: usize> Debug for RStarSplit<MAX, MIN>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<const MAX: usize, const MIN: usize> Default for RStarSplit<MAX, MIN>

Source§

fn default() -> RStarSplit<MAX, MIN>

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

impl<const MAX: usize, const MIN: usize> SplitParameters for RStarSplit<MAX, MIN>

Source§

const MAX: usize = MAX

Maximum children per node before it must split.
Source§

const MIN: usize = MIN

Minimum children each node must keep after a split.
Source§

fn split(entries: &[Bounds]) -> (Vec<usize>, Vec<usize>)

Partition entries (a bounds-per-child list) into two groups of indices, each of size at least Self::MIN.
Source§

const LEAF_MAX: usize = Self::MAX

Maximum values in a leaf. Defaults to Self::MAX.
Source§

const LEAF_MIN: usize = Self::MIN

Minimum values in either half of a split leaf.
Source§

const BRANCH_MAX: usize = Self::MAX

Maximum children in a branch. Defaults to Self::MAX.
Source§

const BRANCH_MIN: usize = Self::MIN

Minimum children in either half of a split branch.
Source§

const BULK_LEAF_MAX: usize = Self::LEAF_MAX

Maximum values per leaf created by bulk loading.
Source§

const BULK_BRANCH_MAX: usize = Self::BRANCH_MAX

Maximum children per branch created by bulk loading.
Source§

fn split_leaf(entries: &[Bounds]) -> (Vec<usize>, Vec<usize>)

Partition an overflowing leaf.
Source§

fn split_branch(entries: &[Bounds]) -> (Vec<usize>, Vec<usize>)

Partition an overflowing branch.

Auto Trait Implementations§

§

impl<const MAX: usize, const MIN: usize> Freeze for RStarSplit<MAX, MIN>

§

impl<const MAX: usize, const MIN: usize> RefUnwindSafe for RStarSplit<MAX, MIN>

§

impl<const MAX: usize, const MIN: usize> Send for RStarSplit<MAX, MIN>

§

impl<const MAX: usize, const MIN: usize> Sync for RStarSplit<MAX, MIN>

§

impl<const MAX: usize, const MIN: usize> Unpin for RStarSplit<MAX, MIN>

§

impl<const MAX: usize, const MIN: usize> UnsafeUnpin for RStarSplit<MAX, MIN>

§

impl<const MAX: usize, const MIN: usize> UnwindSafe for RStarSplit<MAX, MIN>

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

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.