Rebuilt from the module interface. No verified source is published, and function bodies are only available as bytecode.
module crit_bit;
struct CritbitTree<T0: store> has store {
root: u64,
leaves:
Table<
u64,
Leaf<
T0>>,
min_leaf: u64,
max_leaf: u64,
next_internal_node_index: u64,
next_leaf_index: u64,
}
struct InternalNode has drop, store {
mask: u64,
left_child: u64,
right_child: u64,
parent: u64,
}
struct Leaf<T0> has drop, store {
key: u64,
value: T0,
parent: u64,
}
public fun assert_has_leaf<T0: store>(&CritbitTree<T0>,u64)
public fun borrow_leaf_by_index<T0: store>(&CritbitTree<T0>,u64):
&T0 public fun borrow_leaf_by_key<T0: store>(&CritbitTree<T0>,u64):
&T0 public(package) fun borrow_mut_leaf_by_index<T0: store>(&mut CritbitTree<T0>,u64):
&mut T0 public fun borrow_mut_leaf_by_key<T0: store>(&mut CritbitTree<T0>,u64):
&mut T0 fun count_leading_zeros(u128): u8
public(package) fun destroy_empty<T0: store>(CritbitTree<T0>)
public(package) fun drop<T0: drop + store>(CritbitTree<T0>)
public(package) fun find_closest_key<T0: store>(&CritbitTree<T0>,u64):
u64 public fun find_leaf<T0: store>(&CritbitTree<T0>,u64): (
bool, u64)
fun get_closest_leaf_index_by_key<T0: store>(&CritbitTree<T0>,u64):
u64 public fun has_leaf<T0: store>(&CritbitTree<T0>,u64):
bool public fun insert_leaf<T0: store>(&mut CritbitTree<T0>,u64,T0):
u64 fun is_left_child<T0: store>(&CritbitTree<T0>,u64,u64):
bool fun left_most_leaf<T0: store>(&CritbitTree<T0>,u64):
u64 public fun max_leaf<T0: store>(&CritbitTree<T0>): (
u64, u64)
public fun min_leaf<T0: store>(&CritbitTree<T0>): (
u64, u64)
public(package) fun next_leaf<T0: store>(&CritbitTree<T0>,u64): (
u64, u64)
public fun previous_leaf<T0: store>(&CritbitTree<T0>,u64): (
u64, u64)
public(package) fun remove_leaf_by_index<T0: store>(&mut CritbitTree<T0>,u64):
T0 public fun remove_leaf_by_key<T0: store>(&mut CritbitTree<T0>,u64):
T0 fun right_most_leaf<T0: store>(&CritbitTree<T0>,u64):
u64 fun update_child<T0: store>(&mut CritbitTree<T0>,u64,u64,bool)