use crate::notes::note_base::NoteBase;
use crate::octave::Octave;
use crate::pitch::{Flat, Natural, PitchClass, RawPitchClass, Sharp};
impl<P> NoteBase<P>
where
P: RawPitchClass,
{
pub fn natural(class: P, octave: Octave) -> NoteBase<P, Natural>
where
P: RawPitchClass<Tag = Natural>,
{
NoteBase::new(PitchClass::natural(class), octave)
}
pub fn sharp(class: P, octave: Octave) -> NoteBase<P, Sharp>
where
P: RawPitchClass<Tag = Sharp>,
{
NoteBase::new(PitchClass::sharp(class), octave)
}
pub fn flat(class: P, octave: Octave) -> NoteBase<P, Flat>
where
P: RawPitchClass<Tag = Flat>,
{
NoteBase::new(PitchClass::flat(class), octave)
}
}