MyNixOS website logo
Description

Minimal live coding library for model-view-event-update applications.

Minimal live coding library. It can store model of the model-view-event-update applications. It uses FromJSON and ToJSON with default value for absent data elements, and Generic parser otherwise:

import Initially(initially, Initial)

data MyModel = Model { timestamp :: UTCTime }

instance ToJSON MyModel where
instance FromJSON MyModel where
  parseJSON = initially myDefaultValue
instance Initial MyModel

main = restartable myMain

It is preferred to attach initial value to every substructure, so whenever it fails to parse the remaining part of the state is still parsed correctly.

See https://github.com/mjgajda/restartable#readme

Minimal live coding library for model-view-event-update applications.

Minimal live coding library. It can store model of the model-view-event-update applications. It uses FromJSON and ToJSON with default value for absent data elements, and Generic parser otherwise:

import Control.Restartable.Initially(initially, Initial)

data MyModel = Model { timestamp :: UTCTime }

instance ToJSON MyModel where
instance FromJSON MyModel where
  parseJSON = initially myDefaultValue
instance Initial MyModel

Then in the main module use:

import Control.Restartable.Checkpoint(restartable, Ending(..))

main = restartable "checkpoint.save" myMain

myMain :: MyModel -> IO (MyModel, Ending)

It is preferred to attach initial value to every substructure, so whenever it fails to parse the remaining part of the state is still parsed correctly.

Metadata

Version

0.3.0.0

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows