pub struct EventDispatcher<Ctx> { /* private fields */ }
Expand description

A reference implementation of the event dispatcher

Implementations§

source§

impl<Ctx> EventDispatcher<Ctx>

source

pub fn new() -> Self

Create a new event dispatcher

source§

impl<Ctx: Client + 'static> EventDispatcher<Ctx>

source

pub fn poll_next<'a>( &'a mut self, cx: &mut Context<'_> ) -> Poll<PendingEvent<'a, Ctx>>

Poll for the next event, which needs to be handled with the use of the client context.

Caveats

If this is called from multiple tasks, those tasks will just keep waking up each other and waste CPU cycles.

source

pub fn next(&mut self) -> impl FusedFuture<Output = PendingEvent<'_, Ctx>> + '_

Wait for the next event from the event dispatcher. Returns a future that resolves to a PendingEvent, the caller should call PendingEvent::handle to handle the event.

source

pub async fn handle_queued_events<'ctx>( &'ctx mut self, objects: &'ctx mut Ctx::ObjectStore, connection: &'ctx mut Ctx::Connection, server_context: &'ctx Ctx::ServerContext ) -> Result<(), Box<dyn Error + Send + Sync>>

Handle all events that are current queued. The futures returned will resolve as soon as there are no more events queued in this event dispatcher. It will not wait for new events to be queued, but it may wait for the futures returned by the event handlers to resolve.

Trait Implementations§

source§

impl<Ctx> Debug for EventDispatcher<Ctx>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Ctx> Default for EventDispatcher<Ctx>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<Ctx: Client + 'static> EventDispatcher<Ctx> for EventDispatcher<Ctx>

source§

fn add_event_handler<M: Any>( &mut self, event_source: impl Stream<Item = M> + 'static, handler: impl EventHandler<Ctx, Message = M> + 'static )

Register an event handler Read more

Auto Trait Implementations§

§

impl<Ctx> !RefUnwindSafe for EventDispatcher<Ctx>

§

impl<Ctx> !Send for EventDispatcher<Ctx>

§

impl<Ctx> !Sync for EventDispatcher<Ctx>

§

impl<Ctx> Unpin for EventDispatcher<Ctx>

§

impl<Ctx> !UnwindSafe for EventDispatcher<Ctx>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dstwhere T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dstwhere Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere Dst: LosslessTryFrom<Src>,

source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
source§

impl<Src, Dst> LossyInto<Dst> for Srcwhere Dst: LossyFrom<Src>,

source§

fn lossy_into(self) -> Dst

Performs the conversion.
source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dstwhere T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dstwhere T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dstwhere T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere Src: WrappingCast<Dst>,

source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.