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
-
BotMessage(bot.BotMessage) -
User(user_message)
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
-
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), )
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.