1use super::{emit_intensity::EmitIntensity, phase::Phase};
2
3use zerocopy::{Immutable, IntoBytes};
4
5#[derive(Clone, Copy, Debug, PartialEq, Eq, IntoBytes, Immutable)]
7#[repr(C)]
8pub struct Drive {
9    pub phase: Phase,
11    pub intensity: EmitIntensity,
13}
14
15impl Drive {
16    pub const NULL: Self = Self {
18        phase: Phase::ZERO,
19        intensity: EmitIntensity::MIN,
20    };
21}
22
23#[cfg(test)]
24mod tests {
25    use super::*;
26
27    #[test]
28    fn test_null() {
29        assert_eq!(
30            Drive {
31                phase: Phase::ZERO,
32                intensity: EmitIntensity::MIN
33            },
34            Drive::NULL
35        );
36    }
37}