Copyright | (c) Anton Gushcha, 2015-2016 |
---|---|
License | BSD3 |
Maintainer | ncrashed@gmail.com |
Stability | experimental |
Portability | POSIX |
Safe Haskell | None |
Language | Haskell2010 |
- 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
- concatDynColl :: c a -> c a -> c a
- unzipDynColl :: c (a, b) -> (c a, c b)
- zipDynColl :: c a -> c b -> c (a, b)
- emptyDynColl :: c a
- consDynColl :: DynConsConstr c a => a -> c a -> c a
Documentation
:: (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
:: (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.
type DynConsConstr c o :: Constraint Source
Instance specific constraint for appending function
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
DynCollection [] Source | |
DynCollection Seq Source | |
(Eq k, Hashable k) => DynCollection (HashMap k) Source | Order of elements is not preserved |