[−][src]Struct drying_paint::WatchedEvent
A WatchedEvent uses the watch system provided by this crate to implement
an event disptacher. This is different from a watched value
(Watched) in that events will fire for each value
passed to WatchedEvent::dispatch() and will not "store" the data.
A bind_event
macro is provided for convience, and is the preferred way
to watch an event:
use drying_paint::*; type EventCounter = Watcher<EventCounterData>; #[derive(Default)] struct EventCounterData { counter: u32, add: WatchedEvent<u32>, } impl WatcherInit for EventCounterData { fn init(watcher: &mut WatcherMeta<Self>) { bind_event!(watcher => root, root.add => amount, { root.counter += amount; }); } } fn main() { let mut ctx = WatchContext::new(); ctx.with(|| { let mut item = EventCounter::new(); item.data_mut().add.dispatch(7); WatchContext::update_current(); assert_eq!(item.data().counter, 7); item.data_mut().add.dispatch(9); item.data_mut().add.dispatch(3); WatchContext::update_current(); assert_eq!(item.data().counter, 19); }); }
Methods
impl<T: 'static> WatchedEvent<T>
[src]
pub fn new() -> Self
[src]
Create a new WatchedEvent
pub fn get_current(&mut self) -> Option<&T>
[src]
This method provides the raw functionality of listening to an event.
Normally, it is preferred to use the bind_event macro.
This returns a reference to the value passed to dispatch() when the
function is executing as a consequence of an event dispatch. When
initially binding, and in-between dispatches, it will return None
.
pub fn dispatch(&mut self, arg: T)
[src]
Trigger the event. The argument passed will be delivered to listeners.
Trait Implementations
impl<T: 'static> Default for WatchedEvent<T>
[src]
Auto Trait Implementations
impl<T> !RefUnwindSafe for WatchedEvent<T>
impl<T> !Send for WatchedEvent<T>
impl<T> !Sync for WatchedEvent<T>
impl<T> Unpin for WatchedEvent<T> where
T: Unpin,
T: Unpin,
impl<T> !UnwindSafe for WatchedEvent<T>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,