pub trait UnsupervisedLearn<T, U>
{
fn train<'a>(self: &mut Self, input: &'a T);
fn predict<'a>(self: &Self, input: &'a T) -> U;
}
pub trait SupervisedLearn<T, U>
{
fn predict<'a, 'b>(self: &'a Self, input: &'b T) -> U;
fn train<'a, 'b>(self: &'a mut Self, input: &'b T, target: &'b U); }