Struct Reactor

Source
pub struct Reactor {
    pub events: Arc<Mutex<HashMap<String, Waker>>>,
}
Expand description

The Reactor struct stores event references for the events currently being waited on

This collection is safe to access across thread boundaries as we have wrapped with an Arc to satisfy borrowing the value across threads and it is also wrapped in a Mutex to ensure that only one thread can write to it at a time


Safety: We must make sure when a job is prematurely cancelled we drop any events being waited on We could do this by implementing the drop trait on the Job

Fields§

§events: Arc<Mutex<HashMap<String, Waker>>>

A dictionary of events where the key is a unique identifier to the event and the value contains a struct with a mechanism to resume the future

Implementations§

Source§

impl Reactor

Source

pub fn new() -> Self

Create a new reactor with an empty events register

Source

pub async fn run(self, internal_rx: Receiver<Event>) -> Result<(), Error>

Connect to the external message broker to listen for events and react to them

Auto Trait Implementations§

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> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V