autd3_driver/datagram/
reads_fpga_state.rs

1use std::convert::Infallible;
2
3use autd3_core::{
4    datagram::{Datagram, DeviceMask},
5    environment::Environment,
6    geometry::{Device, Geometry},
7};
8
9/// [`Datagram`] to enable reading the FPGA state.
10#[derive(Debug)]
11pub struct ReadsFPGAState<F> {
12    #[doc(hidden)]
13    pub f: F,
14}
15
16impl<F: Fn(&Device) -> bool> ReadsFPGAState<F> {
17    /// Creates a new [`ReadsFPGAState`].
18    #[must_use]
19    pub const fn new(f: F) -> Self {
20        Self { f }
21    }
22}
23
24impl<F: Fn(&Device) -> bool> Datagram<'_> for ReadsFPGAState<F> {
25    type G = Self;
26    type Error = Infallible;
27
28    fn operation_generator(
29        self,
30        _: &Geometry,
31        _: &Environment,
32        _: &DeviceMask,
33    ) -> Result<Self::G, Self::Error> {
34        Ok(self)
35    }
36}