1defmodule Drinkup.Event.Info do
2 @moduledoc """
3 Struct for info events from the ATProto Firehose.
4 """
5
6 use TypedStruct
7
8 typedstruct enforce: true do
9 field :name, String.t()
10 field :message, String.t() | nil
11 end
12
13 @spec from(map()) :: t()
14 def from(%{"name" => name} = msg) do
15 message = Map.get(msg, "message")
16
17 %__MODULE__{
18 name: name,
19 message: message
20 }
21 end
22end