1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use crate::{Iris, UnclassifiedIris};

pub trait IrisParams {
    // Required
    fn iris_params(&self) -> &UnclassifiedIris;
}

impl<IP> Iris for IP
where
    IP: IrisParams,
{
    fn sepal_length(&self) -> f32 {
        self.iris_params().sepal_length()
    }

    fn sepal_width(&self) -> f32 {
        self.iris_params().sepal_width()
    }

    fn petal_length(&self) -> f32 {
        self.iris_params().petal_length()
    }

    fn petal_width(&self) -> f32 {
        self.iris_params().petal_width()
    }
}