infect

Crates.ioinfect
lib.rsinfect
version0.0.30
sourcesrc
created_at2023-03-15 15:33:11.362953
updated_at2024-01-03 19:57:49.090397
descriptionIntent/effect/task - A variation on the Model View Intent (MVI) and State Action Model (SAM) paradigms
homepage
repositoryhttps://github.com/uklotzde/infect
max_upload_size
id810785
size56,839
Uwe Klotz (uklotzde)

documentation

README

infect

Crates.io Docs.rs Deps.rs Security audit Continuous integration License: MPL 2.0

A variation on the Model-View-Intent (MVI) and State-Action-Model (SAM) paradigms using

  • intents for rejecting or accepting user interaction and commands,
  • (immediate) effects for updating the model according to observed events without feedback,
  • tasks for inducing concurrent side-effects.

Naming

The semantic distinction of external triggers, inputs, or events (as in event sourcing) into intents and effects is the characteristic difference from existing approaches. Both stimuli are combined into a messages for transporting and feeding them into the system.

Each message induces at most one task for triggering side-effects.

Combining intent, effect, and task gives infect.

License

Licensed under the Mozilla Public License 2.0 (MPL-2.0) (see MPL-2.0.txt or https://www.mozilla.org/MPL/2.0/).

Permissions of this copyleft license are conditioned on making available source code of licensed files and modifications of those files under the same license (or in certain cases, one of the GNU licenses). Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. However, a larger work using the licensed work may be distributed under different terms and without source code for files added in the larger work.

Contribution

Any contribution intentionally submitted for inclusion in the work by you shall be licensed under the Mozilla Public License 2.0 (MPL-2.0).

It is required to add the following header with the corresponding SPDX short identifier to the top of each file:

// SPDX-License-Identifier: MPL-2.0
Commit count: 65

cargo fmt