Struct RcEventSource

Source
pub struct RcEventSource<T>(/* private fields */);
Expand description

To share the data between coroutine itself and the coroutine internals referring to the blocked event sources, RcEventSource is being used.

Mioco event loop and coroutine itself never use the data in the same time: either event loop or coroutine logic can be executing at the same time. Technically this could use a pointer, but RefCell is useful for making sure no references are being kept when switching between these two execution streams.

RcEventSource is parametrized over T, but also implements EventSourceTrait to allow trait-object (dynamic-dispatch) access.

Implementations§

Source§

impl<T> RcEventSource<T>

Source

pub fn new(t: T) -> Self

Create a new RcEventSource

Source

pub fn io_ref(&self) -> Ref<'_, T>

Get an immutable reference of io

Source

pub fn io_mut(&self) -> RefMut<'_, T>

Get a mutable reference of io

Trait Implementations§

Source§

impl<T> EventSourceTrait for RcEventSource<T>

Source§

fn register( &mut self, event_loop: &mut EventLoop<Handler>, token: Token, interest: EventSet, ) -> bool

Register

Source§

fn reregister( &mut self, event_loop: &mut EventLoop<Handler>, token: Token, interest: EventSet, ) -> bool

Reregister

Source§

fn deregister(&mut self, event_loop: &mut EventLoop<Handler>, token: Token)

Deregister

Auto Trait Implementations§

§

impl<T> Freeze for RcEventSource<T>

§

impl<T> !RefUnwindSafe for RcEventSource<T>

§

impl<T> !Send for RcEventSource<T>

§

impl<T> !Sync for RcEventSource<T>

§

impl<T> Unpin for RcEventSource<T>

§

impl<T> !UnwindSafe for RcEventSource<T>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

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<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<T> Erased for T