#[derive(Clone, Debug)]
pub struct Channel {
pub slug: String,
pub publish: Option<String>,
pub subscribe: Option<String>,
}
impl Channel {
pub fn new(slug: impl Into<String>) -> Self {
Self {
slug: slug.into(),
publish: None,
subscribe: None,
}
}
pub fn publish(mut self, permission: impl Into<String>) -> Self {
self.publish = Some(permission.into());
self
}
pub fn subscribe(mut self, permission: impl Into<String>) -> Self {
self.subscribe = Some(permission.into());
self
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Via {
Database,
#[cfg(feature = "ws")]
Ws,
#[cfg(feature = "mail")]
Mail,
}