xb5_sets_node (xb5 v1.0.1)
View SourceAPI for operating over xb5_sets internal nodes directly.
ℹ️ You're likely looking for
xb5_sets.
Summary
Types
-type elixir_reducer(Elem, ElemAcc) :: fun((Elem, 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(Elem)
-opaque t(Elem)
-type take_result(Elem) :: nonempty_improper_list(Elem, t(Elem)).
Functions
-spec difference(non_neg_integer(), t(Elem1), non_neg_integer(), t(_)) -> nonempty_improper_list(NewSize :: non_neg_integer(), NewRoot :: t(Elem1)).
-spec elixir_reduce(Fun, Acc, Root) -> Result when Fun :: elixir_reducer(Elem, ElemAcc), Acc :: elixir_reducer_acc(ElemAcc), Root :: t(Elem), Result :: elixir_reducer_result(ElemAcc).
-spec from_ordset(non_neg_integer(), ordsets:ordset(Elem)) -> t(Elem).
-spec intersection(non_neg_integer(), t(Elem1), non_neg_integer(), t(Elem2)) -> nonempty_improper_list(NewSize :: non_neg_integer(), t(Elem1 | Elem2)).
-spec is_disjoint(non_neg_integer(), t(_), non_neg_integer(), t(_)) -> boolean().
-spec is_equal(non_neg_integer(), t(_), non_neg_integer(), t(_)) -> boolean().
-spec is_subset(non_neg_integer(), t(_), non_neg_integer(), t(_)) -> boolean().
-spec larger(_, t(Elem)) -> {found, Elem} | none.
-spec largest(t(Elem)) -> Elem.
-spec map_to_list(fun((Elem) -> MappedElem), t(Elem)) -> [MappedElem].
-spec new() -> t(_).
-spec singleton(Elem) -> t(Elem).
-spec smaller(_, t(Elem)) -> {found, Elem} | none.
-spec smallest(t(Elem)) -> Elem.
-spec structural_stats(t(_)) -> xb5_structural_stats:t().
-spec take_largest(t(Elem)) -> take_result(Elem).
-spec take_smallest(t(Elem)) -> take_result(Elem).
-spec to_list(t(Elem)) -> [Elem].
-spec to_rev_list(t(Elem)) -> [Elem].
-spec union(Size1, t(Elem1), Size2, t(Elem2)) -> nonempty_improper_list(NewSize, t(Elem1 | Elem2)) when Size1 :: non_neg_integer(), Size2 :: non_neg_integer(), NewSize :: non_neg_integer().