1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
//! Types for working with and running connections to the gateway. //! //! At the heart of the `shard` module is the [`Shard`] itself: it's the //! interface used to start a shard, send messages to the gateway, and receive //! [`Event`]s from it, such as [new messages] or [channel deletions]. //! //! Once running, the shard maintains [information about itself] that you can //! obtain through it. This is information such as the latency or the current //! [`Stage`] of the connection, like whether it's [`Disconnected`] or //! [`Resuming`] the connection. //! //! Shards are configurable through the [`ShardBuilder`], which provides a clean //! interface for correctly configuring a shard. //! //! [`Event`]: ::twilight_model::gateway::event::Event //! [`Disconnected`]: Stage::Disconnected //! [`Resuming`]: Stage::Resuming //! [channel deletions]: ::twilight_model::gateway::event::Event::ChannelDelete //! [information about itself]: Shard::info //! [new messages]: ::twilight_model::gateway::event::Event::MessageCreate pub mod raw_message; pub mod stage; mod builder; mod config; mod event; mod r#impl; mod json; mod processor; mod sink; pub use self::{ builder::{LargeThresholdError, ShardBuilder, ShardIdError}, config::Config, event::Events, processor::heartbeat::Latency, r#impl::{ CommandError, Information, ResumeSession, SessionInactiveError, Shard, ShardStartError, }, sink::ShardSink, stage::Stage, }; use async_tungstenite::{tokio::ConnectStream, WebSocketStream}; type ShardStream = WebSocketStream<ConnectStream>;