linsyking/messenger-core/8.2.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.

Rerouted (renamed, verified). The GitHub user or repository was renamed. The tag is still there, at the new name. The Lamdera package server serves a copy recovered from https://github.com/elm-messenger/messenger-core.

What we checked: The repo moved to github.com/elm-messenger/messenger-core. Rebuilt with git archive from commit 25ffac694131 of https://github.com/elm-messenger/messenger-core (zip prefix linsyking-messenger-core-ce10ad7/, America/Los_Angeles times): the zip is byte-identical to the one package.elm-lang.org recorded, SHA-1 8917134e9678ac8dfec53503d5268513043df76f.

The Lamdera compiler uses this copy and prints a one-line notice saying so. elm itself fails to download this version.

Details · package.elm-lang.org's zip: https://github.com/linsyking/messenger-core/zipball/8.2.0/

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 BasicUpdater data cdata userdata tar msg scenemsg =
Env cdata userdata
-> data
-> ( data
, List (Msg tar msg (SceneOutputMsg scenemsg userdata))
, ( Env cdata userdata, Bool )
)

Basic Update Type

A basic updater type used to update the basic data of the layer with event.

Users can use it as the first step of the update process

type alias Distributor data cdata userdata tar msg scenemsg cmsgpacker =
Env cdata userdata
-> data
-> ( data
, ( List (Msg tar msg (SceneOutputMsg scenemsg userdata))
, cmsgpacker
)
, Env cdata userdata
)

Distributor Type

A distributor is used to generate several list of Component Msgs for corresponding components list.

The cmsgpacker is a custom type to store the component msgs and their targets.

type alias Handler data cdata userdata tar msg scenemsg cmsg =
Env cdata userdata
-> MsgBase cmsg (SceneOutputMsg scenemsg userdata)
-> data
-> ( data
, List (Msg tar msg (SceneOutputMsg 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 (MsgBase cmsg (SceneOutputMsg scenemsg userdata))
-> data
-> List (Msg tar msg (SceneOutputMsg scenemsg userdata))
-> Handler data cdata userdata tar msg scenemsg cmsg
-> ( data
, List (Msg tar msg (SceneOutputMsg 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 (Msg tar msg (SceneOutputMsg 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 (Msg tar msg (SceneOutputMsg 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 =
Env cdata userdata
-> msg
-> AbstractLayer cdata userdata tar msg scenemsg

Layer Storage