#[allow(unused_imports)]
use crate::{ActionLogic, PedalMapper};
use crate::{Dose, Mode, Projection};
#[allow(missing_docs)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum Request {
Start {
projection: Projection,
dose: Dose,
mode: Mode,
},
Stop {
projection: Projection,
dose: Dose,
mode: Mode,
},
ToggleSelectedProjection,
StartSelectedProjection { dose: Dose, mode: Mode },
StopSelectedProjection { dose: Dose, mode: Mode },
}
impl Request {
#[must_use]
pub fn start(projection: Projection, dose: Dose, mode: Mode) -> Self {
Self::Start {
projection,
dose,
mode,
}
}
#[must_use]
pub fn stop(projection: Projection, dose: Dose, mode: Mode) -> Self {
Self::Stop {
projection,
dose,
mode,
}
}
#[must_use]
pub fn toggle_selected_projection() -> Self {
Self::ToggleSelectedProjection
}
#[must_use]
pub fn start_selected_projection(dose: Dose, mode: Mode) -> Self {
Self::StartSelectedProjection { dose, mode }
}
#[must_use]
pub fn stop_selected_projection(dose: Dose, mode: Mode) -> Self {
Self::StopSelectedProjection { dose, mode }
}
}