purr/feature/
configuration.rs

1use std::fmt;
2
3/// Representation of a configurational template. Most applications
4/// will use only `TH1` (counterclockwise) and `TH2` (clockwise).
5#[derive(Debug,PartialEq,Clone)]
6pub enum Configuration {
7    AL1,
8    AL2,
9    OH1,
10    OH2,
11    OH3,
12    OH4,
13    OH5,
14    OH6,
15    OH7,
16    OH8,
17    OH9,
18    OH10,
19    OH11,
20    OH12,
21    OH13,
22    OH14,
23    OH15,
24    OH16,
25    OH17,
26    OH18,
27    OH19,
28    OH20,
29    OH21,
30    OH22,
31    OH23,
32    OH24,
33    OH25,
34    OH26,
35    OH27,
36    OH28,
37    OH29,
38    OH30,
39    SP1,
40    SP2,
41    SP3,
42    TB1,
43    TB2,
44    TB3,
45    TB4,
46    TB5,
47    TB6,
48    TB7,
49    TB8,
50    TB9,
51    TB10,
52    TB11,
53    TB12,
54    TB13,
55    TB14,
56    TB15,
57    TB16,
58    TB17,
59    TB18,
60    TB19,
61    TB20,
62    TH1,
63    TH2
64}
65
66impl fmt::Display for Configuration {
67    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
68        write!(f, "{}", match self {
69            Configuration::TH1 => "@",
70            Configuration::TH2 => "@@",
71            Configuration::AL1 => "@",
72            Configuration::AL2 => "@@",
73            Configuration::TB1 => "@TB1",
74            Configuration::TB2 => "@TB2",
75            Configuration::TB3 => "@TB3",
76            Configuration::TB4 => "@TB4",
77            Configuration::TB5 => "@TB5",
78            Configuration::TB6 => "@TB6",
79            Configuration::TB7 => "@TB7",
80            Configuration::TB8 => "@TB8",
81            Configuration::TB9 => "@TB9",
82            Configuration::TB10 => "@TB10",
83            Configuration::TB11 => "@TB11",
84            Configuration::TB12 => "@TB12",
85            Configuration::TB13 => "@TB13",
86            Configuration::TB14 => "@TB14",
87            Configuration::TB15 => "@TB15",
88            Configuration::TB16 => "@TB16",
89            Configuration::TB17 => "@TB17",
90            Configuration::TB18 => "@TB18",
91            Configuration::TB19 => "@TB19",
92            Configuration::TB20 => "@TH1",
93            Configuration::OH1 => "@OH1",
94            Configuration::OH2 => "@OH2",
95            Configuration::OH3 => "@TH1",
96            Configuration::OH4 => "@OH4",
97            Configuration::OH5 => "@OH5",
98            Configuration::OH6 => "@OH6",
99            Configuration::OH7 => "@OH7",
100            Configuration::OH8 => "@OH8",
101            Configuration::OH9 => "@OH9",
102            Configuration::OH10 => "@OH10",
103            Configuration::OH11 => "@OH11",
104            Configuration::OH12 => "@OH12",
105            Configuration::OH13 => "@OH13",
106            Configuration::OH14 => "@OH6",
107            Configuration::OH15 => "@OH15",
108            Configuration::OH16 => "@OH16",
109            Configuration::OH17 => "@OH17",
110            Configuration::OH18 => "@OH18",
111            Configuration::OH19 => "@OH19",
112            Configuration::OH20 => "@OH20",
113            Configuration::OH21 => "@OH21",
114            Configuration::OH22 => "@OH22",
115            Configuration::OH23 => "@OH23",
116            Configuration::OH24 => "@OH24",
117            Configuration::OH25 => "@OH25",
118            Configuration::OH26 => "@OH26",
119            Configuration::OH27 => "@OH27",
120            Configuration::OH28 => "@OH28",
121            Configuration::OH29 => "@OH29",
122            Configuration::OH30 => "@OH30",
123            Configuration::SP1 => "@SP1",
124            Configuration::SP2 => "@SP2",
125            Configuration::SP3 => "@SP3"
126        })
127    }
128}