const DUSK_UNIT: f64 = 1_000_000_000.0;
pub const LUX: Dusk = dusk(1.0 / DUSK_UNIT);
pub type Dusk = u64;
#[must_use]
#[allow(clippy::cast_possible_truncation)]
#[allow(clippy::cast_sign_loss)]
pub const fn dusk(value: f64) -> Dusk {
(value * DUSK_UNIT) as Dusk
}
#[must_use]
#[allow(clippy::cast_precision_loss)]
pub const fn from_dusk(dusk: Dusk) -> f64 {
dusk as f64 / DUSK_UNIT
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn from_to_dusk() {
let value = 5f64;
let dusk_value = dusk(value);
assert_eq!(value, from_dusk(dusk_value));
}
#[test]
fn lux_is_one() {
assert_eq!(LUX, 1);
}
}