tricycle/system-actor-model/2.0.0

NOTE: the latest version is 9.0.0

Renamed to bellroy/system-actor-model. That is where the repository lives now. It has not been published as a package under the new name.

Versions published as tricycle/system-actor-model still install under that name. 26 versions of 26 come from the new location (see their notes).

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/bellroy/system-actor-model.

What we checked: The repo moved to github.com/bellroy/system-actor-model. Rebuilt with git archive from commit d3beaefadaee of https://github.com/bellroy/system-actor-model (zip prefix tricycle-system-actor-model-40e180d/, America/Los_Angeles times): the zip is byte-identical to the one package.elm-lang.org recorded, SHA-1 f7cc728aeeddf6dd28bda784500c7619ed49a780.

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/tricycle/system-actor-model/zipball/2.0.0/

System.Actor

Actor

In the context of this package an Actor is a Component that is mapped to the System.

Currently there are three components defined;

  • The Worker Component
  • The Ui Component
  • The Layout Component

An Actor probably looks very familiar to you, that is because it closely resembles the Elm Program definition.

It should be relativaly straight forwards to map you exisiting Elm component on top of one of the existing Components.

Actors can communicate directly with other Actors only when it knows it's PID.

type alias Actor model actorModel output msg =
{ init : ( PID, Value ) -> ( actorModel, msg )
, update : model -> msg -> PID -> ( actorModel, msg )
, view : model -> PID -> (PID -> Maybe output) -> output
, subscriptions : model -> PID -> Sub msg
, events : Event -> PID -> EventHandler msg
}

The type of an Actor

Actor model actorModel output msg
-> model
-> SystemActor actorModel output msg

Apply your model over your Actor to create a SystemActor