use crate::persistent_artrie_core::key_encoding::{ByteKey, KeyEncoding};
pub use crate::persistent_artrie_core::overlay::flags;
pub type PersistentNode<V = ()> = crate::persistent_artrie_core::overlay::OverlayNode<ByteKey, V>;
pub type Child<V = ()> = crate::persistent_artrie_core::overlay::Child<ByteKey, V>;
pub const MAX_PREFIX_LEN: usize = <ByteKey as KeyEncoding>::MAX_PREFIX_LEN;
#[cfg(test)]
mod tests {
use super::*;
use crate::persistent_artrie::swizzled_ptr::SwizzledPtr;
use crate::persistent_artrie::NodeType;
type PersistentNode = super::PersistentNode<()>;
#[test]
fn alias_resolves_and_basic_ops_work() {
let node = PersistentNode::new();
assert_eq!(node.num_children(), 0);
assert!(!node.is_final());
let child = Child::OnDisk(SwizzledPtr::on_disk(1, 100, NodeType::Node4));
let node2 = node.with_child(b'a', child);
assert_eq!(node2.num_children(), 1);
assert!(node2.has_child(b'a'));
assert_eq!(node.num_children(), 0);
}
#[test]
fn alias_max_prefix_len_is_byte_value() {
assert_eq!(MAX_PREFIX_LEN, 12);
let prefix = b"abcdefghijklmnop"; let node = PersistentNode::with_prefix(prefix);
assert_eq!(node.prefix_len(), 12);
assert_eq!(node.prefix(), b"abcdefghijkl");
}
}