mod amplitude;
pub use self::amplitude::Amplitude;
mod iter;
pub use self::iter::Iter;
pub trait Generator {
type Sample;
fn sample(&mut self) -> Self::Sample;
fn iter(self) -> Iter<Self>
where
Self: Sized,
{
Iter::new(self)
}
fn amplitude(self, amplitude: f32) -> Amplitude<Self>
where
Self: Sized,
{
Amplitude::new(self, amplitude)
}
}