pub trait PubSubProvider {
type Channels;
// Required methods
fn subscribe(
&self,
callback: AsyncCallback<ChannelMessage>,
channel: Self::Channels,
) -> Pin<Box<dyn Future<Output = Result<(), &'static str>> + Send + '_>>;
fn publish(&mut self, channel: Self::Channels, message: ChannelMessage);
}