Juvix imports
module tutorial.engines.template;
import tutorial.engines.template_messages open public;
import tutorial.engines.template_config open public;
import tutorial.engines.template_environment open public;
import tutorial.engines.template_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_config_example;
open template_environment_example;
open template_behaviour_example;
Template Engine¶
Purpose¶
Brief summary of the purpose of the engine.
Components¶
Useful links¶
- Some
- Useful
- Links
Type¶
TemplateEngine : Type :=
Engine
TemplateLocalCfg
TemplateLocalState
TemplateMailboxState
TemplateTimerHandle
TemplateActionArguments
Anoma.Msg
Anoma.Cfg
Anoma.Env;
Instantiation¶
exTemplateEngine : TemplateEngine :=
mkEngine@{
cfg := exTemplateCfg;
env := exTemplateEnv;
behaviour := exTemplateBehaviour;
};
Where exTemplateCfg
is defined as follows:
exTemplateCfg : TemplateCfg :=
mkEngineCfg@{
node := Curve25519PubKey "0xabcd1234";
name := "template";
cfg :=
mkTemplateLocalCfg@{
example := 1;
value := "hello world";
};
};
exTemplateEnv
is defined as follows:
exTemplateEnv : TemplateEnv :=
mkEngineEnv@{
localState :=
mkTemplateLocalState@{
taskQueue :=
mkCustomData@{
word := "taskQueue";
};
};
mailboxCluster := Map.empty;
acquaintances := Set.empty;
timers := [];
};
and exTemplateBehaviour
is defined as follows:
module template_behaviour_example;
exTemplateBehaviour : TemplateBehaviour :=
mkEngineBehaviour@{
guards :=
First [
justHiGuard;
exampleReplyGuard;
];
};
end;