Copyright | (c) Anton Gushcha, 2015-2016 |
---|---|
License | BSD3 |
Maintainer | ncrashed@gmail.com |
Stability | experimental |
Portability | POSIX |
Safe Haskell | None |
Language | Haskell2010 |
Game.GoreAndAsh.Actor.Collection
Description
- dynCollection :: forall m i a b c c2. (ActorMonad m, Eq i, DynCollection c, FilterConstraint c (GameWireIndexed m i a b), FilterConstraint c (Either () b), Foldable c2) => c (GameActor m i a b) -> GameWire m (a, Event (c (GameActor m i a b)), Event (c2 i)) (c b)
- dDynCollection :: forall m i a b c c2. (ActorMonad m, Eq i, DynCollection c, FilterConstraint c (GameWireIndexed m i a b), FilterConstraint c (Either () b), Foldable c2) => c (GameActor m i a b) -> GameWire m (a, Event (c (GameActor m i a b)), Event (c2 i)) (c b)
- class (Filterable c, Foldable c, Functor c, Traversable c) => DynCollection c where
- type DynConsConstr c o :: Constraint
Documentation
Arguments
:: (ActorMonad m, Eq i, DynCollection c, FilterConstraint c (GameWireIndexed m i a b), FilterConstraint c (Either () b), Foldable c2) | |
=> c (GameActor m i a b) | Inital set of wires |
-> GameWire m (a, Event (c (GameActor m i a b)), Event (c2 i)) (c b) |
Makes dynamic collection of wires.
- First input of wire is input for each inner wire.
- Second input is event for adding several wires to collection.
- Third input is event for removing several wires from collection.
- Wire returns list of outputs of inner wires.
Note: if ihibits one of the wires, it is removed from output result during its inhibition
Arguments
:: (ActorMonad m, Eq i, DynCollection c, FilterConstraint c (GameWireIndexed m i a b), FilterConstraint c (Either () b), Foldable c2) | |
=> c (GameActor m i a b) | Inital set of wires |
-> GameWire m (a, Event (c (GameActor m i a b)), Event (c2 i)) (c b) |
Makes dynamic collection of wires.
- First input of wire is input for each inner wire.
- Second input is event for adding several wires to collection.
- Third input is event for removing several wires from collection.
- Wire returns list of outputs of inner wires.
Note: it is delayed version of dynCollection, removing and adding of agents performs on next step after current.
Note: if ihibits one of the wires, it is removed from output result while it inhibits.
class (Filterable c, Foldable c, Functor c, Traversable c) => DynCollection c where Source #
Dynamic collection for control wire that automates handling collections of FRP actors. The class defines minimum set of actions that collection should support to be used as base for collection of actors.
Minimal complete definition
concatDynColl, unzipDynColl, zipDynColl, emptyDynColl, consDynColl
Associated Types
type DynConsConstr c o :: Constraint Source #
Instance specific constraint for appending function
Methods
concatDynColl :: c a -> c a -> c a Source #
Concat of two collections
unzipDynColl :: c (a, b) -> (c a, c b) Source #
Unzipping of collection
zipDynColl :: c a -> c b -> c (a, b) Source #
Ziping collection
emptyDynColl :: c a Source #
Getting empty collection
consDynColl :: DynConsConstr c a => a -> c a -> c a Source #
Adding element to the begining of collection
Instances
DynCollection [] Source # | |
DynCollection Seq Source # | |
(Eq k, Hashable k) => DynCollection (HashMap k) Source # | Order of elements is not preserved |