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

pub struct ShardManagerMonitor {
    pub manager: Arc<Mutex<ShardManager>>,
    pub rx: Receiver<ShardManagerMessage>,
}

The shard manager monitor does what it says on the tin -- it monitors the shard manager and performs actions on it as received.

The monitor is essentially responsible for running in its own thread and receiving ShardManagerMessages, such as whether to shutdown a shard or shutdown everything entirely.

Fields

manager: Arc<Mutex<ShardManager>>

An clone of the Arc to the manager itself.

rx: Receiver<ShardManagerMessage>

The mpsc Receiver channel to receive shard manager messages over.

Methods

impl ShardManagerMonitor[src]

pub fn run(&mut self)[src]

"Runs" the monitor, waiting for messages over the Receiver.

This should be called in its own thread due to its blocking, looped nature.

This will continue running until either:

  • a ShardManagerMessage::ShutdownAll has been received
  • an error is returned while receiving a message from the channel (probably indicating that the shard manager should stop anyway)

Trait Implementations

impl Debug for ShardManagerMonitor[src]

Auto Trait Implementations

Blanket Implementations

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

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

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<T> BorrowMut<T> for T where
    T: ?Sized
[src]

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

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

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> Erased for T

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

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

impl<T> DebugAny for T where
    T: Any + Debug
[src]

impl<T> UnsafeAny for T where
    T: Any