use crate::duration::Duration;
use crate::instant::Instant;
pub type MicrosDuration<T> = Duration<T, 1, 1_000_000>;
pub type MicrosDurationU32 = Duration<u32, 1, 1_000_000>;
pub type MicrosDurationU64 = Duration<u64, 1, 1_000_000>;
pub type MillisDuration<T> = Duration<T, 1, 1_000>;
pub type MillisDurationU32 = Duration<u32, 1, 1_000>;
pub type MillisDurationU64 = Duration<u64, 1, 1_000>;
pub type SecsDuration<T> = Duration<T, 1, 1>;
pub type SecsDurationU32 = Duration<u32, 1, 1>;
pub type SecsDurationU64 = Duration<u64, 1, 1>;
pub type MinutesDuration<T> = Duration<T, 60, 1>;
pub type MinutesDurationU32 = Duration<u32, 60, 1>;
pub type MinutesDurationU64 = Duration<u64, 60, 1>;
pub type HoursDuration<T> = Duration<T, 3_600, 1>;
pub type HoursDurationU32 = Duration<u32, 3_600, 1>;
pub type HoursDurationU64 = Duration<u64, 3_600, 1>;
pub type TimerDuration<T, const FREQ_HZ: u32> = Duration<T, 1, FREQ_HZ>;
pub type TimerDurationU32<const FREQ_HZ: u32> = Duration<u32, 1, FREQ_HZ>;
pub type TimerDurationU64<const FREQ_HZ: u32> = Duration<u64, 1, FREQ_HZ>;
pub type TimerInstant<T, const FREQ_HZ: u32> = Instant<T, 1, FREQ_HZ>;
pub type TimerInstantU32<const FREQ_HZ: u32> = Instant<u32, 1, FREQ_HZ>;
pub type TimerInstantU64<const FREQ_HZ: u32> = Instant<u64, 1, FREQ_HZ>;