ic/iris/classified/
flat.rs

1use derive_more::Constructor;
2
3use crate::{iris::unclassified::FlatUnclassifiedIris, ClassifiedIris};
4
5#[derive(serde::Deserialize, Constructor, Clone, Copy, Debug, PartialEq, tabled::Tabled)]
6pub struct FlatClassifiedIris {
7    pub sepal_length: f32,
8    pub sepal_width: f32,
9    pub petal_length: f32,
10    pub petal_width: f32,
11    pub classification: crate::IrisSpecies,
12}
13
14// CRUD-C: Conversions
15impl From<ClassifiedIris> for FlatClassifiedIris {
16    fn from(deep: ClassifiedIris) -> Self {
17        let ClassifiedIris {
18            parameters,
19            classification,
20        } = deep;
21        let FlatUnclassifiedIris {
22            sepal_length,
23            sepal_width,
24            petal_length,
25            petal_width,
26        } = parameters.into();
27        Self {
28            sepal_length,
29            sepal_width,
30            petal_length,
31            petal_width,
32            classification,
33        }
34    }
35}