libduvet/gateway/events
Types
A listener’s own subject, as feed.subscribe makes it.
pub type Listener =
process.Subject(feed.FeedMessage)
Values
pub fn await_call_ended(
listener: process.Subject(feed.FeedMessage),
timeout_ms: Int,
) -> Result(event.CallEndedEvent, Nil)
pub fn await_call_incoming(
listener: process.Subject(feed.FeedMessage),
timeout_ms: Int,
) -> Result(event.CallIncomingEvent, Nil)
pub fn await_call_ongoing(
listener: process.Subject(feed.FeedMessage),
timeout_ms: Int,
) -> Result(event.CallOngoingEvent, Nil)
pub fn await_call_outgoing(
listener: process.Subject(feed.FeedMessage),
timeout_ms: Int,
) -> Result(event.CallOutgoingEvent, Nil)
pub fn await_close(
listener: process.Subject(feed.FeedMessage),
timeout_ms: Int,
) -> Result(envelope.GatewayCloseReason, Nil)
pub fn await_failure(
listener: process.Subject(feed.FeedMessage),
timeout_ms: Int,
) -> Result(feed.GatewayConnectFailure, Nil)
pub fn await_message_delete(
listener: process.Subject(feed.FeedMessage),
timeout_ms: Int,
) -> Result(event.GatewayMessageDelete, Nil)
pub fn await_payload(
listener: process.Subject(feed.FeedMessage),
timeout_ms: Int,
) -> Result(envelope.GatewayEventPayload, Nil)
Typed ways to wait for what a client publishes, the counterpart of the
Dart package’s GatewayEvents streams. Each call drops what it isn’t
waiting for, so use one listener per kind (or read the feed with [next]).
pub fn await_ready(
listener: process.Subject(feed.FeedMessage),
timeout_ms: Int,
) -> Result(ready.GatewayReadyData, Nil)
pub fn await_resumed(
listener: process.Subject(feed.FeedMessage),
timeout_ms: Int,
) -> Result(Int, Nil)
pub fn await_state(
listener: process.Subject(feed.FeedMessage),
timeout_ms: Int,
) -> Result(feed.GatewayConnectionState, Nil)
pub fn await_voice_state_update(
listener: process.Subject(feed.FeedMessage),
timeout_ms: Int,
) -> Result(event.VoiceStateEvent, Nil)
pub fn await_voice_video_refused(
listener: process.Subject(feed.FeedMessage),
timeout_ms: Int,
) -> Result(event.VoiceVideoRefusedEvent, Nil)
pub fn next(
listener: process.Subject(feed.FeedMessage),
timeout_ms: Int,
) -> Result(feed.FeedMessage, Nil)
The next message, whatever it is.