onenote_parser/one/property/
note_tag_shape.rs

1/// The shape of a note tag icon.
2///
3/// See [\[MS-ONE\] 2.3.86].
4///
5/// [\[MS-ONE\] 2.3.86]: https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-one/aa5c7aba-d5e4-4bf8-b265-9100eeb9a7a7
6#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
7#[allow(missing_docs)]
8pub enum NoteTagShape {
9    NoIcon,
10    GreenCheckBox,
11    YellowCheckBox,
12    BlueCheckBox,
13    GreenStarCheckBox,
14    YellowStarCheckBox,
15    BlueStarCheckBox,
16    GreenExclamationCheckBox,
17    YellowExclamationCheckBox,
18    BlueExclamationCheckBox,
19    GreenRightArrowCheckBox,
20    YellowRightArrowCheckBox,
21    BlueRightArrowCheckBox,
22    YellowStar,
23    BlueFollowUpFlag,
24    QuestionMark,
25    BlueRightArrow,
26    HighPriority,
27    ContactInformation,
28    Meeting,
29    TimeSensitive,
30    LightBulb,
31    Pushpin,
32    Home,
33    CommentBubble,
34    SmilingFace,
35    AwardRibbon,
36    YellowKey,
37    BlueCheckBox1,
38    BlueCircle1,
39    BlueCheckBox2,
40    BlueCircle2,
41    BlueCheckBox3,
42    BlueCircle3,
43    BlueEightPointStar,
44    BlueCheckMark,
45    BlueCircle,
46    BlueDownArrow,
47    BlueLeftArrow,
48    BlueSolidTarget,
49    BlueStar,
50    BlueSun,
51    BlueTarget,
52    BlueTriangle,
53    BlueUmbrella,
54    BlueUpArrow,
55    BlueXWithDots,
56    BlueX,
57    GreenCheckBox1,
58    GreenCircle1,
59    GreenCheckBox2,
60    GreenCircle2,
61    GreenCheckBox3,
62    GreenCircle3,
63    GreenEightPointStar,
64    GreenCheckMark,
65    GreenCircle,
66    GreenDownArrow,
67    GreenLeftArrow,
68    GreenRightArrow,
69    GreenSolidArrow,
70    GreenStar,
71    GreenSun,
72    GreenTarget,
73    GreenTriangle,
74    GreenUmbrella,
75    GreenUpArrow,
76    GreenXWithDots,
77    GreenX,
78    YellowCheckBox1,
79    YellowCircle1,
80    YellowCheckBox2,
81    YellowCircle2,
82    YellowCheckBox3,
83    YellowCircle3,
84    YellowEightPointStar,
85    YellowCheckMark,
86    YellowCircle,
87    YellowDownArrow,
88    YellowLeftArrow,
89    YellowRightArrow,
90    YellowSolidTarget,
91    YellowSun,
92    YellowTarget,
93    YellowTriangle,
94    YellowUmbrella,
95    YellowUpArrow,
96    YellowXWithDots,
97    YellowX,
98    FollowUpTodayFlag,
99    FollowUpTomorrowFlag,
100    FollowUpThisWeekFlag,
101    FollowUpNextWeekFlag,
102    NoFollowUpDateFlag,
103    BluePersonCheckBox,
104    YellowPersonCheckBox,
105    GreenPersonCheckBox,
106    BlueFlagCheckBox,
107    RedFlagCheckBox,
108    GreenFlagCheckBox,
109    RedSquare,
110    YellowSquare,
111    BlueSquare,
112    GreenSquare,
113    OrangeSquare,
114    PinkSquare,
115    EMailMessage,
116    ClosedEnvelope,
117    OpenEnvelope,
118    MobilePhone,
119    TelephoneWithClock,
120    QuestionBalloon,
121    PaperClip,
122    FrowningFace,
123    InstantMessagingContactPerson,
124    PersonWithExclamationMark,
125    TwoPeople,
126    ReminderBell,
127    Contact,
128    RoseOnAStem,
129    CalendarDateWithClock,
130    MusicalNote,
131    MovieClip,
132    QuotationMark,
133    Globe,
134    HyperlinkGlobe,
135    Laptop,
136    Plane,
137    Car,
138    Binoculars,
139    PresentationSlide,
140    Padlock,
141    OpenBook,
142    NotebookWithClock,
143    BlankPaperWithLines,
144    Research,
145    Pen,
146    DollarSign,
147    CoinsWithAWindowBackdrop,
148    ScheduledTask,
149    LightningBolt,
150    Cloud,
151    Heart,
152    Sunflower,
153}
154
155impl NoteTagShape {
156    pub(crate) fn parse(value: u16) -> NoteTagShape {
157        match value {
158            0 => NoteTagShape::NoIcon,
159            1 => NoteTagShape::GreenCheckBox,
160            2 => NoteTagShape::YellowCheckBox,
161            3 => NoteTagShape::BlueCheckBox,
162            4 => NoteTagShape::GreenStarCheckBox,
163            5 => NoteTagShape::YellowStarCheckBox,
164            6 => NoteTagShape::BlueStarCheckBox,
165            7 => NoteTagShape::GreenExclamationCheckBox,
166            8 => NoteTagShape::YellowExclamationCheckBox,
167            9 => NoteTagShape::BlueExclamationCheckBox,
168            10 => NoteTagShape::GreenRightArrowCheckBox,
169            11 => NoteTagShape::YellowRightArrowCheckBox,
170            12 => NoteTagShape::BlueRightArrowCheckBox,
171            13 => NoteTagShape::YellowStar,
172            14 => NoteTagShape::BlueFollowUpFlag,
173            15 => NoteTagShape::QuestionMark,
174            16 => NoteTagShape::BlueRightArrow,
175            17 => NoteTagShape::HighPriority,
176            18 => NoteTagShape::ContactInformation,
177            19 => NoteTagShape::Meeting,
178            20 => NoteTagShape::TimeSensitive,
179            21 => NoteTagShape::LightBulb,
180            22 => NoteTagShape::Pushpin,
181            23 => NoteTagShape::Home,
182            24 => NoteTagShape::CommentBubble,
183            25 => NoteTagShape::SmilingFace,
184            26 => NoteTagShape::AwardRibbon,
185            27 => NoteTagShape::YellowKey,
186            28 => NoteTagShape::BlueCheckBox1,
187            29 => NoteTagShape::BlueCircle1,
188            30 => NoteTagShape::BlueCheckBox2,
189            31 => NoteTagShape::BlueCircle2,
190            32 => NoteTagShape::BlueCheckBox3,
191            33 => NoteTagShape::BlueCircle3,
192            34 => NoteTagShape::BlueEightPointStar,
193            35 => NoteTagShape::BlueCheckMark,
194            36 => NoteTagShape::BlueCircle,
195            37 => NoteTagShape::BlueDownArrow,
196            38 => NoteTagShape::BlueLeftArrow,
197            39 => NoteTagShape::BlueSolidTarget,
198            40 => NoteTagShape::BlueStar,
199            41 => NoteTagShape::BlueSun,
200            42 => NoteTagShape::BlueTarget,
201            43 => NoteTagShape::BlueTriangle,
202            44 => NoteTagShape::BlueUmbrella,
203            45 => NoteTagShape::BlueUpArrow,
204            46 => NoteTagShape::BlueXWithDots,
205            47 => NoteTagShape::BlueX,
206            48 => NoteTagShape::GreenCheckBox1,
207            49 => NoteTagShape::GreenCircle1,
208            50 => NoteTagShape::GreenCheckBox2,
209            51 => NoteTagShape::GreenCircle2,
210            52 => NoteTagShape::GreenCheckBox3,
211            53 => NoteTagShape::GreenCircle3,
212            54 => NoteTagShape::GreenEightPointStar,
213            55 => NoteTagShape::GreenCheckMark,
214            56 => NoteTagShape::GreenCircle,
215            57 => NoteTagShape::GreenDownArrow,
216            58 => NoteTagShape::GreenLeftArrow,
217            59 => NoteTagShape::GreenRightArrow,
218            60 => NoteTagShape::GreenSolidArrow,
219            61 => NoteTagShape::GreenStar,
220            62 => NoteTagShape::GreenSun,
221            63 => NoteTagShape::GreenTarget,
222            64 => NoteTagShape::GreenTriangle,
223            65 => NoteTagShape::GreenUmbrella,
224            66 => NoteTagShape::GreenUpArrow,
225            67 => NoteTagShape::GreenXWithDots,
226            68 => NoteTagShape::GreenX,
227            69 => NoteTagShape::YellowCheckBox1,
228            70 => NoteTagShape::YellowCircle1,
229            71 => NoteTagShape::YellowCheckBox2,
230            72 => NoteTagShape::YellowCircle2,
231            73 => NoteTagShape::YellowCheckBox3,
232            74 => NoteTagShape::YellowCircle3,
233            75 => NoteTagShape::YellowEightPointStar,
234            76 => NoteTagShape::YellowCheckMark,
235            77 => NoteTagShape::YellowCircle,
236            78 => NoteTagShape::YellowDownArrow,
237            79 => NoteTagShape::YellowLeftArrow,
238            80 => NoteTagShape::YellowRightArrow,
239            81 => NoteTagShape::YellowSolidTarget,
240            82 => NoteTagShape::YellowSun,
241            83 => NoteTagShape::YellowTarget,
242            84 => NoteTagShape::YellowTriangle,
243            85 => NoteTagShape::YellowUmbrella,
244            86 => NoteTagShape::YellowUpArrow,
245            87 => NoteTagShape::YellowXWithDots,
246            88 => NoteTagShape::YellowX,
247            89 => NoteTagShape::FollowUpTodayFlag,
248            90 => NoteTagShape::FollowUpTomorrowFlag,
249            91 => NoteTagShape::FollowUpThisWeekFlag,
250            92 => NoteTagShape::FollowUpNextWeekFlag,
251            93 => NoteTagShape::NoFollowUpDateFlag,
252            94 => NoteTagShape::BluePersonCheckBox,
253            95 => NoteTagShape::YellowPersonCheckBox,
254            96 => NoteTagShape::GreenPersonCheckBox,
255            97 => NoteTagShape::BlueFlagCheckBox,
256            98 => NoteTagShape::RedFlagCheckBox,
257            99 => NoteTagShape::GreenFlagCheckBox,
258            100 => NoteTagShape::RedSquare,
259            101 => NoteTagShape::YellowSquare,
260            102 => NoteTagShape::BlueSquare,
261            103 => NoteTagShape::GreenSquare,
262            104 => NoteTagShape::OrangeSquare,
263            105 => NoteTagShape::PinkSquare,
264            106 => NoteTagShape::EMailMessage,
265            107 => NoteTagShape::ClosedEnvelope,
266            108 => NoteTagShape::OpenEnvelope,
267            109 => NoteTagShape::MobilePhone,
268            110 => NoteTagShape::TelephoneWithClock,
269            111 => NoteTagShape::QuestionBalloon,
270            112 => NoteTagShape::PaperClip,
271            113 => NoteTagShape::FrowningFace,
272            114 => NoteTagShape::InstantMessagingContactPerson,
273            115 => NoteTagShape::PersonWithExclamationMark,
274            116 => NoteTagShape::TwoPeople,
275            117 => NoteTagShape::ReminderBell,
276            118 => NoteTagShape::Contact,
277            119 => NoteTagShape::RoseOnAStem,
278            120 => NoteTagShape::CalendarDateWithClock,
279            121 => NoteTagShape::MusicalNote,
280            122 => NoteTagShape::MovieClip,
281            123 => NoteTagShape::QuotationMark,
282            124 => NoteTagShape::Globe,
283            125 => NoteTagShape::HyperlinkGlobe,
284            126 => NoteTagShape::Laptop,
285            127 => NoteTagShape::Plane,
286            128 => NoteTagShape::Car,
287            129 => NoteTagShape::Binoculars,
288            130 => NoteTagShape::PresentationSlide,
289            131 => NoteTagShape::Padlock,
290            132 => NoteTagShape::OpenBook,
291            133 => NoteTagShape::NotebookWithClock,
292            134 => NoteTagShape::BlankPaperWithLines,
293            135 => NoteTagShape::Research,
294            136 => NoteTagShape::Pen,
295            137 => NoteTagShape::DollarSign,
296            138 => NoteTagShape::CoinsWithAWindowBackdrop,
297            139 => NoteTagShape::ScheduledTask,
298            140 => NoteTagShape::LightningBolt,
299            141 => NoteTagShape::Cloud,
300            142 => NoteTagShape::Heart,
301            143 => NoteTagShape::Sunflower,
302            _ => panic!("invalid note tag shape: {}", value),
303        }
304    }
305
306    /// Whether the note tag icon is checkable.
307    pub fn is_checkable(&self) -> bool {
308        matches!(
309            self,
310            NoteTagShape::GreenCheckBox
311                | NoteTagShape::YellowCheckBox
312                | NoteTagShape::BlueCheckBox
313                | NoteTagShape::GreenStarCheckBox
314                | NoteTagShape::YellowStarCheckBox
315                | NoteTagShape::BlueStarCheckBox
316                | NoteTagShape::GreenExclamationCheckBox
317                | NoteTagShape::YellowExclamationCheckBox
318                | NoteTagShape::BlueExclamationCheckBox
319                | NoteTagShape::GreenRightArrowCheckBox
320                | NoteTagShape::YellowRightArrowCheckBox
321                | NoteTagShape::BlueRightArrowCheckBox
322                | NoteTagShape::BlueCheckBox1
323                | NoteTagShape::BlueCheckBox2
324                | NoteTagShape::BlueCheckBox3
325                | NoteTagShape::GreenCheckBox1
326                | NoteTagShape::GreenCheckBox2
327                | NoteTagShape::GreenCheckBox3
328                | NoteTagShape::YellowCheckBox1
329                | NoteTagShape::YellowCheckBox2
330                | NoteTagShape::YellowCheckBox3
331                | NoteTagShape::FollowUpTodayFlag
332                | NoteTagShape::FollowUpTomorrowFlag
333                | NoteTagShape::FollowUpThisWeekFlag
334                | NoteTagShape::FollowUpNextWeekFlag
335                | NoteTagShape::NoFollowUpDateFlag
336                | NoteTagShape::BluePersonCheckBox
337                | NoteTagShape::YellowPersonCheckBox
338                | NoteTagShape::GreenPersonCheckBox
339                | NoteTagShape::BlueFlagCheckBox
340                | NoteTagShape::RedFlagCheckBox
341                | NoteTagShape::GreenFlagCheckBox
342        )
343    }
344}