edges-0.8: library/Edges/Potoki/Produces.hs
module Edges.Potoki.Produces
where
import Edges.Prelude
import Edges.Types
import Edges.Instances
import Potoki.Produce
import qualified Potoki.Cereal.Produce as Produce
import qualified Edges.Potoki.Transforms as Transforms
{-|
Enumerate nodes.
-}
nodes :: Amount a -> Produce (Node a)
nodes (Amount amountInt) = coerce (enumInRange 0 (pred amountInt))
{-|
Node counts paired with the source nodes.
-}
nodeCounts :: Amount a -> (Node a -> NodeCounts b) -> Produce (Node a, NodeCounts b)
nodeCounts amount nodeCounts =
transform (Transforms.executeNodeCountQuery nodeCounts) (nodes amount)
readNodeCountsFromFile :: FilePath -> Produce (Either IOException (Either Text (Node a, NodeCounts b)))
readNodeCountsFromFile file =
Produce.fileDecoded file