lightspeed/presence
Deterministic presence tracker and diff model.
Types
Presence metadata for one connection.
pub type Meta {
Meta(ref: String, online_at_ms: Int)
}
Constructors
-
Meta(ref: String, online_at_ms: Int)
Tracker
opaquePresence tracker state.
pub opaque type Tracker
Values
pub fn get(
tracker: Tracker,
topic: String,
key: String,
) -> option.Option(Entry)
Get one key presence entry.
pub fn join(
tracker: Tracker,
topic: String,
key: String,
meta: Meta,
) -> #(Tracker, Diff)
Track one join presence and return resulting diff.
pub fn key_count(tracker: Tracker, topic: String) -> Int
Number of tracked keys in one topic.
pub fn leave(
tracker: Tracker,
topic: String,
key: String,
ref: String,
) -> #(Tracker, Diff)
Track one leave presence and return resulting diff.
pub fn list_topic(tracker: Tracker, topic: String) -> List(Entry)
List full presence state for one topic.
pub fn ref_count(tracker: Tracker, topic: String) -> Int
Number of tracked refs in one topic.
pub fn topic_labels(tracker: Tracker) -> List(String)
Stable topic labels for logs and tests.