linsyking/messenger-core/13.0.0

NOTE: the latest version is 20.0.0

Renamed to elm-messenger/messenger-core. That is where the repository lives now. It has not been published as a package under the new name.

Versions published as linsyking/messenger-core still install under that name. 34 versions of 52 come from the new location (see their notes). 7 versions could not be recovered and cannot be installed.

Unavailable. Nobody can download this version any more, with elm or with the Lamdera compiler: Software Heritage has not archived the repo; no fork with tag 13.0.0 found (17 same-name repos checked); no cached copy. Use another version.

Details

Messenger.Layer.Layer

Layer

Gerneral Model and Helper functions for Layers.

type alias ConcreteLayer data cdata userdata tar msg scenemsg =
{ init : LayerInit cdata userdata msg data
, update : LayerUpdate cdata userdata tar msg scenemsg data
, updaterec : LayerUpdateRec cdata userdata tar msg scenemsg data
, view : LayerView cdata userdata data
, matcher : Matcher data tar
}

Concrete Layer Model

Users deal with the fields in concrete model.

type alias AbstractLayer cdata userdata tar msg scenemsg =
MAbstractGeneralModel cdata userdata tar msg () scenemsg

Abstract Layer Model.

Cannot be directedly modified. Used for storage.

Generate

ConcreteLayer data cdata userdata tar msg scenemsg
-> LayerStorage cdata userdata tar msg scenemsg

Generate abstract layer by a concrete layer.

Initialize it with env and msg.

Update

type alias Handler data cdata userdata tar msg scenemsg cmsg =
Env cdata userdata
-> MMsgBase cmsg scenemsg userdata
-> data
-> ( data
, List (MMsg tar msg scenemsg userdata)
, Env cdata userdata
)

Handler Type.

A handler is used to handle the Component Msg sent to the layer.

Make handler for every type of component msg.

Env cdata userdata
-> List (MMsgBase cmsg scenemsg userdata)
-> data
-> List (MMsg tar msg scenemsg userdata)
-> Handler data cdata userdata tar msg scenemsg cmsg
-> ( data
, List (MMsg tar msg scenemsg userdata)
, Env cdata userdata
)

Handle a list of component msgs.

Note that for several list of component msgs with different types, you may have to use this function repeatedly.

type alias LayerInit cdata userdata msg data =
Env cdata userdata -> msg -> data

init type sugar

type alias LayerUpdate cdata userdata tar msg scenemsg data =
Env cdata userdata
-> data
-> ( data
, List (MMsg tar msg scenemsg userdata)
, ( Env cdata userdata, Bool )
)

update type sugar

type alias LayerUpdateRec cdata userdata tar msg scenemsg data =
Env cdata userdata
-> msg
-> data
-> ( data
, List (MMsg tar msg scenemsg userdata)
, Env cdata userdata
)

updaterec type sugar

type alias LayerView cdata userdata data =
Env cdata userdata -> data -> Renderable

view type sugar

type alias LayerStorage cdata userdata tar msg scenemsg =
msg
-> Env cdata userdata
-> AbstractLayer cdata userdata tar msg scenemsg

Layer Storage