module Eternity.Potoki.Produce
where
import Eternity.Prelude
import Potoki.Produce
import qualified Potoki.Cereal.Transform as E
import qualified Potoki.Transform as A
import qualified Potoki.IO as B
import qualified Potoki.Consume as C
readFromFile :: Serialize event => FilePath -> Produce (Either IOException (Either Text event))
readFromFile path =
transform (right E.decode) (fileBytes path)
readFromDir :: Serialize event => FilePath -> Produce (Either IOException (Either Text event))
readFromDir dirPath =
transform
(right (A.produce readFromFile) >>^ either Left id)
(directoryContents dirPath)
where
readFromFileTransform =
A.produce readFromFile