Trait intrusive_collections::rbtree::TreeAdaptor
[−]
[src]
pub trait TreeAdaptor<'a>: Adaptor<Link> { type Key: Ord; fn get_key(&self, container: &'a Self::Container) -> Self::Key; }
Trait which provides a way of extracting a key from an intrusive object. This key is used to maintain all elements in the tree in increasing order. The key can be returned either as a reference or as a value.
Examples
#[macro_use] extern crate intrusive_collections; use intrusive_collections::{rbtree, TreeAdaptor}; struct S { link: rbtree::Link, key: u32, value: u64, } intrusive_adaptor!(MyAdaptor = S { link : rbtree::Link }); impl<'a> TreeAdaptor<'a> for MyAdaptor { type Key = u32; fn get_key(&self, s: &'a S) -> u32 { s.key } } // Alternative implementation returning the key by reference intrusive_adaptor!(MyAdaptor2 = S { link : rbtree::Link }); impl<'a> TreeAdaptor<'a> for MyAdaptor2 { type Key = &'a u32; fn get_key(&self, s: &'a S) -> &'a u32 { &s.key } }
Associated Types
Required Methods
fn get_key(&self, container: &'a Self::Container) -> Self::Key
Gets the key for the given object.