pub struct Step<'p, INPUT> { /* private fields */ }Expand description
Logical step in the line
Implementations§
Source§impl<'p, INPUT> Step<'p, INPUT>where
INPUT: StepInput,
impl<'p, INPUT> Step<'p, INPUT>where
INPUT: StepInput,
Sourcepub fn then_any<OUTPUT, A, A2, F, F2>(
self,
action1: A,
action2: A2,
) -> Step<'p, OUTPUT>
pub fn then_any<OUTPUT, A, A2, F, F2>( self, action1: A, action2: A2, ) -> Step<'p, OUTPUT>
Passes the step in case if any of the actions returns Some
Sourcepub fn then<OUTPUT, A, F>(self, action: A) -> Step<'p, OUTPUT>
pub fn then<OUTPUT, A, F>(self, action: A) -> Step<'p, OUTPUT>
Passes the step in case if the action returns Some
Examples found in repository?
examples/fan_control.rs (line 16)
3fn main() {
4 let mut state = Rack::new().with_recording_enabled();
5 let mut processor = state.processor();
6
7 // Some fan state
8 let mut fan = false;
9
10 // A temperature sensor value
11 let temperature = 31.0;
12
13 processor
14 // a sequence to turn on the fan on if the temperature is above 30 degrees
15 .line("fan_on", temperature)
16 .then(action!("temp_high", |t| (t > 30.0).then_some(())))
17 .then(action!("fan_on", |()| {
18 fan = true;
19 Some(())
20 }));
21 processor
22 // a sequence to turn off the fan if the temperature is below 25 degrees
23 .line("fan_off", temperature)
24 .then(action!("temp_low", |t| (t < 25.0).then_some(())))
25 .then(action!("fan_off", |()| {
26 fan = false;
27 Some(())
28 }));
29
30 state.ingress(&mut processor);
31 println!("{}", state);
32
33 println!("{}", serde_json::to_string_pretty(&state).unwrap());
34}Auto Trait Implementations§
impl<'p, INPUT> Freeze for Step<'p, INPUT>where
INPUT: Freeze,
impl<'p, INPUT> RefUnwindSafe for Step<'p, INPUT>where
INPUT: RefUnwindSafe,
impl<'p, INPUT> Send for Step<'p, INPUT>where
INPUT: Send,
impl<'p, INPUT> Sync for Step<'p, INPUT>where
INPUT: Sync,
impl<'p, INPUT> Unpin for Step<'p, INPUT>where
INPUT: Unpin,
impl<'p, INPUT> !UnwindSafe for Step<'p, INPUT>
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