disma 0.16.4

Discord server management has never been easier!
Documentation
use crate::{
    category::AwaitingCategory,
    channel::{AwaitingChannel, ChannelType},
    permission::{PermissionsOverwrite, PermissionsOverwritesList},
    role::AwaitingRole,
};

pub struct AwaitingChannelFixture {
    name: String,
    overwrites: PermissionsOverwritesList<AwaitingRole>,
    topic: Option<String>,
    channel_type: ChannelType,
    category: Option<AwaitingCategory>,
}

impl AwaitingChannelFixture {
    pub fn new() -> Self {
        Self {
            name: "abc".to_string(),
            overwrites: PermissionsOverwritesList::from(Vec::new()),
            topic: None,
            channel_type: ChannelType::TEXT,
            category: None,
        }
    }

    pub fn with_name(mut self, name: &str) -> Self {
        self.name = name.to_string();
        self
    }

    pub fn with_category(mut self, category: &AwaitingCategory) -> Self {
        self.category = Some(category.clone());
        self
    }

    pub fn with_permissions_overwrites(
        mut self,
        overwrites: Vec<PermissionsOverwrite<AwaitingRole>>,
    ) -> Self {
        self.overwrites = PermissionsOverwritesList::from(overwrites);
        self
    }

    pub fn build(self) -> AwaitingChannel {
        AwaitingChannel {
            name: self.name,
            overwrites: self.overwrites,
            topic: self.topic,
            channel_type: self.channel_type,
            category: self.category,
        }
    }
}