
The Adaptive Radix Tree
The radix tree based on The Adaptive Radix Tree:
ARTful Indexing for Main-Memory Databases
paper.
```rust
use arttree::ByteString;
use arttree::KeyBuilder;
use art_tree::Art;
pub fn artexample() {
let mut art = Art::::new();
for i in 0..u8::MAX as u16 {
assert!(art.insert(i, i), "{}", i);
assert!(matches!(art.get(&i), Some(val) if val == &i));
}
for i in 0..u8::MAX as u16 {
assert!(matches!(art.remove(&i), Some(val) if val == i));
}
let mut art = Art::::new();
for i in 0..u8::MAX as u16 {
let key = KeyBuilder::new().append(i).append(ByteString::new("abc".tostring().asbytes())).build();
art.upsert(key.clone(), i + 1);
assert!(matches!(art.get(&key), Some(val) if val == &(i + 1)));
}
let fromkey = KeyBuilder::new().append(16u16).append(ByteString::new("abc".tostring().asbytes())).build();
let untilkey = KeyBuilder::new().append(20u16).append(ByteString::new("abc".tostring().asbytes())).build();
asserteq!(art.range(fromkey..=untilkey).count(), 5);
assert_eq!(art.iter().count(), u8::MAX as usize);
}
```