autd3_driver/firmware/v10/operation/
mod.rs

1mod boxed;
2mod clear;
3mod cpu_gpio_out;
4mod force_fan;
5mod fpga_gpio_out;
6mod gain;
7mod gpio_in;
8mod group;
9mod info;
10mod modulation;
11mod phase_corr;
12mod pulse_width_encoder;
13mod reads_fpga_state;
14mod segment;
15mod silencer;
16mod stm;
17mod sync;
18mod tuple;
19
20pub(crate) use clear::*;
21pub(crate) use cpu_gpio_out::*;
22pub(crate) use force_fan::*;
23pub(crate) use fpga_gpio_out::*;
24pub(crate) use gain::*;
25pub(crate) use gpio_in::*;
26pub(crate) use info::*;
27pub(crate) use modulation::*;
28pub(crate) use phase_corr::*;
29pub(crate) use reads_fpga_state::*;
30pub(crate) use segment::*;
31pub(crate) use silencer::*;
32pub(crate) use stm::*;
33pub(crate) use sync::*;
34
35use crate::firmware::driver::Operation;
36
37use autd3_core::geometry::Device;
38
39#[doc(hidden)]
40pub trait OperationGenerator {
41    type O1: Operation;
42    type O2: Operation;
43
44    #[must_use]
45    fn generate(&mut self, device: &Device) -> Option<(Self::O1, Self::O2)>;
46}