pub trait RTreeParams: Send + Sync {
type DefaultInsertionStrategy: InsertionStrategy;
const MIN_SIZE: usize;
const MAX_SIZE: usize;
const REINSERTION_COUNT: usize;
}
Expand description
Defines static parameters for an r-tree.
Internally, an r-tree contains several nodes, similar to a b-tree. These parameters change the size of these nodes and can be used to fine-tune the tree’s performance.
§Example
use rstar::{RTreeParams, RTree, RStarInsertionStrategy};
// This example uses an rtree with larger internal nodes.
struct LargeNodeParameters;
impl RTreeParams for LargeNodeParameters
{
const MIN_SIZE: usize = 10;
const MAX_SIZE: usize = 30;
const REINSERTION_COUNT: usize = 5;
type DefaultInsertionStrategy = RStarInsertionStrategy;
}
// Optional but helpful: Define a type alias for the new r-tree
type LargeNodeRTree<T> = RTree<T, LargeNodeParameters>;
// The only difference from now on is the usage of "new_with_params" instead of "new"
let mut large_node_tree: LargeNodeRTree<_> = RTree::new_with_params();
// Using the r-tree should allow inference for the point type
large_node_tree.insert([1.0, -1.0f32]);
// There is also a bulk load method with parameters:
let tree: LargeNodeRTree<_> = RTree::bulk_load_with_params(some_elements);
Required Associated Constants§
Sourceconst MIN_SIZE: usize
const MIN_SIZE: usize
The minimum size of an internal node. MIN_SIZE
must be greater than zero, and up to half
as large as MAX_SIZE
.
Choosing a value around one half or one third of MAX_SIZE
is recommended. Larger values
should yield slightly better tree quality, while lower values may benefit insertion
performance.
Sourceconst MAX_SIZE: usize
const MAX_SIZE: usize
The maximum size of an internal node. Larger values will improve insertion performance but increase the average query time.
Sourceconst REINSERTION_COUNT: usize
const REINSERTION_COUNT: usize
The number of nodes that the insertion strategy tries to occasionally reinsert to
maintain a good tree quality. Must be smaller than MAX_SIZE
- MIN_SIZE
.
Larger values will improve query times but increase insertion time.
Required Associated Types§
Sourcetype DefaultInsertionStrategy: InsertionStrategy
type DefaultInsertionStrategy: InsertionStrategy
The insertion strategy which is used when calling RTree::insert.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.