module arch.node.engines.net_registry_behaviour;
import arch.node.engines.net_registry_messages open;
import arch.node.engines.net_registry_config open;
import arch.node.engines.net_registry_environment open;
import arch.node.types.basics open;
import arch.node.types.identities open;
import arch.node.types.messages open;
import arch.node.types.engine open;
import arch.node.types.anoma as Anoma open;
NetworkRegistryActionArguments : Type := Unit;
NetworkRegistryAction : Type :=
Action
NetworkRegistryLocalCfg
NetworkRegistryLocalState
NetworkRegistryMailboxState
NetworkRegistryTimerHandle
NetworkRegistryActionArguments
Anoma.Msg
Anoma.Cfg
Anoma.Env;
NetworkRegistryActionInput : Type :=
ActionInput
NetworkRegistryLocalCfg
NetworkRegistryLocalState
NetworkRegistryMailboxState
NetworkRegistryTimerHandle
NetworkRegistryActionArguments
Anoma.Msg;
NetworkRegistryActionEffect : Type :=
ActionEffect
NetworkRegistryLocalState
NetworkRegistryMailboxState
NetworkRegistryTimerHandle
Anoma.Msg
Anoma.Cfg
Anoma.Env;
NetworkRegistryActionExec : Type :=
ActionExec
NetworkRegistryLocalCfg
NetworkRegistryLocalState
NetworkRegistryMailboxState
NetworkRegistryTimerHandle
NetworkRegistryActionArguments
Anoma.Msg
Anoma.Cfg
Anoma.Env;
exampleReplyAction
(input : NetworkRegistryActionInput) : Option NetworkRegistryActionEffect :=
TODO;
exampleReplyActionLabel : NetworkRegistryActionExec := Seq [exampleReplyAction];
NetworkRegistryGuard : Type :=
Guard
NetworkRegistryLocalCfg
NetworkRegistryLocalState
NetworkRegistryMailboxState
NetworkRegistryTimerHandle
NetworkRegistryActionArguments
Anoma.Msg
Anoma.Cfg
Anoma.Env;
NetworkRegistryGuardOutput : Type :=
GuardOutput
NetworkRegistryLocalCfg
NetworkRegistryLocalState
NetworkRegistryMailboxState
NetworkRegistryTimerHandle
NetworkRegistryActionArguments
Anoma.Msg
Anoma.Cfg
Anoma.Env;
NetworkRegistryGuardEval : Type :=
GuardEval
NetworkRegistryLocalCfg
NetworkRegistryLocalState
NetworkRegistryMailboxState
NetworkRegistryTimerHandle
NetworkRegistryActionArguments
Anoma.Msg
Anoma.Cfg
Anoma.Env;
exampleReplyGuard
(trigger : NetworkRegistryTimestampedTrigger)
(cfg : NetworkRegistryCfg)
(env : NetworkRegistryEnv)
: Option NetworkRegistryGuardOutput := TODO;
NetworkRegistryBehaviour : Type :=
EngineBehaviour
NetworkRegistryLocalCfg
NetworkRegistryLocalState
NetworkRegistryMailboxState
NetworkRegistryTimerHandle
NetworkRegistryActionArguments
Anoma.Msg
Anoma.Cfg
Anoma.Env;
module registry_behaviour_example;
exNetworkRegistryBehaviour : NetworkRegistryBehaviour :=
mkEngineBehaviour@{
guards := First [exampleReplyGuard];
};
end;