autd3_driver/datagram/
segment.rs

1use 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) -> (Self::O1, Self::O2) {
16        (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, _: &Geometry, _: bool) -> Result<Self::G, Self::Error> {
25        Ok(SwapSegmentOpGenerator { segment: self })
26    }
27}