event loop: Add descriptions
This commit is contained in:
		@ -48,15 +48,22 @@ use std::cmp;
 | 
				
			|||||||
use std::time::{ Duration, Instant };
 | 
					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 {
 | 
					pub trait Event: Clone {
 | 
				
			||||||
    /// Returns the value of the reached timeout, if this event carries the timeout.
 | 
					    /// Returns the value of the reached timeout, if this event carries the timeout.
 | 
				
			||||||
    fn get_timeout_reached(&self) -> Option<Instant>;
 | 
					    fn get_timeout_reached(&self) -> Option<Instant>;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// Contains and updates the intenal state of the actor.
 | 
				
			||||||
pub trait ActorState: Clone {
 | 
					pub trait ActorState: Clone {
 | 
				
			||||||
    type Event: Event;
 | 
					    type Event: Event;
 | 
				
			||||||
 | 
					    /// Returns the new internal state after the event gets processed.
 | 
				
			||||||
    fn apply_event(self, e: Self::Event, time: Instant) -> Self;
 | 
					    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;
 | 
					    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>;
 | 
					    fn get_next_wake(&self, now: Instant) -> Option<Instant>;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user