1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
/*
* File: drive.rs
* Project: common
* Created Date: 14/10/2023
* Author: Shun Suzuki
* -----
* Last Modified: 17/01/2024
* Modified By: Shun Suzuki (suzuki@hapis.k.u-tokyo.ac.jp)
* -----
* Copyright (c) 2023 Shun Suzuki. All rights reserved.
*
*/
use super::{EmitIntensity, Phase};
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct Drive {
/// Phase of ultrasound
pub phase: Phase,
/// emission intensity
pub intensity: EmitIntensity,
}
impl Drive {
pub const fn null() -> Self {
Self {
phase: Phase::new(0),
intensity: EmitIntensity::MIN,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn drive() {
let d = Drive {
phase: Phase::new(1),
intensity: EmitIntensity::new(1),
};
let dc = Clone::clone(&d);
assert_eq!(d.phase, dc.phase);
assert_eq!(d.intensity, dc.intensity);
assert_eq!(
format!("{:?}", d),
"Drive { phase: Phase { value: 1 }, intensity: EmitIntensity { value: 1 } }"
);
}
}