autd3_driver/datagram/
with_segment.rsuse autd3_core::datagram::{Datagram, DatagramOption, DatagramS, Segment, TransitionMode};
use derive_more::Deref;
use derive_new::new;
#[derive(Deref, Debug, Clone, Copy, PartialEq, Eq, Hash, new)]
pub struct WithSegment<D: DatagramS> {
#[deref]
pub inner: D,
pub segment: Segment,
pub transition_mode: Option<TransitionMode>,
}
impl<D: DatagramS> Datagram for WithSegment<D> {
type G = D::G;
type Error = D::Error;
fn operation_generator(
self,
geometry: &autd3_core::derive::Geometry,
parallel: bool,
) -> Result<Self::G, Self::Error> {
<D as DatagramS>::operation_generator_with_segment(
self.inner,
geometry,
parallel,
self.segment,
self.transition_mode,
)
}
fn option(&self) -> DatagramOption {
<D as DatagramS>::option(&self.inner)
}
}