indexation-0.6.4: library/Indexation/Potoki/Produce.hs
module Indexation.Potoki.Produce
(
entities,
counts,
indexedCounts,
indices,
)
where
import Indexation.Prelude
import Indexation.Types
import qualified Potoki.Produce as Produce
import qualified Data.Vector.Generic as GenericVector
import qualified DenseIntSet
entities :: EntityTable a -> Produce a
entities (EntityTable vector) = Produce.vector vector
{-|
Counts in the index-order.
-}
counts :: IndexCounts a -> Produce Word32
counts (IndexCounts vector) = Produce.vector vector
{-|
Counts in the index-order paired with their indices.
-}
indexedCounts :: IndexCounts a -> Produce (Int, Word32)
indexedCounts (IndexCounts vector) = Produce.vectorWithIndices vector
{-|
Indices, which are present in the set.
-}
indices :: IndexSet a -> Produce (Index a)
indices (IndexSet set) = coerce (Produce.unfoldr (DenseIntSet.presentElementsUnfoldr set))