mirror of
https://github.com/voltrevo/ValueScript.git
synced 2026-04-18 03:00:27 -04:00
Add default, is_empty
This commit is contained in:
@@ -10,6 +10,7 @@ mod tests {
|
||||
fn initial_len_0() {
|
||||
let tree = RadixTree::<usize, 4>::new();
|
||||
assert_eq!(tree.len(), 0);
|
||||
assert!(tree.is_empty());
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -17,6 +18,7 @@ mod tests {
|
||||
let mut tree = RadixTree::<usize, 4>::new();
|
||||
tree.push(0);
|
||||
assert_eq!(tree.len(), 1);
|
||||
assert!(!tree.is_empty());
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -20,6 +20,13 @@ impl<T: Clone, const N: usize> RadixTree<T, N> {
|
||||
RadixTree::<T, N>(Rc::new(RadixTreeData::<T, N>::Meta(ArrayVec::new())))
|
||||
}
|
||||
|
||||
pub fn is_empty(&self) -> bool {
|
||||
match &*self.0 {
|
||||
RadixTreeData::Meta(_) => false,
|
||||
RadixTreeData::Leaves(leaves) => leaves.is_empty(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn len(&self) -> usize {
|
||||
let mut res = 0;
|
||||
let mut tree = self;
|
||||
@@ -137,3 +144,9 @@ impl<T: Clone, const N: usize> RadixTree<T, N> {
|
||||
meta_node_with_space.push(RadixTree(Rc::new(RadixTreeData::Leaves(new_leaves))));
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Clone, const N: usize> Default for RadixTree<T, N> {
|
||||
fn default() -> Self {
|
||||
Self::new()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user