backend/model/enum/
layer_type.rs

1//! [`LayerType`] enum.
2
3use core::fmt;
4
5use diesel_derive_enum::DbEnum;
6use serde::{Deserialize, Serialize};
7use typeshare::typeshare;
8use utoipa::ToSchema;
9
10/// Enum for all possible layer types.
11#[typeshare]
12#[derive(Serialize, Deserialize, DbEnum, Debug, ToSchema, Clone, Copy, PartialEq, Eq)]
13#[ExistingTypePath = "crate::schema::sql_types::LayerType"]
14pub enum LayerType {
15    /// Identifier for Base Layer.
16    #[serde(rename = "base")]
17    #[db_rename = "base"]
18    Base,
19    /// Identifier for Soil Layer.
20    #[serde(rename = "soiltexture")]
21    #[db_rename = "soiltexture"]
22    Soiltexture,
23    /// Identifier for Todo Layer.
24    #[serde(rename = "todo")]
25    #[db_rename = "todo"]
26    Todo,
27    /// Identifier for Label Layer.
28    #[serde(rename = "label")]
29    #[db_rename = "label"]
30    Label,
31    /// Identifier for Paths Layer.
32    #[serde(rename = "paths")]
33    #[db_rename = "paths"]
34    Paths,
35    /// Identifier for Photo Layer.
36    #[serde(rename = "photo")]
37    #[db_rename = "photo"]
38    Photo,
39    /// Identifier for Shade Layer.
40    #[serde(rename = "shade")]
41    #[db_rename = "shade"]
42    Shade,
43    /// Identifier for Trees Layer.
44    #[serde(rename = "trees")]
45    #[db_rename = "trees"]
46    Trees,
47    /// Identifier for Winds Layer.
48    #[serde(rename = "winds")]
49    #[db_rename = "winds"]
50    Winds,
51    /// Identifier for Zones Layer.
52    #[serde(rename = "zones")]
53    #[db_rename = "zones"]
54    Zones,
55    /// Identifier for Plants Layer.
56    #[serde(rename = "plants")]
57    #[db_rename = "plants"]
58    Plants,
59    /// Identifier for Drawing Layer.
60    #[serde(rename = "drawing")]
61    #[db_rename = "drawing"]
62    Drawing,
63    /// Identifier for Terrain Layer.
64    #[serde(rename = "terrain")]
65    #[db_rename = "terrain"]
66    Terrain,
67    /// Identifier for Habitats Layer.
68    #[serde(rename = "habitats")]
69    #[db_rename = "habitats"]
70    Habitats,
71    /// Identifier for Warnings Layer.
72    #[serde(rename = "warnings")]
73    #[db_rename = "warnings"]
74    Warnings,
75    /// Identifier for Watering Layer.
76    #[serde(rename = "watering")]
77    #[db_rename = "watering"]
78    Watering,
79    /// Identifier for Landscape Layer.
80    #[serde(rename = "landscape")]
81    #[db_rename = "landscape"]
82    Landscape,
83    /// Identifier for Hydrology Layer.
84    #[serde(rename = "hydrology")]
85    #[db_rename = "hydrology"]
86    Hydrology,
87    /// Identifier for Fertilization Layer.
88    #[serde(rename = "fertilization")]
89    #[db_rename = "fertilization"]
90    Fertilization,
91    /// Identifier for Infrastructure Layer.
92    #[serde(rename = "infrastructure")]
93    #[db_rename = "infrastructure"]
94    Infrastructure,
95}
96
97impl fmt::Display for LayerType {
98    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
99        match self {
100            Self::Base => write!(f, "Base"),
101            Self::Soiltexture => write!(f, "Soiltexture"),
102            Self::Todo => write!(f, "Todo"),
103            Self::Label => write!(f, "Label"),
104            Self::Paths => write!(f, "Paths"),
105            Self::Photo => write!(f, "Photo"),
106            Self::Shade => write!(f, "Shade"),
107            Self::Trees => write!(f, "Trees"),
108            Self::Winds => write!(f, "Winds"),
109            Self::Zones => write!(f, "Zones"),
110            Self::Plants => write!(f, "Plants"),
111            Self::Drawing => write!(f, "Drawing"),
112            Self::Terrain => write!(f, "Terrain"),
113            Self::Habitats => write!(f, "Habitats"),
114            Self::Warnings => write!(f, "Warnings"),
115            Self::Watering => write!(f, "Watering"),
116            Self::Landscape => write!(f, "Landscape"),
117            Self::Hydrology => write!(f, "Hydrology"),
118            Self::Fertilization => write!(f, "Fertilization"),
119            Self::Infrastructure => write!(f, "Infrastructure"),
120        }
121    }
122}