pub struct RTreed<K, V: RTreeObject, C> { /* private fields */ }Implementations§
Source§impl<K, V: RTreeObject, C> RTreed<K, V, C>
impl<K, V: RTreeObject, C> RTreed<K, V, C>
Sourcepub fn new(collection: C) -> Self
pub fn new(collection: C) -> Self
Examples found in repository?
examples/basic_usage.rs (lines 15-17)
10fn main() {
11 // A hashmap of 2D rectangles will be the underlying collection.
12 let rect_hashmap: HashMap<i32, Rectangle<(i32, i32)>> = HashMap::new();
13
14 // Wrap `RTreed` around the hashmap.
15 let mut rtreed = RTreed::<i32, Rectangle<(i32, i32)>, HashMap<i32, Rectangle<(i32, i32)>>>::new(
16 rect_hashmap,
17 );
18
19 // Insert two rectangles, recording them in the R-tree.
20 rtreed.insert(1, Rectangle::from_corners((0, 0), (1, 1)));
21 rtreed.insert(2, Rectangle::from_corners((1, 1), (2, 2)));
22
23 // Locate the two rectangles in the R-tree.
24 assert_eq!(
25 rtreed
26 .rtree()
27 .locate_in_envelope(&AABB::from_corners((0, 0), (2, 2)))
28 .count(),
29 2
30 );
31
32 // Now remove one of the rectangles, recording this in the R-tree.
33 rtreed.remove(&1);
34
35 // Make the same query to the R-tree as before.
36 // Only one rectangle is now present.
37 assert_eq!(
38 rtreed
39 .rtree()
40 .locate_in_envelope(&AABB::from_corners((0, 0), (2, 2)))
41 .count(),
42 1
43 );
44}Source§impl<K, V: RTreeObject, C> RTreed<K, V, C>
impl<K, V: RTreeObject, C> RTreed<K, V, C>
pub fn collection(&self) -> &C
Sourcepub fn rtree(&self) -> &RTree<GeomWithData<V, K>>
pub fn rtree(&self) -> &RTree<GeomWithData<V, K>>
Examples found in repository?
examples/basic_usage.rs (line 26)
10fn main() {
11 // A hashmap of 2D rectangles will be the underlying collection.
12 let rect_hashmap: HashMap<i32, Rectangle<(i32, i32)>> = HashMap::new();
13
14 // Wrap `RTreed` around the hashmap.
15 let mut rtreed = RTreed::<i32, Rectangle<(i32, i32)>, HashMap<i32, Rectangle<(i32, i32)>>>::new(
16 rect_hashmap,
17 );
18
19 // Insert two rectangles, recording them in the R-tree.
20 rtreed.insert(1, Rectangle::from_corners((0, 0), (1, 1)));
21 rtreed.insert(2, Rectangle::from_corners((1, 1), (2, 2)));
22
23 // Locate the two rectangles in the R-tree.
24 assert_eq!(
25 rtreed
26 .rtree()
27 .locate_in_envelope(&AABB::from_corners((0, 0), (2, 2)))
28 .count(),
29 2
30 );
31
32 // Now remove one of the rectangles, recording this in the R-tree.
33 rtreed.remove(&1);
34
35 // Make the same query to the R-tree as before.
36 // Only one rectangle is now present.
37 assert_eq!(
38 rtreed
39 .rtree()
40 .locate_in_envelope(&AABB::from_corners((0, 0), (2, 2)))
41 .count(),
42 1
43 );
44}Trait Implementations§
Source§impl<K: Clone, V: Clone + RTreeObject, C: Get<K, Item = V> + Insert<K>> Insert<K> for RTreed<K, V, C>
impl<K: Clone, V: Clone + RTreeObject, C: Get<K, Item = V> + Insert<K>> Insert<K> for RTreed<K, V, C>
Auto Trait Implementations§
impl<K, V, C> Freeze for RTreed<K, V, C>
impl<K, V, C> RefUnwindSafe for RTreed<K, V, C>where
C: RefUnwindSafe,
<V as RTreeObject>::Envelope: RefUnwindSafe,
V: RefUnwindSafe,
K: RefUnwindSafe,
impl<K, V, C> Send for RTreed<K, V, C>
impl<K, V, C> Sync for RTreed<K, V, C>
impl<K, V, C> Unpin for RTreed<K, V, C>
impl<K, V, C> UnwindSafe for RTreed<K, V, C>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more