use crate::agc::Agc; use crate::fir::Fir; use crate::fm_demod::FmDemod; use crate::iq_reader::IqSample; pub trait DspPipelineExt: Iterator> + Sized { fn agc(self, sample_rate: f32, target_power: f32, min_gain: f32, max_gain: f32) -> Agc { Agc::new(self, sample_rate, target_power, min_gain, max_gain) } fn fir(self, taps: [f32; N], decimation_factor: usize) -> Fir { Fir::new(self, taps, decimation_factor) } fn demodulate(self) -> FmDemod { FmDemod::new(self) } } impl DspPipelineExt for I where I: Iterator> {}