#[cfg(target_family = "wasm")]
use wasm_bindgen::prelude::*;
use crate::*;
#[cfg_attr(target_family = "wasm", wasm_bindgen)]
#[derive(Debug, PartialEq, Eq, Copy, Clone)]
pub struct Hms {
pub hour: u8,
pub minute: u8,
pub second: u8,
}
impl Hms {
pub(crate) fn from_number(number: u32) -> Self {
Self {
hour: (number / 3600) as u8,
minute: ((number % 3600) / 60) as u8,
second: ((number % 3600) % 60) as u8,
}
}
}
impl FromRawNumber for Hms {
fn from_raw_number(number: u64) -> (u64, Self) {
(
number / SECONDS_PER_DAY as u64,
Self::from_number((number % SECONDS_PER_DAY as u64) as u32),
)
}
}
impl Default for Hms {
fn default() -> Self {
Self::from_number(0)
}
}