Juvix imports
module tutorial.engines.template_minimum;
import tutorial.engines.template_minimum_messages open public;
import tutorial.engines.template_minimum_config open public;
import tutorial.engines.template_minimum_environment open public;
import tutorial.engines.template_minimum_behaviour open public;
import arch.node.types.basics open;
import arch.node.types.engine open;
import arch.node.types.anoma as Anoma open;
open template_minimum_config_example;
open template_minimum_environment_example;
open template_minimum_behaviour_example;
Template Minimum Engine¶
Purpose¶
Brief summary of the purpose of the engine.
Components¶
- Template Minimum Messages
- Template Minimum Configuration
- Template Minimum Environment
- Template Minimum Behaviour
Useful links¶
- Some
- Useful
- Links
Type¶
TemplateMinimumEngine : Type :=
  Engine
    TemplateMinimumLocalCfg
    TemplateMinimumLocalState
    TemplateMinimumMailboxState
    TemplateMinimumTimerHandle
    TemplateMinimumActionArguments
    Anoma.Msg
    Anoma.Cfg
    Anoma.Env;
Instantiation¶
exTemplateMinimumEngine : TemplateMinimumEngine :=
  mkEngine@{
    cfg := exTemplateMinimumCfg;
    env := exTemplateMinimumEnv;
    behaviour := exTemplateMinimumBehaviour;
  };
Where exTemplateMinimumCfg is defined as follows:
exTemplateMinimumCfg : TemplateMinimumCfg :=
  mkEngineCfg@{
    node := Curve25519PubKey "0xabcd1234";
    name := "template-minimum";
    cfg := mkTemplateMinimumLocalCfg;
  };
exTemplateMinimumEnv is defined as follows:
exTemplateMinimumEnv : TemplateMinimumEnv :=
  mkEngineEnv@{
    localState := mkTemplateMinimumLocalState;
    mailboxCluster := Map.empty;
    acquaintances := Set.empty;
    timers := [];
  };
and exTemplateMinimumBehaviour is defined as follows:
module template_minimum_behaviour_example;
  exTemplateMinimumBehaviour : TemplateMinimumBehaviour :=
    mkEngineBehaviour@{
      guards := First [exampleReplyGuard];
    };
end;