pub struct Frequency(pub u64);Expand description
A radio frequency in Hertz.
Frequencies are stored and serialized as Hertz (Hz) as required by TrackAudio, but can be constructed from Megahertz (MHz) or Kilohertz (kHz) for convenience.
§Examples
use trackaudio::Frequency;
// Construct from MHz
let freq = Frequency::from_mhz(132.600);
assert_eq!(freq, Frequency(132_600_000));
assert_eq!(freq.as_hz(), 132_600_000);
assert_eq!(freq.as_khz(), 132_600);
assert_eq!(freq.as_mhz(), 132.600);
// Construct from kHz
let freq = Frequency::from_khz(132_600);
assert_eq!(freq, Frequency(132_600_000));
assert_eq!(freq.as_hz(), 132_600_000);
assert_eq!(freq.as_khz(), 132_600);
assert_eq!(freq.as_mhz(), 132.600);
// Construct from Hz directly
let freq = Frequency::from_hz(132_600_000);
assert_eq!(freq, Frequency(132_600_000));
assert_eq!(freq.as_hz(), 132_600_000);
assert_eq!(freq.as_khz(), 132_600);
assert_eq!(freq.as_mhz(), 132.600);
// Convert from u64 (Hertz)
let freq: Frequency = 132_600_000.into();
assert_eq!(freq, Frequency(132_600_000));
assert_eq!(freq.as_hz(), 132_600_000);
assert_eq!(freq.as_khz(), 132_600);
assert_eq!(freq.as_mhz(), 132.600);
// Convert to u64 (Hertz)
let hz: u64 = Frequency::from_mhz(132.600).into();
assert_eq!(hz, 132_600_000);
// Convert from f64 (Megahertz)
let freq: Frequency = 132.6f64.into();
assert_eq!(freq, Frequency(132_600_000));
assert_eq!(freq.as_hz(), 132_600_000);
assert_eq!(freq.as_khz(), 132_600);
assert_eq!(freq.as_mhz(), 132.600);
// Convert to f64 (Megahertz)
let mhz: f64 = Frequency::from_mhz(132.600).into();
assert_eq!(mhz, 132.600f64);Tuple Fields§
§0: u64Implementations§
Source§impl Frequency
impl Frequency
Sourcepub const fn from_hz(hz: u64) -> Self
pub const fn from_hz(hz: u64) -> Self
Creates a Frequency from Hertz (Hz).
This is the same as constructing the type directly, as the frequency is stored in Hertz internally.
§Examples
use trackaudio::Frequency;
let freq = Frequency::from_hz(132_600_000);
assert_eq!(freq, Frequency(132_600_000));
assert_eq!(freq.as_hz(), 132_600_000);
assert_eq!(freq.as_khz(), 132_600);
assert_eq!(freq.as_mhz(), 132.600);Trait Implementations§
Source§impl<'de> Deserialize<'de> for Frequency
impl<'de> Deserialize<'de> for Frequency
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Ord for Frequency
impl Ord for Frequency
Source§impl PartialOrd for Frequency
impl PartialOrd for Frequency
impl Copy for Frequency
impl Eq for Frequency
impl StructuralPartialEq for Frequency
Auto Trait Implementations§
impl Freeze for Frequency
impl RefUnwindSafe for Frequency
impl Send for Frequency
impl Sync for Frequency
impl Unpin for Frequency
impl UnwindSafe for Frequency
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more