use super::*;
use qtty_derive::Unit;
#[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Unit)]
#[unit(symbol = "a", dimension = Time, ratio = 365.25 * SECONDS_PER_DAY)]
pub struct JulianYear;
pub type JulianYears = Quantity<JulianYear>;
pub const JULIAN_YEAR: JulianYears = JulianYears::new(1.0);
#[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Unit)]
#[unit(symbol = "JC", dimension = Time, ratio = 36_525.0 * SECONDS_PER_DAY)]
pub struct JulianCentury;
pub type JulianCenturies = Quantity<JulianCentury>;
pub const JULIAN_CENTURY: JulianCenturies = JulianCenturies::new(1.0);
crate::impl_unit_from_conversions_between!(
Attosecond, Femtosecond, Picosecond, Nanosecond, Microsecond, Millisecond,
Centisecond, Decisecond, Second, Decasecond, Hectosecond, Kilosecond,
Megasecond, Gigasecond, Terasecond, Minute, Hour, Day, Week, Fortnight,
Year, Decade, Century, Millennium;
JulianYear, JulianCentury
);
#[cfg(feature = "cross-unit-ops")]
crate::impl_unit_cross_unit_ops_between!(
Attosecond, Femtosecond, Picosecond, Nanosecond, Microsecond, Millisecond,
Centisecond, Decisecond, Second, Decasecond, Hectosecond, Kilosecond,
Megasecond, Gigasecond, Terasecond, Minute, Hour, Day, Week, Fortnight,
Year, Decade, Century, Millennium;
JulianYear, JulianCentury
);
#[macro_export]
#[doc(hidden)]
macro_rules! time_julian_time_units {
($cb:path) => {
$cb!(JulianYear, JulianCentury,);
};
}