[][src]Struct serenity::client::bridge::gateway::ShardRunner

pub struct ShardRunner { /* fields omitted */ }

A runner for managing a Shard and its respective WebSocket client.

Implementations

impl ShardRunner[src]

pub fn new(opt: ShardRunnerOptions) -> Self[src]

Creates a new runner for a Shard.

pub async fn run(&mut self) -> Result<()>[src]

Starts the runner's loop to receive events.

This runs a loop that performs the following in each iteration:

  1. checks the receiver for ShardRunnerMessages, possibly from the ShardManager, and if there is one, acts on it.

  2. checks if a heartbeat should be sent to the discord Gateway, and if so, sends one.

  3. attempts to retrieve a message from the WebSocket, processing it into a GatewayEvent. This will block for 100ms before assuming there is no message available.

  4. Checks with the Shard to determine if the gateway event is specifying an action to take (e.g. resuming, reconnecting, heartbeating) and then performs that action, if any.

  5. Dispatches the event via the Client.

  6. Go back to 1.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

impl<T> WithSubscriber for T[src]