defmodule Actors.Actor.Entity.EntityState do
alias Eigr.Functions.Protocol.Actors.Actor
defstruct system: nil, actor: nil, state_hash: nil, opts: []
@type t :: %__MODULE__{
system: String.t(),
actor: Actor.t(),
state_hash: binary(),
opts: Keyword.t()
}
def unpack(%__MODULE__{actor: %Actor{}} = state) do
state
end
def unpack(state) do
%{state | actor: Actor.decode(state.actor)}
end
def pack(%__MODULE__{actor: %Actor{}} = state) do
%{state | actor: Actor.encode(state.actor)}
end
def pack(state) do
state
end
end