Crate API

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);
} ```