[][src]Enum twilight_gateway::cluster::ShardScheme

#[non_exhaustive]pub enum ShardScheme {
    Auto,
    Range {
        from: u64,
        to: u64,
        total: u64,
    },
}

The method of sharding to use.

By default this is Auto.

Variants (Non-exhaustive)

Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Auto

Specifies to retrieve the amount of shards recommended by Discord and then start all of them.

For example, if Discord recommends 10 shards, then all 10 shards will be started.

Range

Specifies to start a range of shards.

Examples

For example, if your bot uses 50 shards, then you might specify to start shards 0 through 24:

use twilight_gateway::cluster::ShardScheme;
use std::convert::TryFrom;

let range = ShardScheme::try_from((0..24, 50))?;

Fields of Range

from: u64

First shard ID to spawn.

to: u64

Last shard ID to spawn.

This doesn't necessarily have to be up to the total.

total: u64

Total number of shards used by the bot.

Trait Implementations

impl Clone for ShardScheme[src]

impl Debug for ShardScheme[src]

impl Default for ShardScheme[src]

impl Eq for ShardScheme[src]

impl Hash for ShardScheme[src]

impl PartialEq<ShardScheme> for ShardScheme[src]

impl StructuralEq for ShardScheme[src]

impl StructuralPartialEq for ShardScheme[src]

impl<T: RangeBounds<u64>> TryFrom<(T, u64)> for ShardScheme[src]

type Error = ShardSchemeRangeError

The type returned in the event of a conversion error.

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<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?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> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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>,