Struct general_pub_sub::PubSub [−][src]
pub struct PubSub<'a, TClient: Client<TIdentifier, TMessage>, TIdentifier: UniqueIdentifier, TMessage> { /* fields omitted */ }
A PubSub
Implementations
impl<'a, TClient: Client<TIdentifier, TMessage>, TIdentifier: UniqueIdentifier, TMessage: Clone + Copy> PubSub<'a, TClient, TIdentifier, TMessage>[src]
impl<'a, TClient: Client<TIdentifier, TMessage>, TIdentifier: UniqueIdentifier, TMessage: Clone + Copy> PubSub<'a, TClient, TIdentifier, TMessage>[src]Implementation for a PubSub
The standard workflow for a PubSub is to:
- Create a new
PubSub. - Add one or more
Clients. - Subscribe the
ClientstoChannelsof interest. - Publish
Messagesto theChannels. TheMessageis broadcast to allClientssubscribed to theChannel.
pub fn new() -> PubSub<'a, TClient, TIdentifier, TMessage>[src]
Creates a new PubSub
All Clients of the PubSub must use the same type of Identifier
and receive the same type of Message.
pub fn add_client(&mut self, client: TClient)[src]
Adds a Client to the PubSub
pub fn remove_client(&mut self, client: TClient)[src]
pub fn sub_client(
&mut self,
client: TClient,
channel: &'a str
) -> Result<(), PubSubError>[src]
&mut self,
client: TClient,
channel: &'a str
) -> Result<(), PubSubError>
Subscribes a Client to a Channel.
Results in a PubSubError when a Client attempts to subscribe to a
Channel that it is already subscribed to.
pub fn unsub_client(
&mut self,
client: TClient,
channel: &'a str
) -> Result<(), PubSubError>[src]
&mut self,
client: TClient,
channel: &'a str
) -> Result<(), PubSubError>
Unsubscribes a Client from a Channel
Results in a PubSubError when a Client attempts to unsubscribe
from a Channel it is not subscribed to.
pub fn pub_message<TInputMessage: Into<TMessage>>(
&mut self,
channel: &str,
msg: TInputMessage
)[src]
&mut self,
channel: &str,
msg: TInputMessage
)
Publishes a Message to all Clients subscribed to the provided Channel.
Trait Implementations
Auto Trait Implementations
impl<'a, TClient, TIdentifier, TMessage> RefUnwindSafe for PubSub<'a, TClient, TIdentifier, TMessage> where
TClient: RefUnwindSafe,
TIdentifier: RefUnwindSafe,
TMessage: RefUnwindSafe,
impl<'a, TClient, TIdentifier, TMessage> RefUnwindSafe for PubSub<'a, TClient, TIdentifier, TMessage> where
TClient: RefUnwindSafe,
TIdentifier: RefUnwindSafe,
TMessage: RefUnwindSafe, impl<'a, TClient, TIdentifier, TMessage> Send for PubSub<'a, TClient, TIdentifier, TMessage> where
TClient: Send,
TIdentifier: Send,
TMessage: Send,
impl<'a, TClient, TIdentifier, TMessage> Send for PubSub<'a, TClient, TIdentifier, TMessage> where
TClient: Send,
TIdentifier: Send,
TMessage: Send, impl<'a, TClient, TIdentifier, TMessage> Sync for PubSub<'a, TClient, TIdentifier, TMessage> where
TClient: Sync,
TIdentifier: Sync,
TMessage: Sync,
impl<'a, TClient, TIdentifier, TMessage> Sync for PubSub<'a, TClient, TIdentifier, TMessage> where
TClient: Sync,
TIdentifier: Sync,
TMessage: Sync, impl<'a, TClient, TIdentifier, TMessage> Unpin for PubSub<'a, TClient, TIdentifier, TMessage> where
TClient: Unpin,
TIdentifier: Unpin,
TMessage: Unpin,
impl<'a, TClient, TIdentifier, TMessage> Unpin for PubSub<'a, TClient, TIdentifier, TMessage> where
TClient: Unpin,
TIdentifier: Unpin,
TMessage: Unpin, impl<'a, TClient, TIdentifier, TMessage> UnwindSafe for PubSub<'a, TClient, TIdentifier, TMessage> where
TClient: UnwindSafe,
TIdentifier: RefUnwindSafe + UnwindSafe,
TMessage: UnwindSafe,
impl<'a, TClient, TIdentifier, TMessage> UnwindSafe for PubSub<'a, TClient, TIdentifier, TMessage> where
TClient: UnwindSafe,
TIdentifier: RefUnwindSafe + UnwindSafe,
TMessage: UnwindSafe,