xb5_trees_node (xb5 v1.0.1)
View SourceAPI for operating over xb5_trees internal nodes directly.
ℹ️ You're likely looking for
xb5_trees.
Summary
Types
-type elixir_reducer(Key, Value, ElemAcc) :: fun(({Key, Value}, ElemAcc) -> elixir_reducer_acc(ElemAcc)).
-type elixir_reducer_acc(ElemAcc) :: {cont, ElemAcc} | {halt, ElemAcc} | {suspend, ElemAcc}.
-type elixir_reducer_continuation(ElemAcc) :: fun((elixir_reducer_acc(ElemAcc)) -> elixir_reducer_result(ElemAcc)).
-type elixir_reducer_result(ElemAcc) :: {done, ElemAcc} | {halted, ElemAcc} | {suspended, ElemAcc, elixir_reducer_continuation(ElemAcc)}.
-opaque iter(Key, Value)
-type kv_pair(Key, Value) :: nonempty_improper_list(Key, Value).
-opaque t(Key, Value)
-type take_either_end_result(Key, Value) :: nonempty_improper_list(kv_pair(Key, Value), t(Key, Value)).
-type take_key_result(Key, Value) :: nonempty_improper_list(Value, t(Key, Value)).
Functions
-spec elixir_reduce(Fun, Acc, Root) -> Result when Fun :: elixir_reducer(Key, Value, ElemAcc), Acc :: elixir_reducer_acc(ElemAcc), Root :: t(Key, Value), Result :: elixir_reducer_result(ElemAcc).
-spec from_orddict(non_neg_integer(), orddict:orddict(Key, Value)) -> t(Key, Value).
-spec get_att(Key, t(Key, Value), fun((Key, Value) -> Found), fun((Key) -> NotFound) | unreachable) -> Found | NotFound.
-spec intersect(non_neg_integer(), t(KA, VA), non_neg_integer(), t(KB, VB)) -> nonempty_improper_list(NewSize, t(KA | KB, VA | VB)) when NewSize :: non_neg_integer().
-spec intersect_with(IntersectFun, non_neg_integer(), t(KA, VA), non_neg_integer(), t(KB, VB)) -> nonempty_improper_list(NewSize, t(KA | KB, IntersectedV)) when IntersectFun :: fun((KA | KB, VA, VB) -> IntersectedV), NewSize :: non_neg_integer().
-spec is_equal(non_neg_integer(), t(_, _), non_neg_integer(), t(_, _)) -> boolean().
-spec keys(t(Key, _)) -> [Key].
-spec larger(Key, t(Key, Value)) -> {Key, Value} | none.
-spec largest(t(Key, Value)) -> {Key, Value}.
-spec merge(non_neg_integer(), t(KA, VA), non_neg_integer(), t(KB, VB)) -> nonempty_improper_list(NewSize, t(KA | KB, VA | VB)) when NewSize :: non_neg_integer().
-spec merge_with(MergeFun, non_neg_integer(), t(KA, VA), non_neg_integer(), t(KB, VB)) -> nonempty_improper_list(NewSize, t(KA | KB, MergedV)) when MergeFun :: fun((KA | KB, VA, VB) -> MergedV), NewSize :: non_neg_integer().
-spec smaller(Key, t(Key, Value)) -> {Key, Value} | none.
-spec smallest(t(Key, Value)) -> {Key, Value}.
-spec structural_stats(t(_, _)) -> xb5_structural_stats:t().
-spec take_att(Key, t(Key, Value)) -> badkey | take_key_result(Key, Value).
-spec take_largest(t(Key, Value)) -> take_either_end_result(Key, Value).
-spec take_smallest(t(Key, Value)) -> take_either_end_result(Key, Value).
-spec to_list(t(Key, Value)) -> [{Key, Value}].
-spec to_rev_list(t(Key, Value)) -> [{Key, Value}].
-spec values(t(_, Value)) -> [Value].