discord_gleam/ws/event_loop

Event loop for handling the discord gateway websocket Dispatches events to registered event handlers

Types

The message type for the event loop actor

pub type EventLoopMessage {
  Start
  Restart(host: String, session_id: String)
  Stop
}

Constructors

  • Start
  • Restart(host: String, session_id: String)
  • Stop
pub type WebsocketMessage(user_message) {
  BotMessage(bot.BotMessage)
  User(user_message)
}

Constructors

pub type WebsocketState(user_state, user_message) {
  State(
    has_received_hello: Bool,
    s: Int,
    event_loop_subject: process.Subject(EventLoopMessage),
    user_state: user_state,
    bot: bot.Bot,
    mode: event_handler.Mode(user_state, user_message),
  )
}

Constructors

Values

pub fn start_event_loop(
  mode: event_handler.Mode(user_state, user_message),
  host: String,
  reconnect: Bool,
  session_id: String,
  state_ets: booklet.Booklet(dict.Dict(String, String)),
) -> Result(
  actor.Started(process.Subject(EventLoopMessage)),
  actor.StartError,
)

Start the event loop, with a set of event handlers.

Search Document