Packages

JSX-like LiveView components — events as closures, state as hooks, servers as observables

Current section

Files

Jump to
filament lib filament observable subscriber.ex
Raw

lib/filament/observable/subscriber.ex

defmodule Filament.Observable.Subscriber do
@moduledoc false
@enforce_keys [:pid]
defstruct [
:pid,
ref: nil,
last_raw: :unset,
proj_keys: %{},
session_token: nil
]
@type projection_key :: {fiber_id :: term(), slot_index :: non_neg_integer()}
@type t :: %__MODULE__{
pid: pid(),
ref: reference() | nil,
last_raw: term(),
proj_keys: %{projection_key() => true},
session_token: String.t() | nil
}
end