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
Clients
toChannels
of interest. - Publish
Messages
to theChannels
. TheMessage
is broadcast to allClients
subscribed 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,