module arch.node.engines.logging;

import prelude open;
import arch.node.types.engine open;

import arch.node.engines.logging_messages open public;
import arch.node.engines.logging_environment open public;
import arch.node.engines.logging_behaviour open public;
import arch.node.engines.logging_config open public;

import arch.node.types.anoma as Anoma open;

open logging_config_example;
open logging_environment_example;

LoggingEngine : Type :=
  Engine
    LoggingCfg
    LoggingLocalState
    LoggingMailboxState
    LoggingTimerHandle
    LoggingActionArguments
    Anoma.Msg
    Anoma.Cfg
    Anoma.Env;

exampleLoggingEngine : LoggingEngine :=
  mkEngine@{
    cfg := loggingCfg;
    env := loggingEnv;
    behaviour := loggingBehaviour;
  };