pub trait SplitParameters {
const MAX: usize;
const MIN: usize;
const LEAF_MAX: usize = Self::MAX;
const LEAF_MIN: usize = Self::MIN;
const BRANCH_MAX: usize = Self::MAX;
const BRANCH_MIN: usize = Self::MIN;
const BULK_LEAF_MAX: usize = Self::LEAF_MAX;
const BULK_BRANCH_MAX: usize = Self::BRANCH_MAX;
// Required method
fn split(entries: &[Bounds]) -> (Vec<usize>, Vec<usize>);
// Provided methods
fn split_leaf(entries: &[Bounds]) -> (Vec<usize>, Vec<usize>) { ... }
fn split_branch(entries: &[Bounds]) -> (Vec<usize>, Vec<usize>) { ... }
}Expand description
How a full node is partitioned when it overflows.
Mirrors index::parameters + the split policy
(index/parameters.hpp). Insertion uses the leaf/branch maxima and
minima; bulk loading may select smaller maxima independently. The
split method takes overflowing children (as bounds, so the strategy
is payload-agnostic) and returns the two groups by index. Bulk leaf
capacity must be non-zero and bulk branch capacity must be at least two.
Required Associated Constants§
Provided Associated Constants§
Sourceconst BRANCH_MAX: usize = Self::MAX
const BRANCH_MAX: usize = Self::MAX
Maximum children in a branch. Defaults to Self::MAX.
Sourceconst BRANCH_MIN: usize = Self::MIN
const BRANCH_MIN: usize = Self::MIN
Minimum children in either half of a split branch.
Sourceconst BULK_LEAF_MAX: usize = Self::LEAF_MAX
const BULK_LEAF_MAX: usize = Self::LEAF_MAX
Maximum values per leaf created by bulk loading.
Sourceconst BULK_BRANCH_MAX: usize = Self::BRANCH_MAX
const BULK_BRANCH_MAX: usize = Self::BRANCH_MAX
Maximum children per branch created by bulk loading.
Required Methods§
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".