use crate::Duration;
use crate::Instant;
use crate::Rate;
pub type PicosDuration<T> = Duration<T, 1, 1_000_000_000_000>;
pub type PicosDurationU32 = Duration<u32, 1, 1_000_000_000_000>;
pub type PicosDurationU64 = Duration<u64, 1, 1_000_000_000_000>;
pub type NanosDuration<T> = Duration<T, 1, 1_000_000_000>;
pub type NanosDurationU32 = Duration<u32, 1, 1_000_000_000>;
pub type NanosDurationU64 = Duration<u64, 1, 1_000_000_000>;
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: u64> = Duration<T, 1, FREQ_HZ>;
pub type TimerDurationU32<const FREQ_HZ: u64> = Duration<u32, 1, FREQ_HZ>;
pub type TimerDurationU64<const FREQ_HZ: u64> = Duration<u64, 1, FREQ_HZ>;
pub type TimerInstant<T, const FREQ_HZ: u64> = Instant<T, 1, FREQ_HZ>;
pub type TimerInstantU32<const FREQ_HZ: u64> = Instant<u32, 1, FREQ_HZ>;
pub type TimerInstantU64<const FREQ_HZ: u64> = Instant<u64, 1, FREQ_HZ>;
pub type Hertz<T> = Rate<T, 1, 1>;
pub type HertzU32 = Rate<u32, 1, 1>;
pub type HertzU64 = Rate<u64, 1, 1>;
pub type Kilohertz<T> = Rate<T, 1_000, 1>;
pub type KilohertzU32 = Rate<u32, 1_000, 1>;
pub type KilohertzU64 = Rate<u64, 1_000, 1>;
pub type Megahertz<T> = Rate<T, 1_000_000, 1>;
pub type MegahertzU32 = Rate<u32, 1_000_000, 1>;
pub type MegahertzU64 = Rate<u64, 1_000_000, 1>;
pub type Gigahertz<T> = Rate<T, 1_000_000_000, 1>;
pub type GigahertzU32 = Rate<u32, 1_000_000_000, 1>;
pub type GigahertzU64 = Rate<u64, 1_000_000_000, 1>;
pub type TimerRate<T, const FREQ_HZ: u64> = Rate<T, FREQ_HZ, 1>;
pub type TimerRateU32<const FREQ_HZ: u64> = Rate<u32, FREQ_HZ, 1>;
pub type TimerRateU64<const FREQ_HZ: u64> = Rate<u64, FREQ_HZ, 1>;