autd3_driver/datagram/
segment.rs1use std::convert::Infallible;
2
3use crate::{datagram::*, firmware::operation::SwapSegmentOp};
4
5use super::OperationGenerator;
6
7pub struct SwapSegmentOpGenerator {
8 segment: SwapSegment,
9}
10
11impl OperationGenerator for SwapSegmentOpGenerator {
12 type O1 = SwapSegmentOp;
13 type O2 = NullOp;
14
15 fn generate(&mut self, _: &Device) -> Option<(Self::O1, Self::O2)> {
16 Some((Self::O1::new(self.segment), Self::O2 {}))
17 }
18}
19
20impl Datagram for SwapSegment {
21 type G = SwapSegmentOpGenerator;
22 type Error = Infallible;
23
24 fn operation_generator(self, _: &mut Geometry) -> Result<Self::G, Self::Error> {
25 Ok(SwapSegmentOpGenerator { segment: self })
26 }
27}