use super::RawQuality;
pub type MajorInterval<T = isize> = IntervalBase<super::Major, T>;
#[derive(Clone, Copy, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
pub struct IntervalBase<Q, T = isize>
where
Q: RawQuality,
{
pub quality: Q,
pub steps: T,
}
#[derive(Clone, Copy, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
pub struct ConstInterval<const N: isize, Q>
where
Q: RawQuality,
{
pub quality: Q,
}