pub struct FireState<'a, S, D>{
pub callables: Box<[<S as Simulation>::Event]>,
/* private fields */
}Expand description
A temporary object for selecting an event to call.
Fields§
§callables: Box<[<S as Simulation>::Event]>A slice of indices of the current callable events.
Implementations§
Source§impl<'a, S, D> CallState<'a, S, D>where
S: Simulation,
D: PlayDirection,
impl<'a, S, D> CallState<'a, S, D>where
S: Simulation,
D: PlayDirection,
Sourcepub fn call(self, index: usize)
pub fn call(self, index: usize)
Calls the event at the specified index.
Examples found in repository?
examples/example.rs (line 115)
87 fn step<D: FireDirection>(
88 fire: FireState<SimulationStateMut, D>,
89 names: &HashMap<Tid, String>,
90 ) -> StepAction {
91 if fire.callables.is_empty() {
92 return StepAction::Reverse;
93 }
94
95 for (i, tid) in fire.callables.iter().enumerate() {
96 println!("{}: {}", i + 1, names[tid]);
97 }
98 let stdin = io::stdin();
99 let mut string = String::new();
100 let Ok(size) = stdin.read_line(&mut string) else {
101 eprintln!("Input error");
102 return StepAction::Continue;
103 };
104 if size == 0 {
105 return StepAction::Continue;
106 }
107 match unsafe { string.chars().next().unwrap_unchecked() } {
108 'r' => return StepAction::Reverse,
109 'q' => return StepAction::Quit,
110 's' => return StepAction::Save,
111 _ => (),
112 }
113 match usize::from_str(&string[..(string.len() - 1)]) {
114 Ok(num) if num != 0 && num <= fire.callables.len() => {
115 fire.call(num - 1);
116 }
117 _ => {
118 println!(
119 "You have to input a valid number from 1 to {}",
120 fire.callables.len()
121 );
122 println!("You can also quit by writing \"q\", save the current state by writing \"s\" or reverse by writing \"r\"");
123 return StepAction::Continue;
124 }
125 }
126
127 StepAction::Continue
128 }Auto Trait Implementations§
impl<'a, S, D> Freeze for CallState<'a, S, D>
impl<'a, S, D> RefUnwindSafe for CallState<'a, S, D>
impl<'a, S, D> Send for CallState<'a, S, D>
impl<'a, S, D> Sync for CallState<'a, S, D>
impl<'a, S, D> Unpin for CallState<'a, S, D>
impl<'a, S, D> !UnwindSafe for CallState<'a, S, D>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more