use super::{Number, RawTimeSeries, Interval};
pub trait Generate {
fn generate(&self) -> RawTimeSeries;
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum GenOps {
Static(Number),
Wave(Wave),
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum WaveType {
Square,
Triangle,
Sine,
Sawtooth,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct Wave {
pub frequency: Interval,
pub wave_type: WaveType,
pub amplitude: Number,
}