1use super::{document::NS_PSK, PredefinedName};
2use std::str::FromStr;
3use strum::EnumString;
4use xml::name::OwnedName;
5
6#[derive(EnumString, Debug, PartialEq, Eq, Hash, Clone, Copy)]
7#[allow(missing_docs)]
8pub enum PredefinedMediaName {
10 BusinessCard,
11 CreditCard,
12 ISOA0,
13 ISOA1,
14 ISOA10,
15 ISOA2,
16 ISOA3,
17 ISOA3Extra,
18 ISOA3Rotated,
19 ISOA4,
20 ISOA4Extra,
21 ISOA4Rotated,
22 ISOA5,
23 ISOA5Extra,
24 ISOA5Rotated,
25 ISOA6,
26 ISOA6Rotated,
27 ISOA7,
28 ISOA8,
29 ISOA9,
30 ISOB0,
31 ISOB1,
32 ISOB10,
33 ISOB2,
34 ISOB3,
35 ISOB4,
36 ISOB4Envelope,
37 ISOB5Envelope,
38 ISOB5Extra,
39 ISOB7,
40 ISOB8,
41 ISOB9,
42 ISOC0,
43 ISOC1,
44 ISOC10,
45 ISOC2,
46 ISOC3,
47 ISOC3Envelope,
48 ISOC4,
49 ISOC4Envelope,
50 ISOC5,
51 ISOC5Envelope,
52 ISOC6,
53 ISOC6C5Envelope,
54 ISOC6Envelope,
55 ISOC7,
56 ISOC8,
57 ISOC9,
58 ISODLEnvelope,
59 ISODLEnvelopeRotated,
60 ISOSRA3,
61 JISB0,
62 JISB1,
63 JISB10,
64 JISB2,
65 JISB3,
66 JISB4,
67 JISB4Rotated,
68 JISB5,
69 JISB5Rotated,
70 JISB6,
71 JISB6Rotated,
72 JISB7,
73 JISB8,
74 JISB9,
75 Japan2LPhoto,
76 JapanChou3Envelope,
77 JapanChou3EnvelopeRotated,
78 JapanChou4Envelope,
79 JapanChou4EnvelopeRotated,
80 JapanDoubleHagakiPostcard,
81 JapanDoubleHagakiPostcardRotated,
82 JapanHagakiPostcard,
83 JapanHagakiPostcardRotated,
84 JapanKaku2Envelope,
85 JapanKaku2EnvelopeRotated,
86 JapanKaku3Envelope,
87 JapanKaku3EnvelopeRotated,
88 JapanLPhoto,
89 JapanQuadrupleHagakiPostcard,
90 JapanYou1Envelope,
91 JapanYou2Envelope,
92 JapanYou3Envelope,
93 JapanYou4Envelope,
94 JapanYou4EnvelopeRotated,
95 JapanYou6Envelope,
96 JapanYou6EnvelopeRotated,
97 NorthAmerica10x11,
98 NorthAmerica10x12,
99 NorthAmerica10x14,
100 NorthAmerica11x17,
101 NorthAmerica14x17,
102 NorthAmerica4x6,
103 NorthAmerica4x8,
104 NorthAmerica5x7,
105 NorthAmerica8x10,
106 NorthAmerica9x11,
107 NorthAmericaArchitectureASheet,
108 NorthAmericaArchitectureBSheet,
109 NorthAmericaArchitectureCSheet,
110 NorthAmericaArchitectureDSheet,
111 NorthAmericaArchitectureESheet,
112 NorthAmericaCSheet,
113 NorthAmericaDSheet,
114 NorthAmericaESheet,
115 NorthAmericaExecutive,
116 NorthAmericaGermanLegalFanfold,
117 NorthAmericaGermanStandardFanfold,
118 NorthAmericaLegal,
119 NorthAmericaLegalExtra,
120 NorthAmericaLetter,
121 NorthAmericaLetterExtra,
122 NorthAmericaLetterPlus,
123 NorthAmericaLetterRotated,
124 NorthAmericaMonarchEnvelope,
125 NorthAmericaNote,
126 NorthAmericaNumber10Envelope,
127 NorthAmericaNumber10EnvelopeRotated,
128 NorthAmericaNumber11Envelope,
129 NorthAmericaNumber12Envelope,
130 NorthAmericaNumber14Envelope,
131 NorthAmericaNumber9Envelope,
132 NorthAmericaPersonalEnvelope,
133 NorthAmericaQuarto,
134 NorthAmericaStatement,
135 NorthAmericaSuperA,
136 NorthAmericaSuperB,
137 NorthAmericaTabloid,
138 NorthAmericaTabloidExtra,
139 OtherMetricA3Plus,
140 OtherMetricA4Plus,
141 OtherMetricFolio,
142 OtherMetricInviteEnvelope,
143 OtherMetricItalianEnvelope,
144 PRC10Envelope,
145 PRC10EnvelopeRotated,
146 PRC16K,
147 PRC16KRotated,
148 PRC1Envelope,
149 PRC1EnvelopeRotated,
150 PRC2Envelope,
151 PRC2EnvelopeRotated,
152 PRC32K,
153 PRC32KBig,
154 PRC32KRotated,
155 PRC3Envelope,
156 PRC3EnvelopeRotated,
157 PRC4Envelope,
158 PRC4EnvelopeRotated,
159 PRC5Envelope,
160 PRC5EnvelopeRotated,
161 PRC6Envelope,
162 PRC6EnvelopeRotated,
163 PRC7Envelope,
164 PRC7EnvelopeRotated,
165 PRC8Envelope,
166 PRC8EnvelopeRotated,
167 PRC9Envelope,
168 PRC9EnvelopeRotated,
169 Roll04Inch,
170 Roll06Inch,
171 Roll08Inch,
172 Roll12Inch,
173 Roll15Inch,
174 Roll18Inch,
175 Roll22Inch,
176 Roll24Inch,
177 Roll30Inch,
178 Roll36Inch,
179 Roll54Inch,
180}
181
182impl PredefinedName for PredefinedMediaName {
183 fn from_name(name: &OwnedName) -> Option<Self> {
185 if name.namespace_ref() == Some(NS_PSK) {
186 Self::from_str(name.local_name.as_str()).ok()
187 } else {
188 None
189 }
190 }
191}