use ::model::{ChannelId, RoleId};
use ::internal::prelude::*;
#[derive(Clone, Debug, Default)]
pub struct EditMember(pub JsonMap);
impl EditMember {
pub fn deafen(mut self, deafen: bool) -> Self {
self.0.insert("deaf".to_owned(), Value::Bool(deafen));
self
}
pub fn mute(mut self, mute: bool) -> Self {
self.0.insert("mute".to_owned(), Value::Bool(mute));
self
}
pub fn nickname(mut self, nickname: &str) -> Self {
self.0.insert("nick".to_owned(), Value::String(nickname.to_owned()));
self
}
pub fn roles(mut self, roles: &[RoleId]) -> Self {
let role_ids = roles.iter().map(|x| Value::Number(Number::from(x.0))).collect();
self.0.insert("roles".to_owned(), Value::Array(role_ids));
self
}
pub fn voice_channel<C: Into<ChannelId>>(mut self, channel_id: C) -> Self {
self.0.insert("channel_id".to_owned(), Value::Number(Number::from(channel_id.into().0)));
self
}
}