event loop: Add descriptions
This commit is contained in:
		@ -48,15 +48,22 @@ use std::cmp;
 | 
			
		||||
use std::time::{ Duration, Instant };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/// Carries the incoming data to affect the actor state,
 | 
			
		||||
/// plus an event to help schedule timed events.
 | 
			
		||||
pub trait Event: Clone {
 | 
			
		||||
    /// Returns the value of the reached timeout, if this event carries the timeout.
 | 
			
		||||
    fn get_timeout_reached(&self) -> Option<Instant>;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Contains and updates the intenal state of the actor.
 | 
			
		||||
pub trait ActorState: Clone {
 | 
			
		||||
    type Event: Event;
 | 
			
		||||
    /// Returns the new internal state after the event gets processed.
 | 
			
		||||
    fn apply_event(self, e: Self::Event, time: Instant) -> Self;
 | 
			
		||||
    /// Returns the observable state of the actor given this internal state.
 | 
			
		||||
    fn get_outcome(&self, time: Instant) -> state::Outcome;
 | 
			
		||||
    /// Returns the next wake up to schedule if one is needed.
 | 
			
		||||
    /// This may be called at any time, so should always return the correct value.
 | 
			
		||||
    fn get_next_wake(&self, now: Instant) -> Option<Instant>;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user