use crate::spectrum::{impls::{FFTImpl, IFFTImpl}, base::{FFTApply, FFTFactory, IFFTApply}};
use num_traits::{Float, FromPrimitive, Zero, One};
pub struct DefaultFFTFactory;
impl<T> FFTFactory<T> for DefaultFFTFactory
where
T: Float + FromPrimitive + Clone + Zero + One + 'static,
{
fn create_fft(&self) -> Box<dyn FFTApply<T>> {
Box::new(FFTImpl)
}
fn create_ifft(&self) -> Box<dyn IFFTApply<T>> {
Box::new(IFFTImpl)
}
}