View Source argo_index_set (argo v1.0.10)

Summary

Types

-type element() :: dynamic().
-type index() :: argo_index_map:index().
-type iterator() :: iterator(element()).
-opaque iterator(T)
-type iterator_order() :: iterator_order(element()).
-type iterator_order(ElementType) :: ordered | reversed | iterator_order_func(ElementType).
-type iterator_order_func(T) ::
    fun((AIndex :: index(), AItem :: T, BIndex :: index(), BItem :: T) -> boolean()).
-type t() :: t(element()).
-type t(ElementType) :: #argo_index_set{map :: argo_index_map:t(ElementType, [])}.

Functions

Link to this function

add_element(Element, IndexSet1)

View Source
-spec add_element(Element, IndexSet1) -> IndexSet2
               when Element :: element(), IndexSet1 :: t(Element), IndexSet2 :: t(Element).
Link to this function

del_element(Element, IndexSet1)

View Source
-spec del_element(Element, IndexSet1) -> IndexSet2
               when Element :: element(), IndexSet1 :: t(Element), IndexSet2 :: t(Element).
Link to this function

del_index(Index, IndexSet1)

View Source
-spec del_index(Index, IndexSet1) -> IndexSet2
             when
                 Index :: index(),
                 Element :: element(),
                 IndexSet1 :: t(Element),
                 IndexSet2 :: t(Element).
Link to this function

find_index(Index, IndexSet)

View Source
-spec find_index(Index, IndexSet) -> {ok, Element} | error
              when Index :: index(), Element :: element(), IndexSet :: t(Element).
Link to this function

find_index_of(Element, IndexSet)

View Source
-spec find_index_of(Element, IndexSet) -> {ok, Index} | error
                 when Index :: index(), Element :: element(), IndexSet :: t(Element).
-spec first(IndexSet) -> {ok, Element} | error when Element :: element(), IndexSet :: t(Element).
Link to this function

foldl(Function, Acc0, IndexSetOrIterator)

View Source
-spec foldl(Function, Acc0, IndexSetOrIterator) -> Acc1
         when
             Function :: fun((index(), Element, AccIn) -> AccOut),
             Acc0 :: dynamic(),
             Element :: element(),
             IndexSetOrIterator :: t(Element) | iterator(Element),
             Acc1 :: dynamic(),
             AccIn :: dynamic(),
             AccOut :: dynamic().
Link to this function

foldr(Function, Acc0, IndexSetOrIterator)

View Source
-spec foldr(Function, Acc0, IndexSetOrIterator) -> Acc1
         when
             Function :: fun((index(), Element, AccIn) -> AccOut),
             Acc0 :: dynamic(),
             Element :: element(),
             IndexSetOrIterator :: t(Element) | iterator(Element),
             Acc1 :: dynamic(),
             AccIn :: dynamic(),
             AccOut :: dynamic().
-spec from_list(ElementList) -> IndexSet
             when ElementList :: [Element], Element :: element(), IndexSet :: t(Element).
Link to this function

is_element(Element, IndexSet)

View Source
-spec is_element(Element, IndexSet) -> boolean() when Element :: element(), IndexSet :: t(Element).
Link to this function

is_index(Index, IndexSet)

View Source
-spec is_index(Index, IndexSet) -> boolean() when Index :: index(), IndexSet :: t().
-spec iterator(IndexSet) -> Iterator
            when Element :: element(), IndexSet :: t(Element), Iterator :: iterator(Element).
Link to this function

iterator(IndexSet, Order)

View Source
-spec iterator(IndexSet, Order) -> Iterator
            when
                Element :: element(),
                Order :: iterator_order(Element),
                IndexSet :: t(Element),
                Iterator :: iterator(Element).
-spec last(IndexSet) -> {ok, Element} | error when Element :: element(), IndexSet :: t(Element).
-spec new() -> IndexSet when IndexSet :: t().
-spec next(Iterator) -> none | {Index, Element, NextIterator}
        when
            Index :: index(),
            Element :: element(),
            Iterator :: iterator(Element),
            NextIterator :: iterator(Element).
-spec size(IndexSet) -> non_neg_integer() when IndexSet :: t().
-spec sort(IndexSet1) -> IndexSet2
        when Element :: element(), IndexSet1 :: t(Element), IndexSet2 :: t(Element).
Link to this function

sort(SortFun, IndexSet1)

View Source
-spec sort(SortFun, IndexSet1) -> IndexSet2
        when
            SortFun :: iterator_order_func(Element),
            Element :: element(),
            IndexSet1 :: t(Element),
            IndexSet2 :: t(Element).
Link to this function

take(Element, IndexSet1)

View Source
-spec take(Element, IndexSet1) -> {Element, IndexSet2} | error
        when Element :: element(), IndexSet1 :: t(Element), IndexSet2 :: t(Element).
Link to this function

take_full(Element, IndexSet1)

View Source
-spec take_full(Element, IndexSet1) -> {{Index, Element}, IndexSet2} | error
             when
                 Index :: index(),
                 Element :: element(),
                 IndexSet1 :: t(Element),
                 IndexSet2 :: t(Element).
Link to this function

take_index(Index, IndexSet1)

View Source
-spec take_index(Index, IndexSet1) -> {Element, IndexSet2} | error
              when
                  Index :: index(),
                  Element :: element(),
                  IndexSet1 :: t(Element),
                  IndexSet2 :: t(Element).
Link to this function

take_index_of(Element, IndexSet1)

View Source
-spec take_index_of(Element, IndexSet1) -> {Index, IndexSet2} | error
                 when
                     Index :: index(),
                     Element :: element(),
                     IndexSet1 :: t(Element),
                     IndexSet2 :: t(Element).
Link to this function

to_list(IndexSetOrIterator)

View Source
-spec to_list(IndexSetOrIterator) -> ElementList
           when
               Element :: element(),
               IndexSetOrIterator :: t(Element) | iterator(Element),
               ElementList :: [Element].