pub trait SubscriberOps {
type Subscriber: MutEventSubscriber;
// Required methods
fn add_subscriber(&mut self, subscriber: Self::Subscriber) -> SubscriberId;
fn remove_subscriber(
&mut self,
subscriber_id: SubscriberId,
) -> Result<Self::Subscriber, Error>;
fn subscriber_mut(
&mut self,
subscriber_id: SubscriberId,
) -> Result<&mut Self::Subscriber, Error>;
fn event_ops(
&mut self,
subscriber_id: SubscriberId,
) -> Result<EventOps<'_>, Error>;
}
Expand description
API that allows users to add, remove, and interact with registered subscribers.
Required Associated Types§
Sourcetype Subscriber: MutEventSubscriber
type Subscriber: MutEventSubscriber
Subscriber type for which the operations apply.
Required Methods§
Sourcefn add_subscriber(&mut self, subscriber: Self::Subscriber) -> SubscriberId
fn add_subscriber(&mut self, subscriber: Self::Subscriber) -> SubscriberId
Registers a new subscriber and returns the ID associated with it.
§Panics
This function might panic if the subscriber is already registered. Whether a panic is triggered depends on the implementation of Subscriber::init().
Typically, in the init
function, the subscriber adds fds to its interest list. The same
fd cannot be added twice and the EventManager
will return
Error::FdAlreadyRegistered. Using unwrap
in init in this situation
triggers a panic.
Sourcefn remove_subscriber(
&mut self,
subscriber_id: SubscriberId,
) -> Result<Self::Subscriber, Error>
fn remove_subscriber( &mut self, subscriber_id: SubscriberId, ) -> Result<Self::Subscriber, Error>
Removes the subscriber corresponding to subscriber_id
from the watch list.
Sourcefn subscriber_mut(
&mut self,
subscriber_id: SubscriberId,
) -> Result<&mut Self::Subscriber, Error>
fn subscriber_mut( &mut self, subscriber_id: SubscriberId, ) -> Result<&mut Self::Subscriber, Error>
Returns a mutable reference to the subscriber corresponding to subscriber_id
.