defmodule Toolbox.Runtime.RuntimeInstruction do @moduledoc """ Struct produced by scenario representing instruction for runtime. """ alias __MODULE__, as: RuntimeInstruction defstruct body: nil defmodule Timeout do @moduledoc """ Instruction to register unit timeout. """ alias Toolbox.Message, as: Msg defstruct unit_id: nil, timeout_message: nil @typedoc "Struct representing unit timeout registration." @type t :: %Timeout{timeout_message: %Msg{}} end @typedoc "Struct produced by scenario representing instruction for runtime." @type t :: %RuntimeInstruction{body: Timeout.t()} @doc """ Creates runtime instruction to register timeout message. """ def register_timeout(timeout_message) do %RuntimeInstruction{body: %Timeout{timeout_message: timeout_message}} end end