use crate::persistent_artrie_core::key_encoding::ByteKey;
pub type AtomicNodePtr<V = ()> = crate::persistent_artrie_core::overlay::AtomicNodePtr<ByteKey, V>;
#[cfg(test)]
mod tests {
use std::sync::Arc;
type AtomicNodePtr = super::AtomicNodePtr<()>;
type PersistentNode = super::super::persistent_node::PersistentNode<()>;
#[test]
fn alias_resolves_load_and_cas() {
let node1 = Arc::new(PersistentNode::new());
let ptr = AtomicNodePtr::new(Arc::clone(&node1));
assert_eq!(ptr.load().expect("load").num_children(), 0);
let node2 = Arc::new(node1.as_final());
assert!(ptr.compare_exchange(&node1, node2).is_ok());
assert!(ptr.load().expect("load").is_final());
}
}