Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Marconi.Core.Transformer.WithFold
Description
A transformer that allows an indexer to fold incoming events: each new event is the result of a computation between the last result in the indexer and the incoming event.
See Marconi.Core for documentation.
Synopsis
- data WithFold m indexer output input
- withFold :: output -> (indexer output -> m (Maybe output)) -> (output -> input -> m output) -> indexer output -> WithFold m indexer output input
- withFoldPure :: Applicative m => output -> (indexer output -> m (Maybe output)) -> (output -> input -> output) -> indexer output -> WithFold m indexer output input
- withFoldMap :: (Monoid output, Applicative m) => (indexer output -> m (Maybe output)) -> (input -> output) -> indexer output -> WithFold m indexer output input
- getLastEventAtQueryValue :: (IsSync m event indexer, HasGenesis (Point event), Queryable (ExceptT (QueryError (EventAtQuery a)) m) event (EventAtQuery a) indexer, Ord (Point event), MonadError IndexerError m) => indexer event -> m (Maybe a)
- class HasFold m input output indexer where
- fold :: Lens' (indexer input) (output -> input -> m output)
Documentation
data WithFold m indexer output input #
WithFold
fold incoming event
to produce an output
.
Instances
(Queryable m output query indexer, Point input ~ Point output) => Queryable m input query (WithFold n indexer output) # | |
Defined in Marconi.Core.Transformer.WithFold | |
HasFold m input output (WithFold m indexer output) # | |
Defined in Marconi.Core.Transformer.WithFold | |
(HasGenesis (Point output), Point input ~ Point output, IsSync m output indexer, IsIndex m output indexer, Ord (Point output)) => IsIndex m input (WithFold m indexer output) # | |
Defined in Marconi.Core.Transformer.WithFold Methods index :: Timed (Point input) (Maybe input) -> WithFold m indexer output input -> m (WithFold m indexer output input) # indexAll :: (Eq (Point input), Traversable f) => f (Timed (Point input) (Maybe input)) -> WithFold m indexer output input -> m (WithFold m indexer output input) # indexAllDescending :: (Eq (Point input), Traversable f) => f (Timed (Point input) (Maybe input)) -> WithFold m indexer output input -> m (WithFold m indexer output input) # rollback :: Point input -> WithFold m indexer output input -> m (WithFold m indexer output input) # setLastStablePoint :: Point input -> WithFold m indexer output input -> m (WithFold m indexer output input) # | |
(Point output ~ Point event, IsSync m output indexer) => IsSync m event (WithFold m indexer output) # | |
Defined in Marconi.Core.Transformer.WithFold Methods lastStablePoint :: WithFold m indexer output event -> m (Point event) # lastSyncPoint :: WithFold m indexer output event -> m (Point event) # | |
(Functor m, Resetable m output indexer, HasGenesis (Point event)) => Resetable m event (WithFold m indexer output) # | |
Defined in Marconi.Core.Transformer.WithFold | |
Closeable m indexer => Closeable m (WithFold m indexer output) # | |
Defined in Marconi.Core.Transformer.WithFold | |
IndexerMapTrans (WithFold m) # | |
withFold :: output -> (indexer output -> m (Maybe output)) -> (output -> input -> m output) -> indexer output -> WithFold m indexer output input #
A smart constructor for WithFold
withFoldPure :: Applicative m => output -> (indexer output -> m (Maybe output)) -> (output -> input -> output) -> indexer output -> WithFold m indexer output input #
A smart constructor for WithFold
withFoldMap :: (Monoid output, Applicative m) => (indexer output -> m (Maybe output)) -> (input -> output) -> indexer output -> WithFold m indexer output input #
A smart constructor for WithFold
getLastEventAtQueryValue :: (IsSync m event indexer, HasGenesis (Point event), Queryable (ExceptT (QueryError (EventAtQuery a)) m) event (EventAtQuery a) indexer, Ord (Point event), MonadError IndexerError m) => indexer event -> m (Maybe a) #