Juvix imports
module tutorial.engines.template_environment;
import tutorial.engines.template_messages open;
import arch.node.types.basics open;
import arch.node.types.engine open;
import arch.node.types.messages open;
import arch.node.types.identities open;
import arch.node.types.anoma_message as Anoma open;
Template Environment¶
Overview¶
The Engine environment of the engine.
Mailbox state¶
Auxiliary Juvix code
syntax alias MailboxOneOne := Nat;
syntax alias MailboxTwoOne := String;
syntax alias MailboxTwoTwo := Bool;
TemplateMailboxStateFirstKind FirstKindMailboxState
¶
type FirstKindMailboxState :=
mkFirstKindMailboxState@{
fieldOne : MailboxOneOne;
};
This is one family of mailbox states without much complexity.
Arguments
fieldOne
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
TemplateMailboxStateSecondKind SecondKindMailboxState
¶
type SecondKindMailboxState :=
mkSecondKindMailboxState@{
fieldOne : MailboxTwoOne;
fieldTwo : MailboxTwoTwo;
};
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Arguments
fieldOne
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
fieldTwo
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
TemplateMailboxState
¶
type TemplateMailboxState :=
| TemplateMailboxStateFirstKind FirstKindMailboxState
| TemplateMailboxStateSecondKind SecondKindMailboxState;
Local state¶
Auxiliary Juvix code
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
type CustomData :=
mkCustomData@{
word : String;
};
Arguments
word
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
TemplateLocalState
¶
type TemplateLocalState :=
mkTemplateLocalState@{
taskQueue : CustomData;
};
Arguments
taskQueue
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Timer handles¶
TemplateTimerHandleFirstOption FirstOptionTimerHandle
¶
type FirstOptionTimerHandle :=
mkFirstOptionTimerHandle@{
argOne : ArgOne;
};
Lorem ipsum dolor sit amet, consectetur adipiscing elit. The following code is an example of this case.
Arguments
argOne
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
TemplateTimerHandleSecondOption SecondOptionTimerHandle
¶
type SecondOptionTimerHandle :=
mkSecondOptionTimerHandle@{
argOne : String;
argTwo : Bool;
};
Arguments
argOne
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
argTwo
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
TemplateTimerHandle
¶
type TemplateTimerHandle :=
| TemplateTimerHandleFirstOption FirstOptionTimerHandle
| TemplateTimerHandleSecondOption SecondOptionTimerHandle;
TemplateTimestampedTrigger
¶
TemplateTimestampedTrigger : Type :=
TimestampedTrigger TemplateTimerHandle Anoma.Msg;
Engine Environment¶
TemplateEnv
¶
TemplateEnv : Type :=
EngineEnv
TemplateLocalState
TemplateMailboxState
TemplateTimerHandle
Anoma.Msg;
Instantiation¶
exTemplateEnv : TemplateEnv :=
mkEngineEnv@{
localState :=
mkTemplateLocalState@{
taskQueue :=
mkCustomData@{
word := "taskQueue";
};
};
mailboxCluster := Map.empty;
acquaintances := Set.empty;
timers := [];
};