blowtorch/
traits.rs

1use ndarray_npy::ReadableElement;
2use num_traits::{Float, FromPrimitive};
3use std::{io::Read, ops::AddAssign};
4
5/// Super trait that encompasses floats that behave like
6/// primitives. This is used for all neural network
7/// elements as basic operation type.
8pub trait FloatLikePrimitive:
9    'static + Float + AddAssign + FromPrimitive + ReadableElement
10{
11}
12
13impl<T> FloatLikePrimitive for T where
14    T: 'static + Float + AddAssign + FromPrimitive + ReadableElement
15{
16}
17
18/// General model trait neural layers
19pub trait Layer<I, O> {
20    fn forward_pass(&self, input: &I) -> O;
21}