Packages
altworx_runbox
10.0.0
25.0.0
24.0.0
23.1.0
23.0.0
22.2.0
22.1.0
22.0.0
21.2.0
21.1.2
21.1.1
21.1.0
21.0.0
20.0.0
19.0.0
18.0.0
17.2.0
17.1.0
17.0.1
17.0.0
16.2.0
16.1.0
16.0.0
15.0.0
14.1.0
14.0.1
14.0.0
13.0.3
13.0.2
13.0.1
13.0.0
12.1.0
12.0.0
11.0.1
11.0.0
10.0.0
9.0.0
8.0.0
7.0.1
7.0.0
6.0.0
5.0.0
4.0.0
3.0.0
2.1.0
2.0.0
1.4.1
1.4.0
1.3.0
1.2.0
1.1.0
1.0.0
0.1.3
0.1.2
0.1.1
0.1.0
Runbox is a library for running Altworx scenarios.
Current section
Files
Jump to
Current section
Files
lib/toolbox/message.ex
defmodule Toolbox.Message do
@moduledoc group: :messages
@moduledoc """
Altworx message runtime representation.
"""
alias __MODULE__, as: Message
@derive Jason.Encoder
defstruct [:from, :type, :timestamp, :body, :origin]
@type from :: atom | String.t()
@type type :: atom | String.t()
@type timestamp :: integer
@type body :: term
@type origin :: %{offset: non_neg_integer, topic: String.t()} | nil
@type t :: %Message{
from: from,
type: type,
timestamp: timestamp,
body: body,
origin: origin
}
@spec new(from, type, timestamp, body) :: t
def new(from, type, timestamp, body) do
%Message{from: from, type: type, timestamp: timestamp, body: body}
end
@spec from(t) :: from
def from(%Message{from: from}), do: from
@spec type(t) :: type
def type(%Message{type: type}), do: type
@spec timestamp(t) :: timestamp
def timestamp(%Message{timestamp: ts}) when is_integer(ts), do: ts
@spec body(t) :: body
def body(%Message{body: body}), do: body
end