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) -> (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}