use std::fmt::Display;
mod network;
pub use self::network::*;
mod node;
pub use self::node::*;
mod state;
pub use self::state::*;
pub trait Input: Send + Sync {
fn weights(&self) -> &[f64];
}
pub trait Storage: Display + Send + Sync {
type Item: Input;
fn add(&mut self, input: Self::Item);
fn drain(&mut self) -> Vec<Self::Item>;
fn distance(&self, a: &[f64], b: &[f64]) -> f64;
}