Cryptonic 0.1.1

This project includes a tensor library, utilities for FHE functionality and most importantly an FHE based ML library
Documentation
use std::marker::PhantomData;
use crate::neural_network::layer_trait::Layer;
use crate::tensor_library::matrix::Matrix;

pub struct DenseLayer<T> {
    input_shape : Vec<usize>,
    output_shape : Vec<usize>,
    _phantom : PhantomData<T>
}

impl<T> Layer for DenseLayer<T> {
    type CType = T;

    fn forward(&mut self, input: Matrix<Self::CType>) -> Matrix<Self::CType> where <Self as Layer>::CType: Clone + Default {
        input
    }

    fn get_input_shape(&self) -> &Vec<usize> {
        &self.input_shape
    }

    fn get_output_shape(&self) -> &Vec<usize> {
        &self.output_shape
    }
}

impl<T> DenseLayer<T> {
    pub fn new(input_shape : Option<Vec<usize>>, output_shape : Option<Vec<usize>>) -> DenseLayer<T> {
        DenseLayer {
            input_shape : match input_shape {
                Some(shape) => shape,
                None => Vec::new()
            },
            output_shape : match output_shape {
                Some(shape) => shape,
                None => Vec::new()
            },
            _phantom : PhantomData::default(),
        }
    }
}