use anyhow::*;
use crate::{
    matrix::Matrix,
    config::FLOAT,
    deep::*,
};


/*
#[derive(Clone, Debug, PartialEq)]
pub struct ConvLayer<'a, const LEN: usize, const DIM: usize, const BUFF_LEN: usize>{
    filters : [Matrix<'a, DIM>; LEN],
}

impl<const LEN: usize, const DIM: usize, const BUFF_LEN: usize> Layer for ConvLayer<'static, LEN, DIM, BUFF_LEN>{

    fn any(&self) -> &dyn Any{ self }
    fn any_mut(&mut self) -> &mut dyn Any{ self }

    fn predict(&self, i: &[FLOAT]) -> Result<Box<[FLOAT]>>{
        len_err!(0, i.len(), BUFF_LEN / LEN);
        let buffer = [0.; BUFF_LEN];

        for filter in 0..self.filters.len(){
            
        }

        Ok(Box::new(buffer))
    }

    fn backpropagate(&mut self, i: &[FLOAT], gradient: &[FLOAT]) -> Result<Box<[FLOAT]>>{ 
        len_err!(0, i.len(), BUFF_LEN / LEN);
        len_err!(1, gradient.len(), BUFF_LEN / LEN);
        Ok(Box::new([]))
    }
}
*/
