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>;
fn subscriber_mut(
&mut self,
subscriber_id: SubscriberId,
) -> Result<&mut Self::Subscriber>;
fn event_ops(&mut self, subscriber_id: SubscriberId) -> Result<EventOps<'_>>;
}
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>
fn remove_subscriber( &mut self, subscriber_id: SubscriberId, ) -> Result<Self::Subscriber>
Removes the subscriber corresponding to subscriber_id
from the watch list.
Sourcefn subscriber_mut(
&mut self,
subscriber_id: SubscriberId,
) -> Result<&mut Self::Subscriber>
fn subscriber_mut( &mut self, subscriber_id: SubscriberId, ) -> Result<&mut Self::Subscriber>
Returns a mutable reference to the subscriber corresponding to subscriber_id
.
Sourcefn event_ops(&mut self, subscriber_id: SubscriberId) -> Result<EventOps<'_>>
fn event_ops(&mut self, subscriber_id: SubscriberId) -> Result<EventOps<'_>>
Creates an event operations wrapper for the subscriber corresponding to subscriber_id
.
The event operations can be used to update the events monitored by the subscriber.