pub struct Config {
pub(crate) gateway_large_treshold: u8,
pub(crate) gateway_guilds_subscriptions: bool,
pub(crate) gateway_shard_id: u64,
pub(crate) gateway_num_shards: u64,
}
impl Config {
pub fn new() -> ConfigBuilder {
ConfigBuilder::new()
}
pub(crate) fn new_default() -> Config {
Config {
gateway_large_treshold: 50,
gateway_guilds_subscriptions: true,
gateway_shard_id: 0,
gateway_num_shards: 1,
}
}
}
pub struct ConfigBuilder {
pub(crate) gateway_large_treshold: u8,
pub(crate) gateway_guilds_subscriptions: bool,
pub(crate) gateway_shard_id: u64,
pub(crate) gateway_num_shards: u64,
}
impl ConfigBuilder {
fn new() -> ConfigBuilder {
ConfigBuilder {
gateway_large_treshold: 50,
gateway_guilds_subscriptions: true,
gateway_shard_id: 0,
gateway_num_shards: 1,
}
}
pub fn set_large_threshold(mut self, threshold: u8) -> Self {
self.gateway_large_treshold = threshold;
self
}
pub fn set_guild_subscriptions(mut self, subscriptions: bool) -> Self {
self.gateway_guilds_subscriptions = subscriptions;
self
}
pub fn set_shards(mut self, shard_id: u64, num_shards: u64) -> Self {
self.gateway_shard_id = shard_id;
self.gateway_num_shards = num_shards;
self
}
pub fn build(self) -> Config {
Config {
gateway_large_treshold: self.gateway_large_treshold,
gateway_guilds_subscriptions: self.gateway_guilds_subscriptions,
gateway_shard_id: self.gateway_shard_id,
gateway_num_shards: self.gateway_num_shards,
}
}
}