1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
17pub enum ShapeType {
18 #[serde(rename = "SQUARE")]
19 Square,
20 #[serde(rename = "ELLIPSE")]
21 Ellipse,
22 #[serde(rename = "ROUNDED_RECTANGLE")]
23 RoundedRectangle,
24 #[serde(rename = "DIAMOND")]
25 Diamond,
26 #[serde(rename = "TRIANGLE_UP")]
27 TriangleUp,
28 #[serde(rename = "TRIANGLE_DOWN")]
29 TriangleDown,
30 #[serde(rename = "PARALLELOGRAM_RIGHT")]
31 ParallelogramRight,
32 #[serde(rename = "PARALLELOGRAM_LEFT")]
33 ParallelogramLeft,
34 #[serde(rename = "ENG_DATABASE")]
35 EngDatabase,
36 #[serde(rename = "ENG_QUEUE")]
37 EngQueue,
38 #[serde(rename = "ENG_FILE")]
39 EngFile,
40 #[serde(rename = "ENG_FOLDER")]
41 EngFolder,
42 #[serde(rename = "TRAPEZOID")]
43 Trapezoid,
44 #[serde(rename = "PREDEFINED_PROCESS")]
45 PredefinedProcess,
46 #[serde(rename = "SHIELD")]
47 Shield,
48 #[serde(rename = "DOCUMENT_SINGLE")]
49 DocumentSingle,
50 #[serde(rename = "DOCUMENT_MULTIPLE")]
51 DocumentMultiple,
52 #[serde(rename = "MANUAL_INPUT")]
53 ManualInput,
54 #[serde(rename = "HEXAGON")]
55 Hexagon,
56 #[serde(rename = "CHEVRON")]
57 Chevron,
58 #[serde(rename = "PENTAGON")]
59 Pentagon,
60 #[serde(rename = "OCTAGON")]
61 Octagon,
62 #[serde(rename = "STAR")]
63 Star,
64 #[serde(rename = "PLUS")]
65 Plus,
66 #[serde(rename = "ARROW_LEFT")]
67 ArrowLeft,
68 #[serde(rename = "ARROW_RIGHT")]
69 ArrowRight,
70 #[serde(rename = "SUMMING_JUNCTION")]
71 SummingJunction,
72 #[serde(rename = "OR")]
73 Or,
74 #[serde(rename = "SPEECH_BUBBLE")]
75 SpeechBubble,
76 #[serde(rename = "INTERNAL_STORAGE")]
77 InternalStorage,
78
79}
80
81impl std::fmt::Display for ShapeType {
82 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
83 match self {
84 Self::Square => write!(f, "SQUARE"),
85 Self::Ellipse => write!(f, "ELLIPSE"),
86 Self::RoundedRectangle => write!(f, "ROUNDED_RECTANGLE"),
87 Self::Diamond => write!(f, "DIAMOND"),
88 Self::TriangleUp => write!(f, "TRIANGLE_UP"),
89 Self::TriangleDown => write!(f, "TRIANGLE_DOWN"),
90 Self::ParallelogramRight => write!(f, "PARALLELOGRAM_RIGHT"),
91 Self::ParallelogramLeft => write!(f, "PARALLELOGRAM_LEFT"),
92 Self::EngDatabase => write!(f, "ENG_DATABASE"),
93 Self::EngQueue => write!(f, "ENG_QUEUE"),
94 Self::EngFile => write!(f, "ENG_FILE"),
95 Self::EngFolder => write!(f, "ENG_FOLDER"),
96 Self::Trapezoid => write!(f, "TRAPEZOID"),
97 Self::PredefinedProcess => write!(f, "PREDEFINED_PROCESS"),
98 Self::Shield => write!(f, "SHIELD"),
99 Self::DocumentSingle => write!(f, "DOCUMENT_SINGLE"),
100 Self::DocumentMultiple => write!(f, "DOCUMENT_MULTIPLE"),
101 Self::ManualInput => write!(f, "MANUAL_INPUT"),
102 Self::Hexagon => write!(f, "HEXAGON"),
103 Self::Chevron => write!(f, "CHEVRON"),
104 Self::Pentagon => write!(f, "PENTAGON"),
105 Self::Octagon => write!(f, "OCTAGON"),
106 Self::Star => write!(f, "STAR"),
107 Self::Plus => write!(f, "PLUS"),
108 Self::ArrowLeft => write!(f, "ARROW_LEFT"),
109 Self::ArrowRight => write!(f, "ARROW_RIGHT"),
110 Self::SummingJunction => write!(f, "SUMMING_JUNCTION"),
111 Self::Or => write!(f, "OR"),
112 Self::SpeechBubble => write!(f, "SPEECH_BUBBLE"),
113 Self::InternalStorage => write!(f, "INTERNAL_STORAGE"),
114 }
115 }
116}
117
118impl Default for ShapeType {
119 fn default() -> ShapeType {
120 Self::Square
121 }
122}
123