escpos_db/
gen.rs

1// GENERATED
2// run `cargo run -p codegen` instead
3
4use crate::*;
5
6#[derive(Debug, Copy, Clone)]
7#[non_exhaustive]
8#[allow(non_camel_case_types)]
9/// A code page supported by ESC/POS printers.
10pub enum Encoding {
11    #[doc = "Unimplemented Star-specific CP1001"] CP1001,
12    #[doc = "CP1098"] CP1098,
13    #[doc = "CP1125"] CP1125,
14    #[doc = "CP1250"] CP1250,
15    #[doc = "CP1251"] CP1251,
16    #[doc = "CP1252"] CP1252,
17    #[doc = "CP1253"] CP1253,
18    #[doc = "CP1254"] CP1254,
19    #[doc = "CP1255"] CP1255,
20    #[doc = "CP1256"] CP1256,
21    #[doc = "CP1257"] CP1257,
22    #[doc = "CP1258"] CP1258,
23    #[doc = "Unimplemented Star-specific CP2001"] CP2001,
24    #[doc = "Unimplemented Star-specific CP3001"] CP3001,
25    #[doc = "Unimplemented Star-specific CP3002"] CP3002,
26    #[doc = "CP3011 Latvian"] CP3011,
27    #[doc = "CP3012 Cyrillic"] CP3012,
28    #[doc = "Unimplemented Star-specific CP3021"] CP3021,
29    #[doc = "Unimplemented Star-specific CP3041"] CP3041,
30    #[doc = "Unimplemented Star-specific CP3840"] CP3840,
31    #[doc = "Unimplemented Star-specific CP3841"] CP3841,
32    #[doc = "Unimplemented Star-specific CP3843"] CP3843,
33    #[doc = "Unimplemented Star-specific CP3844"] CP3844,
34    #[doc = "Unimplemented Star-specific CP3845"] CP3845,
35    #[doc = "Unimplemented Star-specific CP3846"] CP3846,
36    #[doc = "Unimplemented Star-specific CP3847"] CP3847,
37    #[doc = "Unimplemented Star-specific CP3848"] CP3848,
38    #[doc = "CP437"] CP437,
39    #[doc = "CP720"] CP720,
40    #[doc = "CP737"] CP737,
41    #[doc = "CP747"] CP747,
42    #[doc = "CP772"] CP772,
43    #[doc = "CP774"] CP774,
44    #[doc = "CP775"] CP775,
45    #[doc = "CP850"] CP850,
46    #[doc = "Greek CP851\n\nNot used, due to inconsistencies between implementations."] CP851,
47    #[doc = "CP852"] CP852,
48    #[doc = "CP853"] CP853,
49    #[doc = "CP855"] CP855,
50    #[doc = "CP856"] CP856,
51    #[doc = "CP857"] CP857,
52    #[doc = "CP858"] CP858,
53    #[doc = "CP860"] CP860,
54    #[doc = "CP861"] CP861,
55    #[doc = "CP862"] CP862,
56    #[doc = "CP863"] CP863,
57    #[doc = "CP864"] CP864,
58    #[doc = "CP865"] CP865,
59    #[doc = "CP866"] CP866,
60    #[doc = "CP869"] CP869,
61    #[doc = "CP874"] CP874,
62    #[doc = "CP928"] CP928,
63    #[doc = "CP932"] CP932,
64    #[doc = "ISO_8859-1"] ISO_8859_1,
65    #[doc = "ISO_8859-15"] ISO_8859_15,
66    #[doc = "ISO_8859-2"] ISO_8859_2,
67    #[doc = "ISO_8859-3"] ISO_8859_3,
68    #[doc = "ISO_8859-4"] ISO_8859_4,
69    #[doc = "ISO_8859-5"] ISO_8859_5,
70    #[doc = "ISO_8859-6"] ISO_8859_6,
71    #[doc = "ISO_8859-7"] ISO_8859_7,
72    #[doc = "ISO_8859-8"] ISO_8859_8,
73    #[doc = "ISO_8859-9"] ISO_8859_9,
74    #[doc = "Katakana (codepage 1)"] KATAKANA,
75    #[doc = "Oxhoo-specific European"] OXHOO_EUROPEAN,
76    #[doc = "RK1048"] RK1048,
77    #[doc = "Vietnamese TCVN-3 1"] TCVN_3_1,
78    #[doc = "Vietnamese TCVN-3 1"] TCVN_3_2,
79    #[doc = "Unknown\n\nCode page that has not yet been identified."] UNKNOWN,
80}
81
82pub(crate) fn encoding_data(enc: Encoding) -> Option<&'static [char; 128]> {
83    match enc {
84        Encoding::CP3011 => Some(&['Ç', 'ü', 'é', 'â', 'ä', 'à', 'å', 'ç', 'ê', 'ë', 'è', 'ï', 'î', 'ì', 'Ä', 'Å', 'É', 'æ', 'Æ', 'ô', 'ö', 'ò', 'û', 'ù', 'ÿ', 'Ö', 'Ü', '¢', '£', '¥', '₧', 'ƒ', 'á', 'í', 'ó', 'ú', 'ñ', 'Ñ', 'ª', 'º', '¿', '⌐', '¬', '½', '¼', '¡', '«', '»', '░', '▒', '▓', '│', '┤', 'Ā', '╢', 'ņ', '╕', '╣', '║', '╗', '╝', '╜', '╛', '┐', '└', '┴', '┬', '├', '─', '┼', 'ā', '╟', '╚', '╔', '╩', '╦', '╠', '═', '╬', '╧', 'Š', '╤', 'č', 'Č', '╘', '╒', 'ģ', 'Ī', 'ī', '┘', '┌', '█', '▄', 'ū', 'Ū', '▀', 'α', 'ß', 'Γ', 'π', 'Σ', 'σ', 'µ', 'τ', 'Φ', 'Θ', 'Ω', 'δ', '∞', 'φ', 'ε', '∩', 'Ē', 'ē', 'Ģ', 'ķ', 'Ķ', 'ļ', 'Ļ', 'ž', 'Ž', '∙', '·', '√', 'Ņ', 'š', '■', ' ']),
85        Encoding::CP3012 => Some(&['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', '░', '▒', '▓', '│', '┤', 'Ā', '╢', 'ņ', '╕', '╣', '║', '╗', '╝', 'Ō', '╛', '┐', '└', '┴', '┬', '├', '─', '┼', 'ā', '╟', '╚', '╔', '╩', '╦', '╠', '═', '╬', '╧', 'Š', '╤', 'č', 'Č', '╘', '╒', 'ģ', 'Ī', 'ī', '┘', '┌', '█', '▄', 'ū', 'Ū', '▀', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', 'Ē', 'ē', 'Ģ', 'ķ', 'Ķ', 'ļ', 'Ļ', 'ž', 'Ž', '∙', '·', '√', 'Ņ', 'š', '■', ' ']),
86        Encoding::KATAKANA => Some(&['▁', '▂', '▃', '▄', '▅', '▆', '▇', '█', '▏', '▎', '▍', '▌', '▋', '▊', '▉', '┼', '┴', '┬', '┤', '├', '¯', '─', '│', '▕', '┌', '┐', '└', '┘', '╭', '╮', '╰', '╯', ' ', '。', '「', '」', '、', '・', 'ヲ', 'ァ', 'ィ', 'ゥ', 'ェ', 'ォ', 'ャ', 'ュ', 'ョ', 'ッ', 'ー', 'ア', 'イ', 'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ', 'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト', 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ', 'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ', 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ン', '\u{ff9e}', '\u{ff9f}', '═', '╞', '╪', '╡', '◢', '◣', '◥', '◤', '♠', '♥', '♦', '♣', '●', '○', '╱', '╲', '╳', '円', '年', '月', '日', '時', '分', '秒', '〒', '市', '区', '町', '村', '人', '▓', '\u{a0}']),
87        Encoding::OXHOO_EUROPEAN => Some(&['Ç', 'ü', 'é', 'â', 'ä', 'à', 'å', 'ç', 'ê', 'ë', 'è', 'ï', 'î', 'ì', 'Ä', 'Å', 'É', 'æ', 'Æ', 'ô', 'ö', 'ò', 'û', 'ù', 'ÿ', 'Ö', 'Ü', 'ñ', 'Ñ', 'ª', 'º', '¿', 'á', 'í', 'ó', 'ú', '¢', '£', '¥', '₧', 'ƒ', '¡', 'Ã', 'ã', 'Õ', 'õ', 'Ø', 'ø', '·', '¨', '°', '`', '´', '½', '¼', '×', '÷', '≤', '≥', '«', '»', '≠', '√', '¯', '⌠', '⌡', '∞', '◤', '↵', '↑', '↓', '→', '←', '┌', '┐', '└', '┘', '•', '®', '©', '™', '†', '§', '¶', 'Γ', '◢', 'Θ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'ß', ' ', ' ', ' ', 'ε', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'τ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']),
88        Encoding::TCVN_3_1 => Some(&[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'ă', 'â', 'ê', 'ô', 'ơ', 'ư', 'đ', ' ', ' ', ' ', ' ', ' ', ' ', 'à', 'ả', 'ã', 'á', 'ạ', ' ', 'ằ', 'ẳ', 'ẵ', 'ắ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'ặ', 'ầ', 'ẩ', 'ẫ', 'ấ', 'ậ', 'è', ' ', 'ẻ', 'ẽ', 'é', 'ẹ', 'ề', 'ể', 'ễ', 'ế', 'ệ', 'ì', 'ỉ', ' ', ' ', ' ', 'ĩ', 'í', 'ị', 'ò', ' ', 'ỏ', 'õ', 'ó', 'ọ', 'ồ', 'ổ', 'ỗ', 'ố', 'ộ', 'ờ', 'ở', 'ỡ', 'ớ', 'ợ', 'ù', ' ', 'ủ', 'ũ', 'ú', 'ụ', 'ừ', 'ử', 'ữ', 'ứ', 'ự', 'ỳ', 'ỷ', 'ỹ', 'ý', 'ỵ', ' ']),
89        Encoding::TCVN_3_2 => Some(&[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'Ă', 'Â', ' ', ' ', ' ', ' ', 'Ð', ' ', ' ', 'Ê', 'Ô', 'Ơ', 'Ư', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'À', 'Ả', 'Ã', 'Á', 'Ạ', ' ', 'Ằ', 'Ẳ', 'Ẵ', 'Ắ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'Ặ', 'Ầ', 'Ẩ', 'Ẫ', 'Ấ', 'Ậ', 'È', ' ', 'Ẻ', 'Ẽ', 'É', 'Ẹ', 'Ề', 'Ể', 'Ễ', 'Ế', 'Ệ', 'Ì', 'Ỉ', ' ', ' ', ' ', 'Ĩ', 'Í', 'Ị', 'Ò', ' ', 'Ỏ', 'Õ', 'Ó', 'Ọ', 'Ồ', 'Ổ', 'Ỗ', 'Ố', 'Ộ', 'Ờ', 'Ở', 'Ỡ', 'Ớ', 'Ợ', 'Ù', ' ', 'Ủ', 'Ũ', 'Ú', 'Ụ', 'Ừ', 'Ử', 'Ữ', 'Ứ', 'Ự', 'Ỳ', 'Ỷ', 'Ỹ', 'Ý', 'Ỵ', ' ']),
90        _ => None,
91    }
92}
93bitflags::bitflags! { #[derive(Copy, Clone, Debug, Default)] pub(crate) struct FeaturesInner: u32 {
94    const BARCODE_A = 1;
95    const BARCODE_B = 2;
96    const BIT_IMAGE_COLUMN = 4;
97    const BIT_IMAGE_RASTER = 8;
98    const GRAPHICS = 16;
99    const HIGH_DENSITY = 32;
100    const PAPER_FULL_CUT = 64;
101    const PAPER_PART_CUT = 128;
102    const PDF417_CODE = 256;
103    const PULSE_BEL = 512;
104    const PULSE_STANDARD = 1024;
105    const QR_CODE = 2048;
106    const STAR_COMMANDS = 4096;
107} }
108impl Features {
109    #[doc = "Check if the `barcodeA` feature is supported."]
110    pub fn barcode_a(&self) -> bool {
111        self.0.contains(FeaturesInner::BARCODE_A)
112    }
113    #[doc = "Check if the `barcodeB` feature is supported."]
114    pub fn barcode_b(&self) -> bool {
115        self.0.contains(FeaturesInner::BARCODE_B)
116    }
117    #[doc = "Check if the `bitImageColumn` feature is supported."]
118    pub fn bit_image_column(&self) -> bool {
119        self.0.contains(FeaturesInner::BIT_IMAGE_COLUMN)
120    }
121    #[doc = "Check if the `bitImageRaster` feature is supported."]
122    pub fn bit_image_raster(&self) -> bool {
123        self.0.contains(FeaturesInner::BIT_IMAGE_RASTER)
124    }
125    #[doc = "Check if the `graphics` feature is supported."]
126    pub fn graphics(&self) -> bool {
127        self.0.contains(FeaturesInner::GRAPHICS)
128    }
129    #[doc = "Check if the `highDensity` feature is supported."]
130    pub fn high_density(&self) -> bool {
131        self.0.contains(FeaturesInner::HIGH_DENSITY)
132    }
133    #[doc = "Check if the `paperFullCut` feature is supported."]
134    pub fn paper_full_cut(&self) -> bool {
135        self.0.contains(FeaturesInner::PAPER_FULL_CUT)
136    }
137    #[doc = "Check if the `paperPartCut` feature is supported."]
138    pub fn paper_part_cut(&self) -> bool {
139        self.0.contains(FeaturesInner::PAPER_PART_CUT)
140    }
141    #[doc = "Check if the `pdf417Code` feature is supported."]
142    pub fn pdf417_code(&self) -> bool {
143        self.0.contains(FeaturesInner::PDF417_CODE)
144    }
145    #[doc = "Check if the `pulseBel` feature is supported."]
146    pub fn pulse_bel(&self) -> bool {
147        self.0.contains(FeaturesInner::PULSE_BEL)
148    }
149    #[doc = "Check if the `pulseStandard` feature is supported."]
150    pub fn pulse_standard(&self) -> bool {
151        self.0.contains(FeaturesInner::PULSE_STANDARD)
152    }
153    #[doc = "Check if the `qrCode` feature is supported."]
154    pub fn qr_code(&self) -> bool {
155        self.0.contains(FeaturesInner::QR_CODE)
156    }
157    #[doc = "Check if the `starCommands` feature is supported."]
158    pub fn star_commands(&self) -> bool {
159        self.0.contains(FeaturesInner::STAR_COMMANDS)
160    }
161}
162impl Features {
163/// Create a new `Features` with no features enabled.
164    pub const fn new() -> Self {
165        Self(FeaturesInner::empty())
166    }
167    #[doc = "Set the `barcodeA` feature to be on or off."]
168    pub fn with_barcode_a(self, on: bool) -> Self {
169        self._with(FeaturesInner::BARCODE_A, on)
170    }
171    #[doc = "Set the `barcodeB` feature to be on or off."]
172    pub fn with_barcode_b(self, on: bool) -> Self {
173        self._with(FeaturesInner::BARCODE_B, on)
174    }
175    #[doc = "Set the `bitImageColumn` feature to be on or off."]
176    pub fn with_bit_image_column(self, on: bool) -> Self {
177        self._with(FeaturesInner::BIT_IMAGE_COLUMN, on)
178    }
179    #[doc = "Set the `bitImageRaster` feature to be on or off."]
180    pub fn with_bit_image_raster(self, on: bool) -> Self {
181        self._with(FeaturesInner::BIT_IMAGE_RASTER, on)
182    }
183    #[doc = "Set the `graphics` feature to be on or off."]
184    pub fn with_graphics(self, on: bool) -> Self {
185        self._with(FeaturesInner::GRAPHICS, on)
186    }
187    #[doc = "Set the `highDensity` feature to be on or off."]
188    pub fn with_high_density(self, on: bool) -> Self {
189        self._with(FeaturesInner::HIGH_DENSITY, on)
190    }
191    #[doc = "Set the `paperFullCut` feature to be on or off."]
192    pub fn with_paper_full_cut(self, on: bool) -> Self {
193        self._with(FeaturesInner::PAPER_FULL_CUT, on)
194    }
195    #[doc = "Set the `paperPartCut` feature to be on or off."]
196    pub fn with_paper_part_cut(self, on: bool) -> Self {
197        self._with(FeaturesInner::PAPER_PART_CUT, on)
198    }
199    #[doc = "Set the `pdf417Code` feature to be on or off."]
200    pub fn with_pdf417_code(self, on: bool) -> Self {
201        self._with(FeaturesInner::PDF417_CODE, on)
202    }
203    #[doc = "Set the `pulseBel` feature to be on or off."]
204    pub fn with_pulse_bel(self, on: bool) -> Self {
205        self._with(FeaturesInner::PULSE_BEL, on)
206    }
207    #[doc = "Set the `pulseStandard` feature to be on or off."]
208    pub fn with_pulse_standard(self, on: bool) -> Self {
209        self._with(FeaturesInner::PULSE_STANDARD, on)
210    }
211    #[doc = "Set the `qrCode` feature to be on or off."]
212    pub fn with_qr_code(self, on: bool) -> Self {
213        self._with(FeaturesInner::QR_CODE, on)
214    }
215    #[doc = "Set the `starCommands` feature to be on or off."]
216    pub fn with_star_commands(self, on: bool) -> Self {
217        self._with(FeaturesInner::STAR_COMMANDS, on)
218    }
219}
220#[doc = "AF-240 Customer Display profile\n\nThis is a two-line, ESC/POS-aware customer display from Oxhoo. The ESC/POS command mode can be activated persistently by sending:\n\n    echo -ne \"\\n\\x02\\x05\\x43\\x31\\x03\" > /dev/ttyUSB0\n"]
221pub static AF_240: Profile = Profile {
222    name: Cow::Borrowed("AF-240 Customer Display"),
223    vendor: Cow::Borrowed("Oxhoo"),
224    features: Features(FeaturesInner::empty()),
225    code_pages: Cow::Borrowed(IntMap::from_entries(&[
226      (0, Encoding::OXHOO_EUROPEAN),
227    ])),
228    colors: Cow::Borrowed(IntMap::from_entries(&[
229      (0, Color::Black),
230    ])),
231    fonts: Cow::Borrowed(IntMap::from_entries(&[
232      (0, FontInfo { columns: 20 }),
233    ])),
234    media: Media { dpi: None, width: Some(Width { mm: 120.0, px: 100 }) },
235};
236
237#[doc = "CT-S651 profile\n\nCitizen CT-S651 profile. This is a two-color thermal printer, supporting paper sizes from 58mm up to 83mm\n"]
238pub static CT_S651: Profile = Profile {
239    name: Cow::Borrowed("CT-S651"),
240    vendor: Cow::Borrowed("Citizen"),
241    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_BEL).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
242    code_pages: Cow::Borrowed(IntMap::from_entries(&[
243      (0, Encoding::CP437),
244      (1, Encoding::CP932),
245      (2, Encoding::CP850),
246      (3, Encoding::CP860),
247      (4, Encoding::CP863),
248      (5, Encoding::CP865),
249      (6, Encoding::CP852),
250      (7, Encoding::CP866),
251      (8, Encoding::CP857),
252      (9, Encoding::CP1252),
253      (16, Encoding::CP1252),
254      (17, Encoding::CP866),
255      (18, Encoding::CP852),
256      (19, Encoding::CP858),
257      (20, Encoding::UNKNOWN),
258      (21, Encoding::UNKNOWN),
259      (25, Encoding::UNKNOWN),
260      (26, Encoding::UNKNOWN),
261      (30, Encoding::TCVN_3_1),
262      (31, Encoding::TCVN_3_2),
263      (40, Encoding::CP864),
264      (255, Encoding::UNKNOWN),
265    ])),
266    colors: Cow::Borrowed(IntMap::from_entries(&[
267      (0, Color::Black),
268      (1, Color::Red),
269    ])),
270    fonts: Cow::Borrowed(IntMap::from_entries(&[
271      (0, FontInfo { columns: 48 }),
272      (1, FontInfo { columns: 64 }),
273      (2, FontInfo { columns: 72 }),
274    ])),
275    media: Media { dpi: Some(203), width: Some(Width { mm: 80.0, px: 640 }) },
276};
277
278#[doc = "ITPP047 profile\n\nMunbyn ITPP047/ITPP102 receipt printer with cutter.\nThis printer has all the standard features, but a somewhat reduced codepage set. This profile might work for other china printers (Meihengtong, ...), too.\nFor technical information, go to support.munbyn.com, look for \"Printer - Drivers / SDK\", then download the \"ITPP047 SDK\", which contains the \"ITPP047 Program Manual\".\n"]
279pub static ITPP047: Profile = Profile {
280    name: Cow::Borrowed("ITPP047"),
281    vendor: Cow::Borrowed("Munbyn"),
282    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
283    code_pages: Cow::Borrowed(IntMap::from_entries(&[
284      (0, Encoding::CP437),
285      (1, Encoding::CP932),
286      (2, Encoding::CP850),
287      (3, Encoding::CP860),
288      (4, Encoding::CP863),
289      (5, Encoding::CP865),
290      (6, Encoding::CP1252),
291      (7, Encoding::UNKNOWN),
292      (8, Encoding::UNKNOWN),
293      (9, Encoding::UNKNOWN),
294      (10, Encoding::UNKNOWN),
295      (16, Encoding::UNKNOWN),
296      (17, Encoding::CP866),
297      (18, Encoding::CP852),
298      (19, Encoding::CP858),
299      (20, Encoding::UNKNOWN),
300      (21, Encoding::UNKNOWN),
301    ])),
302    colors: Cow::Borrowed(IntMap::from_entries(&[
303      (0, Color::Black),
304    ])),
305    fonts: Cow::Borrowed(IntMap::from_entries(&[
306      (0, FontInfo { columns: 42 }),
307      (1, FontInfo { columns: 56 }),
308    ])),
309    media: Media { dpi: None, width: Some(Width { mm: 80.0, px: 512 }) },
310};
311
312#[doc = "KR-306 profile\n\nKefar KR-306 printer with 200mm/s speed\n"]
313pub static KR_306: Profile = Profile {
314    name: Cow::Borrowed("KR-306"),
315    vendor: Cow::Borrowed("Kefar"),
316    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
317    code_pages: Cow::Borrowed(IntMap::from_entries(&[
318      (0, Encoding::CP437),
319      (1, Encoding::KATAKANA),
320      (2, Encoding::CP850),
321      (3, Encoding::CP860),
322      (4, Encoding::CP863),
323      (5, Encoding::CP865),
324      (6, Encoding::UNKNOWN),
325      (7, Encoding::UNKNOWN),
326      (8, Encoding::UNKNOWN),
327      (9, Encoding::UNKNOWN),
328      (10, Encoding::UNKNOWN),
329      (11, Encoding::CP1252),
330      (12, Encoding::CP866),
331      (13, Encoding::CP852),
332      (14, Encoding::CP858),
333      (15, Encoding::UNKNOWN),
334      (16, Encoding::UNKNOWN),
335      (17, Encoding::UNKNOWN),
336      (18, Encoding::UNKNOWN),
337      (19, Encoding::CP747),
338      (20, Encoding::UNKNOWN),
339      (21, Encoding::UNKNOWN),
340      (22, Encoding::UNKNOWN),
341      (23, Encoding::CP864),
342      (24, Encoding::UNKNOWN),
343      (25, Encoding::UNKNOWN),
344      (26, Encoding::UNKNOWN),
345      (27, Encoding::CP1255),
346      (28, Encoding::CP437),
347      (29, Encoding::KATAKANA),
348      (30, Encoding::CP437),
349      (31, Encoding::CP858),
350      (32, Encoding::CP852),
351      (33, Encoding::CP860),
352      (34, Encoding::CP861),
353      (35, Encoding::CP863),
354      (36, Encoding::CP865),
355      (37, Encoding::CP866),
356      (38, Encoding::CP855),
357      (39, Encoding::CP857),
358      (40, Encoding::CP862),
359      (41, Encoding::CP864),
360      (42, Encoding::CP737),
361      (43, Encoding::CP851),
362      (44, Encoding::CP869),
363      (45, Encoding::CP928),
364      (46, Encoding::CP772),
365      (47, Encoding::CP774),
366      (48, Encoding::CP874),
367      (49, Encoding::CP1252),
368      (50, Encoding::CP1250),
369      (51, Encoding::CP1251),
370      (52, Encoding::CP3840),
371      (53, Encoding::CP3841),
372      (54, Encoding::CP3843),
373      (55, Encoding::CP3844),
374      (56, Encoding::CP3845),
375      (57, Encoding::CP3846),
376      (58, Encoding::CP3847),
377      (59, Encoding::CP3848),
378      (60, Encoding::CP1001),
379      (61, Encoding::CP2001),
380      (62, Encoding::CP3001),
381      (63, Encoding::CP3002),
382      (64, Encoding::CP3011),
383      (65, Encoding::CP3012),
384      (66, Encoding::CP3021),
385      (67, Encoding::CP3041),
386      (68, Encoding::CP852),
387      (69, Encoding::UNKNOWN),
388      (70, Encoding::CP1256),
389    ])),
390    colors: Cow::Borrowed(IntMap::from_entries(&[
391      (0, Color::Black),
392    ])),
393    fonts: Cow::Borrowed(IntMap::from_entries(&[
394      (0, FontInfo { columns: 48 }),
395      (1, FontInfo { columns: 64 }),
396    ])),
397    media: Media { dpi: None, width: Some(Width { mm: 72.0, px: 576 }) },
398};
399
400#[doc = "NT-5890K profile\n\n"]
401pub static NT_5890K: Profile = Profile {
402    name: Cow::Borrowed("NT-5890K"),
403    vendor: Cow::Borrowed("Netum"),
404    features: Features(FeaturesInner::empty().union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PULSE_STANDARD)),
405    code_pages: Cow::Borrowed(IntMap::from_entries(&[
406      (0, Encoding::CP437),
407      (1, Encoding::CP932),
408      (2, Encoding::CP850),
409      (3, Encoding::CP860),
410      (4, Encoding::CP863),
411      (5, Encoding::CP865),
412      (6, Encoding::UNKNOWN),
413      (7, Encoding::UNKNOWN),
414      (8, Encoding::UNKNOWN),
415      (9, Encoding::UNKNOWN),
416      (10, Encoding::UNKNOWN),
417      (16, Encoding::CP1252),
418      (17, Encoding::CP866),
419      (18, Encoding::CP852),
420      (19, Encoding::CP858),
421      (20, Encoding::UNKNOWN),
422      (21, Encoding::UNKNOWN),
423      (22, Encoding::UNKNOWN),
424      (23, Encoding::UNKNOWN),
425      (24, Encoding::CP747),
426      (25, Encoding::CP1257),
427      (27, Encoding::CP1258),
428      (28, Encoding::CP864),
429      (31, Encoding::UNKNOWN),
430      (32, Encoding::CP1255),
431      (50, Encoding::CP437),
432      (52, Encoding::CP437),
433      (53, Encoding::CP858),
434      (54, Encoding::CP852),
435      (55, Encoding::CP860),
436      (56, Encoding::CP861),
437      (57, Encoding::CP863),
438      (58, Encoding::CP865),
439      (59, Encoding::CP866),
440      (60, Encoding::CP855),
441      (61, Encoding::CP857),
442      (62, Encoding::CP862),
443      (63, Encoding::CP864),
444      (64, Encoding::CP737),
445      (65, Encoding::CP851),
446      (66, Encoding::CP869),
447      (68, Encoding::CP772),
448      (69, Encoding::CP774),
449      (71, Encoding::CP1252),
450      (72, Encoding::CP1250),
451      (73, Encoding::CP1251),
452      (74, Encoding::CP3840),
453      (76, Encoding::CP3843),
454      (77, Encoding::CP3844),
455      (78, Encoding::CP3845),
456      (79, Encoding::CP3846),
457      (80, Encoding::CP3847),
458      (81, Encoding::CP3848),
459      (83, Encoding::CP2001),
460      (84, Encoding::CP3001),
461      (85, Encoding::CP3002),
462      (86, Encoding::CP3011),
463      (87, Encoding::CP3012),
464      (88, Encoding::CP3021),
465      (89, Encoding::CP3041),
466      (90, Encoding::CP1253),
467      (91, Encoding::CP1254),
468      (92, Encoding::CP1256),
469      (93, Encoding::CP720),
470      (94, Encoding::CP1258),
471      (95, Encoding::CP775),
472      (96, Encoding::UNKNOWN),
473      (255, Encoding::UNKNOWN),
474    ])),
475    colors: Cow::Borrowed(IntMap::from_entries(&[
476      (0, Color::Black),
477    ])),
478    fonts: Cow::Borrowed(IntMap::from_entries(&[
479      (0, FontInfo { columns: 32 }),
480      (1, FontInfo { columns: 42 }),
481    ])),
482    media: Media { dpi: Some(203), width: Some(Width { mm: 57.5, px: 384 }) },
483};
484
485#[doc = "80-V-UL profile\n\nNetum 80-V-UL thermal printer series.\n"]
486pub static NT_80_V_UL: Profile = Profile {
487    name: Cow::Borrowed("80-V-UL"),
488    vendor: Cow::Borrowed("Netum"),
489    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
490    code_pages: Cow::Borrowed(IntMap::from_entries(&[
491      (0, Encoding::CP437),
492      (1, Encoding::UNKNOWN),
493      (2, Encoding::CP850),
494      (3, Encoding::CP860),
495      (4, Encoding::CP863),
496      (5, Encoding::CP865),
497      (6, Encoding::UNKNOWN),
498      (7, Encoding::UNKNOWN),
499      (8, Encoding::UNKNOWN),
500      (9, Encoding::UNKNOWN),
501      (10, Encoding::UNKNOWN),
502      (16, Encoding::CP1252),
503      (17, Encoding::CP866),
504      (18, Encoding::CP852),
505      (19, Encoding::CP858),
506      (20, Encoding::UNKNOWN),
507      (21, Encoding::UNKNOWN),
508      (22, Encoding::ISO_8859_6),
509      (23, Encoding::UNKNOWN),
510      (24, Encoding::CP747),
511      (25, Encoding::CP1257),
512      (27, Encoding::UNKNOWN),
513      (28, Encoding::CP864),
514      (31, Encoding::UNKNOWN),
515      (32, Encoding::CP1255),
516      (50, Encoding::CP437),
517      (52, Encoding::CP437),
518      (53, Encoding::CP858),
519      (54, Encoding::CP852),
520      (55, Encoding::CP860),
521      (56, Encoding::CP861),
522      (57, Encoding::CP863),
523      (58, Encoding::CP865),
524      (59, Encoding::CP866),
525      (60, Encoding::CP855),
526      (61, Encoding::CP857),
527      (62, Encoding::CP862),
528      (63, Encoding::CP864),
529      (64, Encoding::CP737),
530      (65, Encoding::CP851),
531      (66, Encoding::CP869),
532      (68, Encoding::CP772),
533      (69, Encoding::CP774),
534      (71, Encoding::CP1252),
535      (72, Encoding::CP1250),
536      (73, Encoding::CP1251),
537      (74, Encoding::CP3840),
538      (76, Encoding::CP3843),
539      (77, Encoding::CP3844),
540      (78, Encoding::CP3845),
541      (79, Encoding::CP3846),
542      (80, Encoding::CP3847),
543      (81, Encoding::CP3848),
544      (83, Encoding::CP2001),
545      (84, Encoding::CP3001),
546      (85, Encoding::CP3002),
547      (86, Encoding::CP3011),
548      (87, Encoding::CP3012),
549      (88, Encoding::CP3021),
550      (89, Encoding::CP3041),
551      (90, Encoding::CP1253),
552      (91, Encoding::CP1254),
553      (92, Encoding::CP1256),
554      (93, Encoding::CP720),
555      (94, Encoding::CP1258),
556      (95, Encoding::CP775),
557      (96, Encoding::UNKNOWN),
558      (255, Encoding::UNKNOWN),
559    ])),
560    colors: Cow::Borrowed(IntMap::from_entries(&[
561      (0, Color::Black),
562    ])),
563    fonts: Cow::Borrowed(IntMap::from_entries(&[
564      (0, FontInfo { columns: 12 }),
565      (1, FontInfo { columns: 9 }),
566    ])),
567    media: Media { dpi: Some(203), width: Some(Width { mm: 80.0, px: 576 }) },
568};
569
570#[doc = "OCD-100 Customer Display profile\n\nThis is a two-line, ESC/POS-aware customer display from Aures. It has some graphics support via custom fonts, but is otherwise text-only. This profile is also suitable for the OCD-150 pole-mounted display.\n"]
571pub static OCD_100: Profile = Profile {
572    name: Cow::Borrowed("OCD-100 Customer Display"),
573    vendor: Cow::Borrowed("Aures"),
574    features: Features(FeaturesInner::empty()),
575    code_pages: Cow::Borrowed(IntMap::from_entries(&[
576      (0, Encoding::CP437),
577      (1, Encoding::CP932),
578      (2, Encoding::CP850),
579      (3, Encoding::CP860),
580      (4, Encoding::CP863),
581      (5, Encoding::CP865),
582      (6, Encoding::UNKNOWN),
583      (7, Encoding::UNKNOWN),
584      (8, Encoding::UNKNOWN),
585      (9, Encoding::CP852),
586      (10, Encoding::CP862),
587      (11, Encoding::CP866),
588      (12, Encoding::CP1251),
589      (13, Encoding::CP1254),
590      (14, Encoding::CP1255),
591      (15, Encoding::CP1257),
592      (16, Encoding::CP1252),
593      (17, Encoding::CP1253),
594      (19, Encoding::CP858),
595    ])),
596    colors: Cow::Borrowed(IntMap::from_entries(&[
597      (0, Color::Black),
598    ])),
599    fonts: Cow::Borrowed(IntMap::from_entries(&[
600      (0, FontInfo { columns: 20 }),
601    ])),
602    media: Media { dpi: None, width: Some(Width { mm: 180.0, px: 100 }) },
603};
604
605#[doc = "OCD-300 Customer Display profile\n\nThis is a two-line, ESC/POS-aware customer display from Aures. It has some graphics support via vendor-provided tools, but is otherwise text-only.\n"]
606pub static OCD_300: Profile = Profile {
607    name: Cow::Borrowed("OCD-300 Customer Display"),
608    vendor: Cow::Borrowed("Aures"),
609    features: Features(FeaturesInner::empty()),
610    code_pages: Cow::Borrowed(IntMap::from_entries(&[
611      (0, Encoding::CP437),
612      (1, Encoding::CP932),
613      (2, Encoding::CP850),
614      (3, Encoding::CP860),
615      (4, Encoding::CP863),
616      (5, Encoding::CP865),
617      (6, Encoding::UNKNOWN),
618      (7, Encoding::UNKNOWN),
619      (8, Encoding::UNKNOWN),
620      (9, Encoding::CP852),
621      (10, Encoding::CP862),
622      (11, Encoding::CP866),
623      (12, Encoding::CP1251),
624      (13, Encoding::CP1254),
625      (14, Encoding::CP1255),
626      (15, Encoding::CP1257),
627      (16, Encoding::CP1252),
628      (17, Encoding::CP1253),
629      (18, Encoding::CP1250),
630      (19, Encoding::CP858),
631      (20, Encoding::UNKNOWN),
632    ])),
633    colors: Cow::Borrowed(IntMap::from_entries(&[
634      (0, Color::Black),
635    ])),
636    fonts: Cow::Borrowed(IntMap::from_entries(&[
637      (0, FontInfo { columns: 20 }),
638    ])),
639    media: Media { dpi: None, width: Some(Width { mm: 130.2, px: 240 }) },
640};
641
642#[doc = "P822D profile\n\n"]
643pub static P822D: Profile = Profile {
644    name: Cow::Borrowed("P822D"),
645    vendor: Cow::Borrowed("PBM"),
646    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
647    code_pages: Cow::Borrowed(IntMap::from_entries(&[
648      (0, Encoding::CP437),
649      (1, Encoding::KATAKANA),
650      (2, Encoding::CP850),
651      (3, Encoding::CP860),
652      (4, Encoding::CP863),
653      (5, Encoding::CP865),
654      (6, Encoding::UNKNOWN),
655      (7, Encoding::UNKNOWN),
656      (8, Encoding::UNKNOWN),
657      (9, Encoding::UNKNOWN),
658      (10, Encoding::UNKNOWN),
659      (16, Encoding::CP1252),
660      (17, Encoding::CP866),
661      (18, Encoding::CP852),
662      (19, Encoding::CP858),
663      (20, Encoding::UNKNOWN),
664      (21, Encoding::UNKNOWN),
665      (22, Encoding::UNKNOWN),
666      (23, Encoding::UNKNOWN),
667      (24, Encoding::CP747),
668      (25, Encoding::CP1257),
669      (27, Encoding::UNKNOWN),
670      (28, Encoding::CP864),
671      (29, Encoding::CP1001),
672      (30, Encoding::UNKNOWN),
673      (31, Encoding::UNKNOWN),
674      (32, Encoding::CP1255),
675      (33, Encoding::CP720),
676      (34, Encoding::CP1256),
677      (35, Encoding::CP1257),
678      (50, Encoding::CP437),
679      (51, Encoding::UNKNOWN),
680      (52, Encoding::CP437),
681      (53, Encoding::CP858),
682      (54, Encoding::CP852),
683      (55, Encoding::CP860),
684      (56, Encoding::CP861),
685      (57, Encoding::CP863),
686      (58, Encoding::CP865),
687      (59, Encoding::CP866),
688      (60, Encoding::CP855),
689      (61, Encoding::CP857),
690      (62, Encoding::CP862),
691      (63, Encoding::CP864),
692      (64, Encoding::CP737),
693      (65, Encoding::CP851),
694      (66, Encoding::CP869),
695      (67, Encoding::CP928),
696      (68, Encoding::CP772),
697      (69, Encoding::CP774),
698      (70, Encoding::CP874),
699      (71, Encoding::CP1252),
700      (72, Encoding::CP1250),
701      (73, Encoding::CP1251),
702      (74, Encoding::CP3840),
703      (75, Encoding::CP3841),
704      (76, Encoding::CP3843),
705      (77, Encoding::CP3844),
706      (78, Encoding::CP3845),
707      (79, Encoding::CP3846),
708      (80, Encoding::CP3847),
709      (81, Encoding::CP3848),
710      (82, Encoding::CP1001),
711      (83, Encoding::CP2001),
712      (84, Encoding::CP3001),
713      (85, Encoding::CP3002),
714      (86, Encoding::CP3011),
715      (87, Encoding::CP3012),
716      (88, Encoding::CP3021),
717      (89, Encoding::CP3041),
718      (255, Encoding::UNKNOWN),
719    ])),
720    colors: Cow::Borrowed(IntMap::from_entries(&[
721      (0, Color::Black),
722    ])),
723    fonts: Cow::Borrowed(IntMap::from_entries(&[
724      (0, FontInfo { columns: 42 }),
725      (1, FontInfo { columns: 56 }),
726    ])),
727    media: Media { dpi: None, width: Some(Width { mm: 79.5, px: 576 }) },
728};
729
730#[doc = "POS5890 Series profile\n\nPOS-5890 thermal printer series, also marketed under various other names.\n"]
731pub static POS_5890: Profile = Profile {
732    name: Cow::Borrowed("POS5890 Series"),
733    vendor: Cow::Borrowed("Zjiang"),
734    features: Features(FeaturesInner::empty().union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PULSE_STANDARD)),
735    code_pages: Cow::Borrowed(IntMap::from_entries(&[
736      (0, Encoding::CP437),
737      (1, Encoding::CP932),
738      (2, Encoding::CP850),
739      (3, Encoding::CP860),
740      (4, Encoding::CP863),
741      (5, Encoding::CP865),
742      (6, Encoding::UNKNOWN),
743      (7, Encoding::UNKNOWN),
744      (8, Encoding::UNKNOWN),
745      (9, Encoding::UNKNOWN),
746      (10, Encoding::UNKNOWN),
747      (16, Encoding::CP1252),
748      (17, Encoding::CP866),
749      (18, Encoding::CP852),
750      (19, Encoding::CP858),
751      (20, Encoding::UNKNOWN),
752      (21, Encoding::UNKNOWN),
753      (22, Encoding::UNKNOWN),
754      (23, Encoding::UNKNOWN),
755      (24, Encoding::CP747),
756      (25, Encoding::CP1257),
757      (27, Encoding::CP1258),
758      (28, Encoding::CP864),
759      (31, Encoding::UNKNOWN),
760      (32, Encoding::CP1255),
761      (50, Encoding::CP437),
762      (52, Encoding::CP437),
763      (53, Encoding::CP858),
764      (54, Encoding::CP852),
765      (55, Encoding::CP860),
766      (56, Encoding::CP861),
767      (57, Encoding::CP863),
768      (58, Encoding::CP865),
769      (59, Encoding::CP866),
770      (60, Encoding::CP855),
771      (61, Encoding::CP857),
772      (62, Encoding::CP862),
773      (63, Encoding::CP864),
774      (64, Encoding::CP737),
775      (65, Encoding::CP851),
776      (66, Encoding::CP869),
777      (68, Encoding::CP772),
778      (69, Encoding::CP774),
779      (71, Encoding::CP1252),
780      (72, Encoding::CP1250),
781      (73, Encoding::CP1251),
782      (74, Encoding::CP3840),
783      (76, Encoding::CP3843),
784      (77, Encoding::CP3844),
785      (78, Encoding::CP3845),
786      (79, Encoding::CP3846),
787      (80, Encoding::CP3847),
788      (81, Encoding::CP3848),
789      (83, Encoding::CP2001),
790      (84, Encoding::CP3001),
791      (85, Encoding::CP3002),
792      (86, Encoding::CP3011),
793      (87, Encoding::CP3012),
794      (88, Encoding::CP3021),
795      (89, Encoding::CP3041),
796      (90, Encoding::CP1253),
797      (91, Encoding::CP1254),
798      (92, Encoding::CP1256),
799      (93, Encoding::CP720),
800      (94, Encoding::CP1258),
801      (95, Encoding::CP775),
802      (96, Encoding::UNKNOWN),
803      (255, Encoding::UNKNOWN),
804    ])),
805    colors: Cow::Borrowed(IntMap::from_entries(&[
806      (0, Color::Black),
807    ])),
808    fonts: Cow::Borrowed(IntMap::from_entries(&[
809      (0, FontInfo { columns: 32 }),
810      (1, FontInfo { columns: 42 }),
811    ])),
812    media: Media { dpi: Some(203), width: Some(Width { mm: 57.5, px: 384 }) },
813};
814
815#[doc = "RP-F10 profile\n\nSeiko RP-F10 series with 58mm paper\n"]
816pub static RP_F10_58MM: Profile = Profile {
817    name: Cow::Borrowed("RP-F10"),
818    vendor: Cow::Borrowed("Seiko"),
819    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
820    code_pages: Cow::Borrowed(IntMap::from_entries(&[
821      (0, Encoding::CP437),
822      (1, Encoding::KATAKANA),
823      (2, Encoding::CP850),
824      (3, Encoding::CP860),
825      (4, Encoding::CP863),
826      (5, Encoding::CP865),
827      (13, Encoding::CP857),
828      (14, Encoding::CP737),
829      (16, Encoding::CP1252),
830      (17, Encoding::CP866),
831      (18, Encoding::CP852),
832      (19, Encoding::CP858),
833      (34, Encoding::CP855),
834      (37, Encoding::CP864),
835      (45, Encoding::CP1250),
836      (46, Encoding::CP1251),
837      (47, Encoding::CP1253),
838      (48, Encoding::CP1254),
839      (255, Encoding::UNKNOWN),
840    ])),
841    colors: Cow::Borrowed(IntMap::from_entries(&[
842      (0, Color::Black),
843    ])),
844    fonts: Cow::Borrowed(IntMap::from_entries(&[
845      (0, FontInfo { columns: 36 }),
846      (1, FontInfo { columns: 54 }),
847    ])),
848    media: Media { dpi: Some(203), width: Some(Width { mm: 54.0, px: 432 }) },
849};
850
851#[doc = "RP-F10 profile\n\nSeiko RP-F10 series with 80mm paper\n"]
852pub static RP_F10_80MM: Profile = Profile {
853    name: Cow::Borrowed("RP-F10"),
854    vendor: Cow::Borrowed("Seiko"),
855    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
856    code_pages: Cow::Borrowed(IntMap::from_entries(&[
857      (0, Encoding::CP437),
858      (1, Encoding::KATAKANA),
859      (2, Encoding::CP850),
860      (3, Encoding::CP860),
861      (4, Encoding::CP863),
862      (5, Encoding::CP865),
863      (13, Encoding::CP857),
864      (14, Encoding::CP737),
865      (16, Encoding::CP1252),
866      (17, Encoding::CP866),
867      (18, Encoding::CP852),
868      (19, Encoding::CP858),
869      (34, Encoding::CP855),
870      (37, Encoding::CP864),
871      (45, Encoding::CP1250),
872      (46, Encoding::CP1251),
873      (47, Encoding::CP1253),
874      (48, Encoding::CP1254),
875      (255, Encoding::UNKNOWN),
876    ])),
877    colors: Cow::Borrowed(IntMap::from_entries(&[
878      (0, Color::Black),
879    ])),
880    fonts: Cow::Borrowed(IntMap::from_entries(&[
881      (0, FontInfo { columns: 48 }),
882      (1, FontInfo { columns: 72 }),
883    ])),
884    media: Media { dpi: Some(203), width: Some(Width { mm: 72.0, px: 576 }) },
885};
886
887#[doc = "RP326 profile\n\n"]
888pub static RP326: Profile = Profile {
889    name: Cow::Borrowed("RP326"),
890    vendor: Cow::Borrowed("Rongta"),
891    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
892    code_pages: Cow::Borrowed(IntMap::from_entries(&[
893      (0, Encoding::CP437),
894      (1, Encoding::KATAKANA),
895      (2, Encoding::CP850),
896      (3, Encoding::CP860),
897      (4, Encoding::CP863),
898      (5, Encoding::CP865),
899      (6, Encoding::CP1251),
900      (7, Encoding::CP866),
901      (8, Encoding::UNKNOWN),
902      (9, Encoding::UNKNOWN),
903      (10, Encoding::UNKNOWN),
904      (15, Encoding::CP862),
905      (16, Encoding::CP1252),
906      (17, Encoding::CP1253),
907      (18, Encoding::CP852),
908      (19, Encoding::CP858),
909      (20, Encoding::UNKNOWN),
910      (21, Encoding::UNKNOWN),
911      (22, Encoding::UNKNOWN),
912      (23, Encoding::ISO_8859_1),
913      (24, Encoding::CP737),
914      (25, Encoding::CP1257),
915      (26, Encoding::UNKNOWN),
916      (27, Encoding::CP720),
917      (28, Encoding::CP855),
918      (29, Encoding::CP857),
919      (30, Encoding::CP1250),
920      (31, Encoding::CP775),
921      (32, Encoding::CP1254),
922      (33, Encoding::CP1255),
923      (34, Encoding::CP1256),
924      (35, Encoding::CP1258),
925      (36, Encoding::ISO_8859_2),
926      (37, Encoding::ISO_8859_3),
927      (38, Encoding::ISO_8859_4),
928      (39, Encoding::ISO_8859_5),
929      (40, Encoding::ISO_8859_6),
930      (41, Encoding::ISO_8859_7),
931      (42, Encoding::ISO_8859_8),
932      (43, Encoding::ISO_8859_9),
933      (44, Encoding::ISO_8859_15),
934      (45, Encoding::UNKNOWN),
935      (46, Encoding::CP856),
936      (47, Encoding::CP874),
937    ])),
938    colors: Cow::Borrowed(IntMap::from_entries(&[
939      (0, Color::Black),
940    ])),
941    fonts: Cow::Borrowed(IntMap::from_entries(&[
942      (0, FontInfo { columns: 42 }),
943      (1, FontInfo { columns: 56 }),
944    ])),
945    media: Media { dpi: Some(203), width: None },
946};
947
948#[doc = "SP2000 Series profile\n\nStar SP2000 impact printer series with ESC/POS emulation enabled"]
949pub static SP2000: Profile = Profile {
950    name: Cow::Borrowed("SP2000 Series"),
951    vendor: Cow::Borrowed("Star Micronics"),
952    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE).union(FeaturesInner::STAR_COMMANDS)),
953    code_pages: Cow::Borrowed(IntMap::from_entries(&[
954      (0, Encoding::CP437),
955      (1, Encoding::CP437),
956      (2, Encoding::CP932),
957      (3, Encoding::CP437),
958      (4, Encoding::CP858),
959      (5, Encoding::CP852),
960      (6, Encoding::CP860),
961      (7, Encoding::CP861),
962      (8, Encoding::CP863),
963      (9, Encoding::CP865),
964      (10, Encoding::CP866),
965      (11, Encoding::CP855),
966      (12, Encoding::CP857),
967      (13, Encoding::CP862),
968      (14, Encoding::CP864),
969      (15, Encoding::CP737),
970      (16, Encoding::CP851),
971      (17, Encoding::CP869),
972      (18, Encoding::CP928),
973      (19, Encoding::CP772),
974      (20, Encoding::CP774),
975      (21, Encoding::CP874),
976      (32, Encoding::CP1252),
977      (33, Encoding::CP1250),
978      (34, Encoding::CP1251),
979      (64, Encoding::CP3840),
980      (65, Encoding::CP3841),
981      (66, Encoding::CP3843),
982      (67, Encoding::CP3844),
983      (68, Encoding::CP3845),
984      (69, Encoding::CP3846),
985      (70, Encoding::CP3847),
986      (71, Encoding::CP3848),
987      (72, Encoding::CP1001),
988      (73, Encoding::CP2001),
989      (74, Encoding::CP3001),
990      (75, Encoding::CP3002),
991      (76, Encoding::CP3011),
992      (77, Encoding::CP3012),
993      (78, Encoding::CP3021),
994      (79, Encoding::CP3041),
995      (96, Encoding::UNKNOWN),
996      (97, Encoding::UNKNOWN),
997      (98, Encoding::UNKNOWN),
998      (99, Encoding::UNKNOWN),
999      (100, Encoding::UNKNOWN),
1000      (101, Encoding::UNKNOWN),
1001      (102, Encoding::UNKNOWN),
1002      (255, Encoding::UNKNOWN),
1003    ])),
1004    colors: Cow::Borrowed(IntMap::from_entries(&[
1005      (0, Color::Black),
1006    ])),
1007    fonts: Cow::Borrowed(IntMap::from_entries(&[
1008      (0, FontInfo { columns: 42 }),
1009      (1, FontInfo { columns: 56 }),
1010    ])),
1011    media: Media { dpi: Some(85), width: None },
1012};
1013
1014#[doc = "SRP-S300 profile\n\nBixolon SRP-S300 profile"]
1015pub static SRP_S300: Profile = Profile {
1016    name: Cow::Borrowed("SRP-S300"),
1017    vendor: Cow::Borrowed("Bixolon"),
1018    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1019    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1020      (0, Encoding::CP437),
1021      (1, Encoding::CP932),
1022      (2, Encoding::CP850),
1023      (3, Encoding::CP860),
1024      (4, Encoding::CP863),
1025      (5, Encoding::CP865),
1026      (16, Encoding::CP1252),
1027      (17, Encoding::CP866),
1028      (18, Encoding::CP852),
1029      (19, Encoding::CP858),
1030      (21, Encoding::CP874),
1031      (22, Encoding::UNKNOWN),
1032      (23, Encoding::UNKNOWN),
1033      (24, Encoding::UNKNOWN),
1034      (25, Encoding::UNKNOWN),
1035      (26, Encoding::UNKNOWN),
1036      (30, Encoding::TCVN_3_1),
1037      (31, Encoding::TCVN_3_2),
1038      (33, Encoding::CP775),
1039      (34, Encoding::CP855),
1040      (35, Encoding::CP861),
1041      (36, Encoding::CP862),
1042      (37, Encoding::CP864),
1043      (38, Encoding::CP869),
1044      (39, Encoding::ISO_8859_2),
1045      (40, Encoding::ISO_8859_15),
1046      (41, Encoding::CP1098),
1047      (42, Encoding::CP774),
1048      (47, Encoding::CP1253),
1049      (49, Encoding::CP1255),
1050      (50, Encoding::CP1256),
1051      (255, Encoding::UNKNOWN),
1052    ])),
1053    colors: Cow::Borrowed(IntMap::from_entries(&[
1054      (0, Color::Black),
1055    ])),
1056    fonts: Cow::Borrowed(IntMap::from_entries(&[
1057      (0, FontInfo { columns: 48 }),
1058      (1, FontInfo { columns: 64 }),
1059      (2, FontInfo { columns: 64 }),
1060    ])),
1061    media: Media { dpi: Some(203), width: Some(Width { mm: 80.0, px: 640 }) },
1062};
1063
1064#[doc = "Sunmi V2 profile\n\nSunmi mini-POS Android device with a built-in Virtual Bluetooth thermal printer.\n"]
1065pub static SUNMI_V2: Profile = Profile {
1066    name: Cow::Borrowed("Sunmi V2"),
1067    vendor: Cow::Borrowed("Sunmi"),
1068    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1069    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1070      (0, Encoding::CP437),
1071      (2, Encoding::CP850),
1072      (3, Encoding::CP860),
1073      (4, Encoding::CP863),
1074      (5, Encoding::CP865),
1075      (13, Encoding::CP857),
1076      (14, Encoding::CP737),
1077      (15, Encoding::ISO_8859_7),
1078      (16, Encoding::CP1252),
1079      (17, Encoding::CP866),
1080      (18, Encoding::CP852),
1081      (19, Encoding::CP858),
1082      (21, Encoding::CP874),
1083      (33, Encoding::CP775),
1084      (34, Encoding::CP855),
1085      (36, Encoding::CP862),
1086      (37, Encoding::CP864),
1087      (254, Encoding::CP855),
1088    ])),
1089    colors: Cow::Borrowed(IntMap::from_entries(&[
1090      (0, Color::Black),
1091    ])),
1092    fonts: Cow::Borrowed(IntMap::from_entries(&[
1093      (0, FontInfo { columns: 32 }),
1094      (1, FontInfo { columns: 42 }),
1095    ])),
1096    media: Media { dpi: None, width: Some(Width { mm: 57.5, px: 384 }) },
1097};
1098
1099#[doc = "T-1 profile\n\nMetapace T-1 Thermal Printer Rev. 1.00"]
1100pub static T_1: Profile = Profile {
1101    name: Cow::Borrowed("T-1"),
1102    vendor: Cow::Borrowed("Metapace"),
1103    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1104    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1105      (0, Encoding::CP437),
1106      (1, Encoding::KATAKANA),
1107      (2, Encoding::CP850),
1108      (3, Encoding::CP860),
1109      (4, Encoding::CP863),
1110      (5, Encoding::CP865),
1111      (19, Encoding::CP858),
1112      (255, Encoding::UNKNOWN),
1113    ])),
1114    colors: Cow::Borrowed(IntMap::from_entries(&[
1115      (0, Color::Black),
1116    ])),
1117    fonts: Cow::Borrowed(IntMap::from_entries(&[
1118      (0, FontInfo { columns: 42 }),
1119      (1, FontInfo { columns: 56 }),
1120    ])),
1121    media: Media { dpi: Some(180), width: Some(Width { mm: 80.0, px: 504 }) },
1122};
1123
1124#[doc = "TEP200M Series profile\n\n"]
1125pub static TEP_200M: Profile = Profile {
1126    name: Cow::Borrowed("TEP200M Series"),
1127    vendor: Cow::Borrowed("EPOS"),
1128    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1129    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1130      (0, Encoding::CP437),
1131      (1, Encoding::CP932),
1132      (2, Encoding::CP850),
1133      (3, Encoding::CP860),
1134      (4, Encoding::CP863),
1135      (5, Encoding::CP865),
1136      (6, Encoding::UNKNOWN),
1137      (7, Encoding::UNKNOWN),
1138      (8, Encoding::UNKNOWN),
1139      (11, Encoding::CP851),
1140      (12, Encoding::CP853),
1141      (13, Encoding::CP857),
1142      (14, Encoding::CP737),
1143      (15, Encoding::ISO_8859_7),
1144      (16, Encoding::CP1252),
1145      (17, Encoding::CP866),
1146      (18, Encoding::CP852),
1147      (19, Encoding::CP858),
1148      (20, Encoding::UNKNOWN),
1149      (21, Encoding::CP874),
1150      (22, Encoding::UNKNOWN),
1151      (23, Encoding::UNKNOWN),
1152      (24, Encoding::UNKNOWN),
1153      (25, Encoding::UNKNOWN),
1154      (26, Encoding::UNKNOWN),
1155      (30, Encoding::TCVN_3_1),
1156      (31, Encoding::TCVN_3_2),
1157      (32, Encoding::CP720),
1158      (33, Encoding::CP775),
1159      (34, Encoding::CP855),
1160      (35, Encoding::CP861),
1161      (36, Encoding::CP862),
1162      (37, Encoding::CP864),
1163      (38, Encoding::CP869),
1164      (39, Encoding::ISO_8859_2),
1165      (40, Encoding::ISO_8859_15),
1166      (41, Encoding::CP1098),
1167      (42, Encoding::CP774),
1168      (43, Encoding::CP772),
1169      (44, Encoding::CP1125),
1170      (45, Encoding::CP1250),
1171      (46, Encoding::CP1251),
1172      (47, Encoding::CP1253),
1173      (48, Encoding::CP1254),
1174      (49, Encoding::CP1255),
1175      (50, Encoding::CP1256),
1176      (51, Encoding::CP1257),
1177      (52, Encoding::CP1258),
1178      (53, Encoding::RK1048),
1179      (66, Encoding::UNKNOWN),
1180      (67, Encoding::UNKNOWN),
1181      (68, Encoding::UNKNOWN),
1182      (69, Encoding::UNKNOWN),
1183      (70, Encoding::UNKNOWN),
1184      (71, Encoding::UNKNOWN),
1185      (72, Encoding::UNKNOWN),
1186      (73, Encoding::UNKNOWN),
1187      (74, Encoding::UNKNOWN),
1188      (75, Encoding::UNKNOWN),
1189      (82, Encoding::UNKNOWN),
1190      (254, Encoding::UNKNOWN),
1191      (255, Encoding::UNKNOWN),
1192    ])),
1193    colors: Cow::Borrowed(IntMap::from_entries(&[
1194      (0, Color::Black),
1195    ])),
1196    fonts: Cow::Borrowed(IntMap::from_entries(&[
1197      (0, FontInfo { columns: 42 }),
1198      (1, FontInfo { columns: 56 }),
1199    ])),
1200    media: Media { dpi: Some(203), width: None },
1201};
1202
1203#[doc = "TH230 profile\n\nProfile for TH230. Use bitImageColumn to print properly.\n"]
1204pub static TH230: Profile = Profile {
1205    name: Cow::Borrowed("TH230"),
1206    vendor: Cow::Borrowed("Wincor Nixdorf"),
1207    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PULSE_STANDARD)),
1208    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1209      (0, Encoding::CP437),
1210      (1, Encoding::CP850),
1211      (2, Encoding::CP852),
1212      (3, Encoding::CP860),
1213      (4, Encoding::CP863),
1214      (5, Encoding::CP865),
1215      (6, Encoding::CP858),
1216      (7, Encoding::CP866),
1217      (8, Encoding::CP1252),
1218      (9, Encoding::CP862),
1219      (10, Encoding::CP737),
1220      (11, Encoding::CP874),
1221      (12, Encoding::CP857),
1222      (16, Encoding::CP1254),
1223      (17, Encoding::CP1250),
1224      (18, Encoding::UNKNOWN),
1225      (19, Encoding::UNKNOWN),
1226      (20, Encoding::UNKNOWN),
1227      (21, Encoding::UNKNOWN),
1228      (22, Encoding::CP864),
1229      (23, Encoding::CP720),
1230      (24, Encoding::CP1256),
1231      (25, Encoding::UNKNOWN),
1232      (26, Encoding::KATAKANA),
1233      (27, Encoding::CP775),
1234      (28, Encoding::CP1257),
1235      (29, Encoding::UNKNOWN),
1236    ])),
1237    colors: Cow::Borrowed(IntMap::from_entries(&[
1238      (0, Color::Black),
1239    ])),
1240    fonts: Cow::Borrowed(IntMap::from_entries(&[
1241      (0, FontInfo { columns: 44 }),
1242      (1, FontInfo { columns: 57 }),
1243    ])),
1244    media: Media { dpi: Some(203), width: Some(Width { mm: 72.0, px: 576 }) },
1245};
1246
1247#[doc = "TH230+ profile\n\nProfile for TH230+. Use bitImageColumn to print properly. TH230+ supports native qr codes and PDF417 codes\n"]
1248pub static TH230_PLUS: Profile = Profile {
1249    name: Cow::Borrowed("TH230+"),
1250    vendor: Cow::Borrowed("Wincor Nixdorf"),
1251    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1252    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1253      (0, Encoding::CP437),
1254      (1, Encoding::CP850),
1255      (2, Encoding::CP852),
1256      (3, Encoding::CP860),
1257      (4, Encoding::CP863),
1258      (5, Encoding::CP865),
1259      (6, Encoding::CP858),
1260      (7, Encoding::CP866),
1261      (8, Encoding::CP1252),
1262      (9, Encoding::CP862),
1263      (10, Encoding::CP737),
1264      (11, Encoding::CP874),
1265      (12, Encoding::CP857),
1266      (16, Encoding::CP1254),
1267      (17, Encoding::CP1250),
1268      (18, Encoding::UNKNOWN),
1269      (19, Encoding::UNKNOWN),
1270      (20, Encoding::UNKNOWN),
1271      (21, Encoding::UNKNOWN),
1272      (22, Encoding::CP864),
1273      (23, Encoding::CP720),
1274      (24, Encoding::CP1256),
1275      (25, Encoding::UNKNOWN),
1276      (26, Encoding::KATAKANA),
1277      (27, Encoding::CP775),
1278      (28, Encoding::CP1257),
1279      (29, Encoding::UNKNOWN),
1280    ])),
1281    colors: Cow::Borrowed(IntMap::from_entries(&[
1282      (0, Color::Black),
1283    ])),
1284    fonts: Cow::Borrowed(IntMap::from_entries(&[
1285      (0, FontInfo { columns: 44 }),
1286      (1, FontInfo { columns: 57 }),
1287    ])),
1288    media: Media { dpi: Some(203), width: Some(Width { mm: 72.0, px: 576 }) },
1289};
1290
1291#[doc = "TM-L90 profile\n\nEpson TM-L90 profile. The standard 80mm paper width version was used here. The code page mapping is documented in the \"TM-L90 Technical Reference Guide\".\n"]
1292pub static TM_L90: Profile = Profile {
1293    name: Cow::Borrowed("TM-L90"),
1294    vendor: Cow::Borrowed("Epson"),
1295    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1296    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1297      (0, Encoding::CP437),
1298      (1, Encoding::CP932),
1299      (2, Encoding::CP850),
1300      (3, Encoding::CP860),
1301      (4, Encoding::CP863),
1302      (5, Encoding::CP865),
1303      (11, Encoding::CP851),
1304      (12, Encoding::CP853),
1305      (13, Encoding::CP857),
1306      (14, Encoding::CP737),
1307      (15, Encoding::ISO_8859_7),
1308      (16, Encoding::CP1252),
1309      (17, Encoding::CP866),
1310      (18, Encoding::CP852),
1311      (19, Encoding::CP858),
1312      (20, Encoding::UNKNOWN),
1313      (21, Encoding::CP874),
1314      (22, Encoding::UNKNOWN),
1315      (23, Encoding::UNKNOWN),
1316      (24, Encoding::UNKNOWN),
1317      (25, Encoding::UNKNOWN),
1318      (26, Encoding::UNKNOWN),
1319      (30, Encoding::TCVN_3_1),
1320      (31, Encoding::TCVN_3_2),
1321      (32, Encoding::CP720),
1322      (33, Encoding::CP775),
1323      (34, Encoding::CP855),
1324      (35, Encoding::CP861),
1325      (36, Encoding::CP862),
1326      (37, Encoding::CP864),
1327      (38, Encoding::CP869),
1328      (39, Encoding::ISO_8859_2),
1329      (40, Encoding::ISO_8859_15),
1330      (41, Encoding::CP1098),
1331      (42, Encoding::CP774),
1332      (43, Encoding::CP772),
1333      (44, Encoding::CP1125),
1334      (45, Encoding::CP1250),
1335      (46, Encoding::CP1251),
1336      (47, Encoding::CP1253),
1337      (48, Encoding::CP1254),
1338      (49, Encoding::CP1255),
1339      (50, Encoding::CP1256),
1340      (51, Encoding::CP1257),
1341      (52, Encoding::CP1258),
1342      (53, Encoding::RK1048),
1343      (255, Encoding::UNKNOWN),
1344    ])),
1345    colors: Cow::Borrowed(IntMap::from_entries(&[
1346      (0, Color::Black),
1347    ])),
1348    fonts: Cow::Borrowed(IntMap::from_entries(&[
1349      (0, FontInfo { columns: 48 }),
1350      (1, FontInfo { columns: 64 }),
1351    ])),
1352    media: Media { dpi: Some(203), width: Some(Width { mm: 80.0, px: 576 }) },
1353};
1354
1355#[doc = "TM-P80 profile\n\nPortable printer (48-column mode)"]
1356pub static TM_P80: Profile = Profile {
1357    name: Cow::Borrowed("TM-P80"),
1358    vendor: Cow::Borrowed("Epson"),
1359    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1360    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1361      (0, Encoding::CP437),
1362      (1, Encoding::CP932),
1363      (2, Encoding::CP850),
1364      (3, Encoding::CP860),
1365      (4, Encoding::CP863),
1366      (5, Encoding::CP865),
1367      (6, Encoding::UNKNOWN),
1368      (7, Encoding::UNKNOWN),
1369      (8, Encoding::UNKNOWN),
1370      (11, Encoding::CP851),
1371      (12, Encoding::CP853),
1372      (13, Encoding::CP857),
1373      (14, Encoding::CP737),
1374      (15, Encoding::ISO_8859_7),
1375      (16, Encoding::CP1252),
1376      (17, Encoding::CP866),
1377      (18, Encoding::CP852),
1378      (19, Encoding::CP858),
1379      (20, Encoding::UNKNOWN),
1380      (21, Encoding::CP874),
1381      (22, Encoding::UNKNOWN),
1382      (23, Encoding::UNKNOWN),
1383      (24, Encoding::UNKNOWN),
1384      (25, Encoding::UNKNOWN),
1385      (26, Encoding::UNKNOWN),
1386      (30, Encoding::TCVN_3_1),
1387      (31, Encoding::TCVN_3_2),
1388      (32, Encoding::CP720),
1389      (33, Encoding::CP775),
1390      (34, Encoding::CP855),
1391      (35, Encoding::CP861),
1392      (36, Encoding::CP862),
1393      (37, Encoding::CP864),
1394      (38, Encoding::CP869),
1395      (39, Encoding::ISO_8859_2),
1396      (40, Encoding::ISO_8859_15),
1397      (41, Encoding::CP1098),
1398      (42, Encoding::CP774),
1399      (43, Encoding::CP772),
1400      (44, Encoding::CP1125),
1401      (45, Encoding::CP1250),
1402      (46, Encoding::CP1251),
1403      (47, Encoding::CP1253),
1404      (48, Encoding::CP1254),
1405      (49, Encoding::CP1255),
1406      (50, Encoding::CP1256),
1407      (51, Encoding::CP1257),
1408      (52, Encoding::CP1258),
1409      (53, Encoding::RK1048),
1410      (66, Encoding::UNKNOWN),
1411      (67, Encoding::UNKNOWN),
1412      (68, Encoding::UNKNOWN),
1413      (69, Encoding::UNKNOWN),
1414      (70, Encoding::UNKNOWN),
1415      (71, Encoding::UNKNOWN),
1416      (72, Encoding::UNKNOWN),
1417      (73, Encoding::UNKNOWN),
1418      (74, Encoding::UNKNOWN),
1419      (75, Encoding::UNKNOWN),
1420      (82, Encoding::UNKNOWN),
1421      (254, Encoding::UNKNOWN),
1422      (255, Encoding::UNKNOWN),
1423    ])),
1424    colors: Cow::Borrowed(IntMap::from_entries(&[
1425      (0, Color::Black),
1426    ])),
1427    fonts: Cow::Borrowed(IntMap::from_entries(&[
1428      (0, FontInfo { columns: 42 }),
1429      (1, FontInfo { columns: 56 }),
1430      (2, FontInfo { columns: 24 }),
1431    ])),
1432    media: Media { dpi: Some(203), width: Some(Width { mm: 72.0, px: 576 }) },
1433};
1434
1435#[doc = "TM-P80 (42 column mode) profile\n\nPortable printer (42-column mode)"]
1436pub static TM_P80_42COL: Profile = Profile {
1437    name: Cow::Borrowed("TM-P80 (42 column mode)"),
1438    vendor: Cow::Borrowed("Epson"),
1439    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1440    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1441      (0, Encoding::CP437),
1442      (1, Encoding::CP932),
1443      (2, Encoding::CP850),
1444      (3, Encoding::CP860),
1445      (4, Encoding::CP863),
1446      (5, Encoding::CP865),
1447      (6, Encoding::UNKNOWN),
1448      (7, Encoding::UNKNOWN),
1449      (8, Encoding::UNKNOWN),
1450      (11, Encoding::CP851),
1451      (12, Encoding::CP853),
1452      (13, Encoding::CP857),
1453      (14, Encoding::CP737),
1454      (15, Encoding::ISO_8859_7),
1455      (16, Encoding::CP1252),
1456      (17, Encoding::CP866),
1457      (18, Encoding::CP852),
1458      (19, Encoding::CP858),
1459      (20, Encoding::UNKNOWN),
1460      (21, Encoding::CP874),
1461      (22, Encoding::UNKNOWN),
1462      (23, Encoding::UNKNOWN),
1463      (24, Encoding::UNKNOWN),
1464      (25, Encoding::UNKNOWN),
1465      (26, Encoding::UNKNOWN),
1466      (30, Encoding::TCVN_3_1),
1467      (31, Encoding::TCVN_3_2),
1468      (32, Encoding::CP720),
1469      (33, Encoding::CP775),
1470      (34, Encoding::CP855),
1471      (35, Encoding::CP861),
1472      (36, Encoding::CP862),
1473      (37, Encoding::CP864),
1474      (38, Encoding::CP869),
1475      (39, Encoding::ISO_8859_2),
1476      (40, Encoding::ISO_8859_15),
1477      (41, Encoding::CP1098),
1478      (42, Encoding::CP774),
1479      (43, Encoding::CP772),
1480      (44, Encoding::CP1125),
1481      (45, Encoding::CP1250),
1482      (46, Encoding::CP1251),
1483      (47, Encoding::CP1253),
1484      (48, Encoding::CP1254),
1485      (49, Encoding::CP1255),
1486      (50, Encoding::CP1256),
1487      (51, Encoding::CP1257),
1488      (52, Encoding::CP1258),
1489      (53, Encoding::RK1048),
1490      (66, Encoding::UNKNOWN),
1491      (67, Encoding::UNKNOWN),
1492      (68, Encoding::UNKNOWN),
1493      (69, Encoding::UNKNOWN),
1494      (70, Encoding::UNKNOWN),
1495      (71, Encoding::UNKNOWN),
1496      (72, Encoding::UNKNOWN),
1497      (73, Encoding::UNKNOWN),
1498      (74, Encoding::UNKNOWN),
1499      (75, Encoding::UNKNOWN),
1500      (82, Encoding::UNKNOWN),
1501      (254, Encoding::UNKNOWN),
1502      (255, Encoding::UNKNOWN),
1503    ])),
1504    colors: Cow::Borrowed(IntMap::from_entries(&[
1505      (0, Color::Black),
1506    ])),
1507    fonts: Cow::Borrowed(IntMap::from_entries(&[
1508      (0, FontInfo { columns: 42 }),
1509      (1, FontInfo { columns: 60 }),
1510      (2, FontInfo { columns: 21 }),
1511    ])),
1512    media: Media { dpi: None, width: Some(Width { mm: 63.6, px: 546 }) },
1513};
1514
1515#[doc = "TM-T20II profile\n\nEpson TM-T20II profile"]
1516pub static TM_T20II: Profile = Profile {
1517    name: Cow::Borrowed("TM-T20II"),
1518    vendor: Cow::Borrowed("Epson"),
1519    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1520    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1521      (0, Encoding::CP437),
1522      (1, Encoding::CP932),
1523      (2, Encoding::CP850),
1524      (3, Encoding::CP860),
1525      (4, Encoding::CP863),
1526      (5, Encoding::CP865),
1527      (11, Encoding::CP851),
1528      (12, Encoding::CP853),
1529      (13, Encoding::CP857),
1530      (14, Encoding::CP737),
1531      (15, Encoding::ISO_8859_7),
1532      (16, Encoding::CP1252),
1533      (17, Encoding::CP866),
1534      (18, Encoding::CP852),
1535      (19, Encoding::CP858),
1536      (30, Encoding::TCVN_3_1),
1537      (31, Encoding::TCVN_3_2),
1538      (32, Encoding::CP720),
1539      (33, Encoding::CP775),
1540      (34, Encoding::CP855),
1541      (35, Encoding::CP861),
1542      (36, Encoding::CP862),
1543      (37, Encoding::CP864),
1544      (38, Encoding::CP869),
1545      (39, Encoding::ISO_8859_2),
1546      (40, Encoding::ISO_8859_15),
1547      (41, Encoding::CP1098),
1548      (44, Encoding::CP1125),
1549      (45, Encoding::CP1250),
1550      (46, Encoding::CP1251),
1551      (47, Encoding::CP1253),
1552      (48, Encoding::CP1254),
1553      (49, Encoding::CP1255),
1554      (50, Encoding::CP1256),
1555      (51, Encoding::CP1257),
1556      (52, Encoding::CP1258),
1557      (53, Encoding::RK1048),
1558      (255, Encoding::UNKNOWN),
1559    ])),
1560    colors: Cow::Borrowed(IntMap::from_entries(&[
1561      (0, Color::Black),
1562    ])),
1563    fonts: Cow::Borrowed(IntMap::from_entries(&[
1564      (0, FontInfo { columns: 48 }),
1565      (1, FontInfo { columns: 64 }),
1566    ])),
1567    media: Media { dpi: Some(203), width: Some(Width { mm: 72.0, px: 576 }) },
1568};
1569
1570#[doc = "TM-T20II (42 column mode) profile\n\nEpson TM-T20II profile (42 column mode)"]
1571pub static TM_T20II_42COL: Profile = Profile {
1572    name: Cow::Borrowed("TM-T20II (42 column mode)"),
1573    vendor: Cow::Borrowed("Epson"),
1574    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1575    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1576      (0, Encoding::CP437),
1577      (1, Encoding::CP932),
1578      (2, Encoding::CP850),
1579      (3, Encoding::CP860),
1580      (4, Encoding::CP863),
1581      (5, Encoding::CP865),
1582      (11, Encoding::CP851),
1583      (12, Encoding::CP853),
1584      (13, Encoding::CP857),
1585      (14, Encoding::CP737),
1586      (15, Encoding::ISO_8859_7),
1587      (16, Encoding::CP1252),
1588      (17, Encoding::CP866),
1589      (18, Encoding::CP852),
1590      (19, Encoding::CP858),
1591      (30, Encoding::TCVN_3_1),
1592      (31, Encoding::TCVN_3_2),
1593      (32, Encoding::CP720),
1594      (33, Encoding::CP775),
1595      (34, Encoding::CP855),
1596      (35, Encoding::CP861),
1597      (36, Encoding::CP862),
1598      (37, Encoding::CP864),
1599      (38, Encoding::CP869),
1600      (39, Encoding::ISO_8859_2),
1601      (40, Encoding::ISO_8859_15),
1602      (41, Encoding::CP1098),
1603      (44, Encoding::CP1125),
1604      (45, Encoding::CP1250),
1605      (46, Encoding::CP1251),
1606      (47, Encoding::CP1253),
1607      (48, Encoding::CP1254),
1608      (49, Encoding::CP1255),
1609      (50, Encoding::CP1256),
1610      (51, Encoding::CP1257),
1611      (52, Encoding::CP1258),
1612      (53, Encoding::RK1048),
1613      (255, Encoding::UNKNOWN),
1614    ])),
1615    colors: Cow::Borrowed(IntMap::from_entries(&[
1616      (0, Color::Black),
1617    ])),
1618    fonts: Cow::Borrowed(IntMap::from_entries(&[
1619      (0, FontInfo { columns: 42 }),
1620      (1, FontInfo { columns: 60 }),
1621    ])),
1622    media: Media { dpi: None, width: Some(Width { mm: 68.3, px: 546 }) },
1623};
1624
1625#[doc = "TM-T88II profile\n\nEpson TM-T88II profile. The specs where taken from a TM-T88IIP machine (I assume the P just stands for parallel port). The standart 80mm paper width version was used here. There is also a custom 58mm factory option. If you are using the custom version change media width to 50.8mm and 360px accordingly. This printer is discontinued by the Vendor and has similar feature support to the TM-T88III. The code page mapping is documented in the \"TM-T88II/T88III Technical Reference Guide\".\n"]
1626pub static TM_T88II: Profile = Profile {
1627    name: Cow::Borrowed("TM-T88II"),
1628    vendor: Cow::Borrowed("Epson"),
1629    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1630    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1631      (0, Encoding::CP437),
1632      (1, Encoding::CP932),
1633      (2, Encoding::CP850),
1634      (3, Encoding::CP860),
1635      (4, Encoding::CP863),
1636      (5, Encoding::CP865),
1637      (6, Encoding::UNKNOWN),
1638      (7, Encoding::UNKNOWN),
1639      (8, Encoding::UNKNOWN),
1640      (11, Encoding::UNKNOWN),
1641      (12, Encoding::UNKNOWN),
1642      (13, Encoding::CP857),
1643      (14, Encoding::CP737),
1644      (15, Encoding::ISO_8859_7),
1645      (16, Encoding::CP1252),
1646      (17, Encoding::CP866),
1647      (18, Encoding::CP852),
1648      (19, Encoding::UNKNOWN),
1649      (20, Encoding::UNKNOWN),
1650      (21, Encoding::CP874),
1651      (22, Encoding::UNKNOWN),
1652      (23, Encoding::UNKNOWN),
1653      (24, Encoding::UNKNOWN),
1654      (25, Encoding::UNKNOWN),
1655      (26, Encoding::UNKNOWN),
1656      (30, Encoding::TCVN_3_1),
1657      (31, Encoding::TCVN_3_2),
1658      (32, Encoding::UNKNOWN),
1659      (33, Encoding::CP775),
1660      (34, Encoding::CP855),
1661      (35, Encoding::CP861),
1662      (36, Encoding::CP862),
1663      (37, Encoding::CP864),
1664      (38, Encoding::CP869),
1665      (39, Encoding::ISO_8859_2),
1666      (40, Encoding::ISO_8859_15),
1667      (41, Encoding::UNKNOWN),
1668      (42, Encoding::CP774),
1669      (43, Encoding::CP772),
1670      (44, Encoding::CP1125),
1671      (45, Encoding::CP1250),
1672      (46, Encoding::CP1251),
1673      (47, Encoding::CP1253),
1674      (48, Encoding::CP1254),
1675      (49, Encoding::CP1255),
1676      (50, Encoding::CP1256),
1677      (51, Encoding::CP1257),
1678      (52, Encoding::CP1258),
1679      (53, Encoding::RK1048),
1680      (66, Encoding::UNKNOWN),
1681      (67, Encoding::UNKNOWN),
1682      (68, Encoding::UNKNOWN),
1683      (69, Encoding::UNKNOWN),
1684      (70, Encoding::UNKNOWN),
1685      (71, Encoding::UNKNOWN),
1686      (72, Encoding::UNKNOWN),
1687      (73, Encoding::UNKNOWN),
1688      (74, Encoding::UNKNOWN),
1689      (75, Encoding::UNKNOWN),
1690      (82, Encoding::UNKNOWN),
1691      (254, Encoding::UNKNOWN),
1692      (255, Encoding::UNKNOWN),
1693    ])),
1694    colors: Cow::Borrowed(IntMap::from_entries(&[
1695      (0, Color::Black),
1696    ])),
1697    fonts: Cow::Borrowed(IntMap::from_entries(&[
1698      (0, FontInfo { columns: 42 }),
1699      (1, FontInfo { columns: 56 }),
1700    ])),
1701    media: Media { dpi: Some(180), width: Some(Width { mm: 72.0, px: 512 }) },
1702};
1703
1704#[doc = "TM-T88III profile\n\nEpson TM-T88III profile. This printer has similar feature support to the TM-T88II. The code page mapping is documented in the \"TM-T88II/T88III Technical Reference Guide\".\n"]
1705pub static TM_T88III: Profile = Profile {
1706    name: Cow::Borrowed("TM-T88III"),
1707    vendor: Cow::Borrowed("Epson"),
1708    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1709    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1710      (0, Encoding::CP437),
1711      (1, Encoding::CP932),
1712      (2, Encoding::CP850),
1713      (3, Encoding::CP860),
1714      (4, Encoding::CP863),
1715      (5, Encoding::CP865),
1716      (6, Encoding::CP1251),
1717      (16, Encoding::CP1252),
1718      (17, Encoding::CP866),
1719      (18, Encoding::CP862),
1720      (19, Encoding::CP858),
1721      (255, Encoding::UNKNOWN),
1722    ])),
1723    colors: Cow::Borrowed(IntMap::from_entries(&[
1724      (0, Color::Black),
1725    ])),
1726    fonts: Cow::Borrowed(IntMap::from_entries(&[
1727      (0, FontInfo { columns: 42 }),
1728      (1, FontInfo { columns: 56 }),
1729    ])),
1730    media: Media { dpi: Some(180), width: Some(Width { mm: 80.0, px: 512 }) },
1731};
1732
1733#[doc = "TM-T88IV profile\n\nEpson TM-T88IV profile\n"]
1734pub static TM_T88IV: Profile = Profile {
1735    name: Cow::Borrowed("TM-T88IV"),
1736    vendor: Cow::Borrowed("Epson"),
1737    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1738    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1739      (0, Encoding::CP437),
1740      (1, Encoding::CP932),
1741      (2, Encoding::CP850),
1742      (3, Encoding::CP860),
1743      (4, Encoding::CP863),
1744      (5, Encoding::CP865),
1745      (16, Encoding::CP1252),
1746      (17, Encoding::CP866),
1747      (18, Encoding::CP852),
1748      (19, Encoding::CP858),
1749      (255, Encoding::UNKNOWN),
1750    ])),
1751    colors: Cow::Borrowed(IntMap::from_entries(&[
1752      (0, Color::Black),
1753    ])),
1754    fonts: Cow::Borrowed(IntMap::from_entries(&[
1755      (0, FontInfo { columns: 42 }),
1756      (1, FontInfo { columns: 56 }),
1757    ])),
1758    media: Media { dpi: Some(180), width: Some(Width { mm: 80.0, px: 512 }) },
1759};
1760
1761#[doc = "TM-T88IV South Asia profile\n\nEpson TM-T88IV profile (South Asia models)\n"]
1762pub static TM_T88IV_SA: Profile = Profile {
1763    name: Cow::Borrowed("TM-T88IV South Asia"),
1764    vendor: Cow::Borrowed("Epson"),
1765    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1766    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1767      (0, Encoding::CP437),
1768      (20, Encoding::UNKNOWN),
1769      (21, Encoding::CP874),
1770      (26, Encoding::UNKNOWN),
1771      (30, Encoding::TCVN_3_1),
1772      (31, Encoding::TCVN_3_2),
1773    ])),
1774    colors: Cow::Borrowed(IntMap::from_entries(&[
1775      (0, Color::Black),
1776    ])),
1777    fonts: Cow::Borrowed(IntMap::from_entries(&[
1778      (0, FontInfo { columns: 42 }),
1779      (1, FontInfo { columns: 56 }),
1780    ])),
1781    media: Media { dpi: Some(180), width: Some(Width { mm: 80.0, px: 512 }) },
1782};
1783
1784#[doc = "TM-T88V profile\n\nEpson TM-T88V profile\n"]
1785pub static TM_T88V: Profile = Profile {
1786    name: Cow::Borrowed("TM-T88V"),
1787    vendor: Cow::Borrowed("Epson"),
1788    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
1789    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1790      (0, Encoding::CP437),
1791      (1, Encoding::CP932),
1792      (2, Encoding::CP850),
1793      (3, Encoding::CP860),
1794      (4, Encoding::CP863),
1795      (5, Encoding::CP865),
1796      (11, Encoding::CP851),
1797      (12, Encoding::CP853),
1798      (13, Encoding::CP857),
1799      (14, Encoding::CP737),
1800      (15, Encoding::ISO_8859_7),
1801      (16, Encoding::CP1252),
1802      (17, Encoding::CP866),
1803      (18, Encoding::CP852),
1804      (19, Encoding::CP858),
1805      (30, Encoding::TCVN_3_1),
1806      (31, Encoding::TCVN_3_2),
1807      (32, Encoding::CP720),
1808      (33, Encoding::CP775),
1809      (34, Encoding::CP855),
1810      (35, Encoding::CP861),
1811      (36, Encoding::CP862),
1812      (37, Encoding::CP864),
1813      (38, Encoding::CP869),
1814      (39, Encoding::ISO_8859_2),
1815      (40, Encoding::ISO_8859_15),
1816      (41, Encoding::CP1098),
1817      (45, Encoding::CP1250),
1818      (46, Encoding::CP1251),
1819      (47, Encoding::CP1253),
1820      (48, Encoding::CP1254),
1821      (49, Encoding::CP1255),
1822      (50, Encoding::CP1256),
1823      (51, Encoding::CP1257),
1824      (52, Encoding::CP1258),
1825      (53, Encoding::RK1048),
1826      (255, Encoding::UNKNOWN),
1827    ])),
1828    colors: Cow::Borrowed(IntMap::from_entries(&[
1829      (0, Color::Black),
1830    ])),
1831    fonts: Cow::Borrowed(IntMap::from_entries(&[
1832      (0, FontInfo { columns: 42 }),
1833      (1, FontInfo { columns: 56 }),
1834    ])),
1835    media: Media { dpi: Some(180), width: Some(Width { mm: 80.0, px: 512 }) },
1836};
1837
1838#[doc = "TM-U220 profile\n\nTwo-color impact printer with 80mm output"]
1839pub static TM_U220: Profile = Profile {
1840    name: Cow::Borrowed("TM-U220"),
1841    vendor: Cow::Borrowed("Epson"),
1842    features: Features(FeaturesInner::empty().union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::PULSE_STANDARD)),
1843    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1844      (0, Encoding::CP437),
1845    ])),
1846    colors: Cow::Borrowed(IntMap::from_entries(&[
1847      (0, Color::Black),
1848      (1, Color::Alternate),
1849    ])),
1850    fonts: Cow::Borrowed(IntMap::from_entries(&[
1851      (0, FontInfo { columns: 42 }),
1852      (1, FontInfo { columns: 56 }),
1853    ])),
1854    media: Media { dpi: None, width: Some(Width { mm: 63.4, px: 400 }) },
1855};
1856
1857#[doc = "TM-U220B profile\n\nTwo-color impact printer with 76mm output"]
1858pub static TM_U220B: Profile = Profile {
1859    name: Cow::Borrowed("TM-U220B"),
1860    vendor: Cow::Borrowed("Epson"),
1861    features: Features(FeaturesInner::empty().union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PULSE_STANDARD)),
1862    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1863      (0, Encoding::CP437),
1864    ])),
1865    colors: Cow::Borrowed(IntMap::from_entries(&[
1866      (0, Color::Black),
1867      (1, Color::Alternate),
1868    ])),
1869    fonts: Cow::Borrowed(IntMap::from_entries(&[
1870      (0, FontInfo { columns: 42 }),
1871      (1, FontInfo { columns: 56 }),
1872    ])),
1873    media: Media { dpi: None, width: Some(Width { mm: 63.4, px: 400 }) },
1874};
1875
1876#[doc = "TSP600 Series profile\n\nStar TSP600 thermal printer series with ESC/POS emulation enabled"]
1877pub static TSP600: Profile = Profile {
1878    name: Cow::Borrowed("TSP600 Series"),
1879    vendor: Cow::Borrowed("Star Micronics"),
1880    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE).union(FeaturesInner::STAR_COMMANDS)),
1881    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1882      (0, Encoding::CP437),
1883      (1, Encoding::CP437),
1884      (2, Encoding::CP932),
1885      (3, Encoding::CP437),
1886      (4, Encoding::CP858),
1887      (5, Encoding::CP852),
1888      (6, Encoding::CP860),
1889      (7, Encoding::CP861),
1890      (8, Encoding::CP863),
1891      (9, Encoding::CP865),
1892      (10, Encoding::CP866),
1893      (11, Encoding::CP855),
1894      (12, Encoding::CP857),
1895      (13, Encoding::CP862),
1896      (14, Encoding::CP864),
1897      (15, Encoding::CP737),
1898      (16, Encoding::CP851),
1899      (17, Encoding::CP869),
1900      (18, Encoding::CP928),
1901      (19, Encoding::CP772),
1902      (20, Encoding::CP774),
1903      (21, Encoding::CP874),
1904      (32, Encoding::CP1252),
1905      (33, Encoding::CP1250),
1906      (34, Encoding::CP1251),
1907      (64, Encoding::CP3840),
1908      (65, Encoding::CP3841),
1909      (66, Encoding::CP3843),
1910      (67, Encoding::CP3844),
1911      (68, Encoding::CP3845),
1912      (69, Encoding::CP3846),
1913      (70, Encoding::CP3847),
1914      (71, Encoding::CP3848),
1915      (72, Encoding::CP1001),
1916      (73, Encoding::CP2001),
1917      (74, Encoding::CP3001),
1918      (75, Encoding::CP3002),
1919      (76, Encoding::CP3011),
1920      (77, Encoding::CP3012),
1921      (78, Encoding::CP3021),
1922      (79, Encoding::CP3041),
1923      (96, Encoding::UNKNOWN),
1924      (97, Encoding::UNKNOWN),
1925      (98, Encoding::UNKNOWN),
1926      (99, Encoding::UNKNOWN),
1927      (100, Encoding::UNKNOWN),
1928      (101, Encoding::UNKNOWN),
1929      (102, Encoding::UNKNOWN),
1930      (255, Encoding::UNKNOWN),
1931    ])),
1932    colors: Cow::Borrowed(IntMap::from_entries(&[
1933      (0, Color::Black),
1934    ])),
1935    fonts: Cow::Borrowed(IntMap::from_entries(&[
1936      (0, FontInfo { columns: 42 }),
1937      (1, FontInfo { columns: 56 }),
1938    ])),
1939    media: Media { dpi: Some(203), width: Some(Width { mm: 72.0, px: 576 }) },
1940};
1941
1942#[doc = "TUP500 Series profile\n\nStar TUP500 thermal printer series with ESC/POS emulation enabled"]
1943pub static TUP500: Profile = Profile {
1944    name: Cow::Borrowed("TUP500 Series"),
1945    vendor: Cow::Borrowed("Star Micronics"),
1946    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE).union(FeaturesInner::STAR_COMMANDS)),
1947    code_pages: Cow::Borrowed(IntMap::from_entries(&[
1948      (0, Encoding::CP437),
1949      (1, Encoding::CP437),
1950      (2, Encoding::CP932),
1951      (3, Encoding::CP437),
1952      (4, Encoding::CP858),
1953      (5, Encoding::CP852),
1954      (6, Encoding::CP860),
1955      (7, Encoding::CP861),
1956      (8, Encoding::CP863),
1957      (9, Encoding::CP865),
1958      (10, Encoding::CP866),
1959      (11, Encoding::CP855),
1960      (12, Encoding::CP857),
1961      (13, Encoding::CP862),
1962      (14, Encoding::CP864),
1963      (15, Encoding::CP737),
1964      (16, Encoding::CP851),
1965      (17, Encoding::CP869),
1966      (18, Encoding::CP928),
1967      (19, Encoding::CP772),
1968      (20, Encoding::CP774),
1969      (21, Encoding::CP874),
1970      (32, Encoding::CP1252),
1971      (33, Encoding::CP1250),
1972      (34, Encoding::CP1251),
1973      (64, Encoding::CP3840),
1974      (65, Encoding::CP3841),
1975      (66, Encoding::CP3843),
1976      (67, Encoding::CP3844),
1977      (68, Encoding::CP3845),
1978      (69, Encoding::CP3846),
1979      (70, Encoding::CP3847),
1980      (71, Encoding::CP3848),
1981      (72, Encoding::CP1001),
1982      (73, Encoding::CP2001),
1983      (74, Encoding::CP3001),
1984      (75, Encoding::CP3002),
1985      (76, Encoding::CP3011),
1986      (77, Encoding::CP3012),
1987      (78, Encoding::CP3021),
1988      (79, Encoding::CP3041),
1989      (96, Encoding::UNKNOWN),
1990      (97, Encoding::UNKNOWN),
1991      (98, Encoding::UNKNOWN),
1992      (99, Encoding::UNKNOWN),
1993      (100, Encoding::UNKNOWN),
1994      (101, Encoding::UNKNOWN),
1995      (102, Encoding::UNKNOWN),
1996      (255, Encoding::UNKNOWN),
1997    ])),
1998    colors: Cow::Borrowed(IntMap::from_entries(&[
1999      (0, Color::Black),
2000    ])),
2001    fonts: Cow::Borrowed(IntMap::from_entries(&[
2002      (0, FontInfo { columns: 42 }),
2003      (1, FontInfo { columns: 56 }),
2004    ])),
2005    media: Media { dpi: Some(203), width: Some(Width { mm: 80.0, px: 65535 }) },
2006};
2007
2008#[doc = "ZJ-5870 Thermal Receipt Printer profile\n\nESC/POS Profile for ZiJiang ZJ-5870 Thermal Receipt Printer, which may be branded AGPtEK or Esky, and identifies itself as a POS-58 Thermal Printer on selftest. This profile is suitable for alphanumberic character mode, but is untested on Chinese character mode. (Change modes by holding down feed button during power-on until the mode LED turns off, then release immediately.)\n"]
2009pub static ZJ_5870: Profile = Profile {
2010    name: Cow::Borrowed("ZJ-5870 Thermal Receipt Printer"),
2011    vendor: Cow::Borrowed("ZiJiang"),
2012    features: Features(FeaturesInner::empty().union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::PULSE_STANDARD)),
2013    code_pages: Cow::Borrowed(IntMap::from_entries(&[
2014      (0, Encoding::CP437),
2015      (1, Encoding::CP932),
2016      (2, Encoding::CP850),
2017      (3, Encoding::CP860),
2018      (4, Encoding::CP863),
2019      (5, Encoding::CP865),
2020      (16, Encoding::CP1252),
2021      (17, Encoding::CP866),
2022      (18, Encoding::CP852),
2023    ])),
2024    colors: Cow::Borrowed(IntMap::from_entries(&[
2025      (0, Color::Black),
2026    ])),
2027    fonts: Cow::Borrowed(IntMap::from_entries(&[
2028      (0, FontInfo { columns: 32 }),
2029    ])),
2030    media: Media { dpi: Some(203), width: Some(Width { mm: 48.0, px: 384 }) },
2031};
2032
2033#[doc = "Default profile\n\nDefault ESC/POS profile, suitable for standards-compliant or Epson-branded printers. This profile allows the use of standard ESC/POS features, and can encode a variety of code pages.\n"]
2034pub static DEFAULT: Profile = Profile {
2035    name: Cow::Borrowed("Default"),
2036    vendor: Cow::Borrowed("Generic"),
2037    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
2038    code_pages: Cow::Borrowed(IntMap::from_entries(&[
2039      (0, Encoding::CP437),
2040      (1, Encoding::CP932),
2041      (2, Encoding::CP850),
2042      (3, Encoding::CP860),
2043      (4, Encoding::CP863),
2044      (5, Encoding::CP865),
2045      (6, Encoding::UNKNOWN),
2046      (7, Encoding::UNKNOWN),
2047      (8, Encoding::UNKNOWN),
2048      (11, Encoding::CP851),
2049      (12, Encoding::CP853),
2050      (13, Encoding::CP857),
2051      (14, Encoding::CP737),
2052      (15, Encoding::ISO_8859_7),
2053      (16, Encoding::CP1252),
2054      (17, Encoding::CP866),
2055      (18, Encoding::CP852),
2056      (19, Encoding::CP858),
2057      (20, Encoding::UNKNOWN),
2058      (21, Encoding::CP874),
2059      (22, Encoding::UNKNOWN),
2060      (23, Encoding::UNKNOWN),
2061      (24, Encoding::UNKNOWN),
2062      (25, Encoding::UNKNOWN),
2063      (26, Encoding::UNKNOWN),
2064      (30, Encoding::TCVN_3_1),
2065      (31, Encoding::TCVN_3_2),
2066      (32, Encoding::CP720),
2067      (33, Encoding::CP775),
2068      (34, Encoding::CP855),
2069      (35, Encoding::CP861),
2070      (36, Encoding::CP862),
2071      (37, Encoding::CP864),
2072      (38, Encoding::CP869),
2073      (39, Encoding::ISO_8859_2),
2074      (40, Encoding::ISO_8859_15),
2075      (41, Encoding::CP1098),
2076      (42, Encoding::CP774),
2077      (43, Encoding::CP772),
2078      (44, Encoding::CP1125),
2079      (45, Encoding::CP1250),
2080      (46, Encoding::CP1251),
2081      (47, Encoding::CP1253),
2082      (48, Encoding::CP1254),
2083      (49, Encoding::CP1255),
2084      (50, Encoding::CP1256),
2085      (51, Encoding::CP1257),
2086      (52, Encoding::CP1258),
2087      (53, Encoding::RK1048),
2088      (66, Encoding::UNKNOWN),
2089      (67, Encoding::UNKNOWN),
2090      (68, Encoding::UNKNOWN),
2091      (69, Encoding::UNKNOWN),
2092      (70, Encoding::UNKNOWN),
2093      (71, Encoding::UNKNOWN),
2094      (72, Encoding::UNKNOWN),
2095      (73, Encoding::UNKNOWN),
2096      (74, Encoding::UNKNOWN),
2097      (75, Encoding::UNKNOWN),
2098      (82, Encoding::UNKNOWN),
2099      (254, Encoding::UNKNOWN),
2100      (255, Encoding::UNKNOWN),
2101    ])),
2102    colors: Cow::Borrowed(IntMap::from_entries(&[
2103      (0, Color::Black),
2104    ])),
2105    fonts: Cow::Borrowed(IntMap::from_entries(&[
2106      (0, FontInfo { columns: 42 }),
2107      (1, FontInfo { columns: 56 }),
2108    ])),
2109    media: Media { dpi: None, width: None },
2110};
2111
2112#[doc = "Star mcPrint2/mcPrint3 profile\n\nStar mcPrint2/mcPrint3 printers. Technical documentation is in the \"StarPRNT Command specifications Rev. 2.40\" document, which can be found online.\n"]
2113pub static MC_PRINT: Profile = Profile {
2114    name: Cow::Borrowed("Star mcPrint2/mcPrint3"),
2115    vendor: Cow::Borrowed("Star Micronics"),
2116    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE).union(FeaturesInner::STAR_COMMANDS)),
2117    code_pages: Cow::Borrowed(IntMap::from_entries(&[
2118      (0, Encoding::UNKNOWN),
2119      (1, Encoding::CP437),
2120      (2, Encoding::CP932),
2121      (3, Encoding::CP437),
2122      (4, Encoding::CP858),
2123      (5, Encoding::CP852),
2124      (6, Encoding::CP860),
2125      (7, Encoding::CP861),
2126      (8, Encoding::CP863),
2127      (9, Encoding::CP865),
2128      (10, Encoding::CP866),
2129      (11, Encoding::CP855),
2130      (12, Encoding::CP857),
2131      (13, Encoding::CP862),
2132      (14, Encoding::CP864),
2133      (15, Encoding::CP737),
2134      (16, Encoding::CP851),
2135      (17, Encoding::CP869),
2136      (18, Encoding::CP928),
2137      (19, Encoding::CP772),
2138      (20, Encoding::CP774),
2139      (21, Encoding::UNKNOWN),
2140      (32, Encoding::CP1252),
2141      (33, Encoding::CP1250),
2142      (34, Encoding::CP1251),
2143      (64, Encoding::CP3840),
2144      (65, Encoding::CP3841),
2145      (66, Encoding::CP3843),
2146      (67, Encoding::CP3844),
2147      (68, Encoding::CP3845),
2148      (69, Encoding::CP3846),
2149      (70, Encoding::CP3847),
2150      (71, Encoding::CP3848),
2151      (72, Encoding::CP1001),
2152      (73, Encoding::CP2001),
2153      (74, Encoding::CP3001),
2154      (75, Encoding::CP3002),
2155      (76, Encoding::CP3011),
2156      (77, Encoding::CP3012),
2157      (78, Encoding::CP3021),
2158      (79, Encoding::CP3041),
2159      (96, Encoding::UNKNOWN),
2160      (97, Encoding::UNKNOWN),
2161      (98, Encoding::UNKNOWN),
2162      (102, Encoding::UNKNOWN),
2163      (255, Encoding::UNKNOWN),
2164    ])),
2165    colors: Cow::Borrowed(IntMap::from_entries(&[
2166      (0, Color::Black),
2167    ])),
2168    fonts: Cow::Borrowed(IntMap::from_entries(&[
2169      (0, FontInfo { columns: 42 }),
2170      (1, FontInfo { columns: 56 }),
2171    ])),
2172    media: Media { dpi: None, width: None },
2173};
2174
2175#[doc = "Safe profile\n\nDefault \"safe\" ESC/POS profile, suitable for standards-compliant or Epson-branded printers. This profile is similar to the \"generic\" profile, but has a lot less codepages to avoid encoding errors.\n"]
2176pub static SAFE: Profile = Profile {
2177    name: Cow::Borrowed("Safe"),
2178    vendor: Cow::Borrowed("Generic"),
2179    features: Features(FeaturesInner::empty().union(FeaturesInner::BARCODE_A).union(FeaturesInner::BARCODE_B).union(FeaturesInner::BIT_IMAGE_COLUMN).union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::GRAPHICS).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PAPER_FULL_CUT).union(FeaturesInner::PAPER_PART_CUT).union(FeaturesInner::PDF417_CODE).union(FeaturesInner::PULSE_STANDARD).union(FeaturesInner::QR_CODE)),
2180    code_pages: Cow::Borrowed(IntMap::from_entries(&[
2181      (0, Encoding::CP437),
2182      (1, Encoding::CP932),
2183      (2, Encoding::CP850),
2184      (3, Encoding::CP860),
2185      (4, Encoding::CP863),
2186      (5, Encoding::CP865),
2187      (16, Encoding::CP1252),
2188      (17, Encoding::CP866),
2189      (18, Encoding::CP852),
2190      (19, Encoding::CP858),
2191      (255, Encoding::UNKNOWN),
2192    ])),
2193    colors: Cow::Borrowed(IntMap::from_entries(&[
2194      (0, Color::Black),
2195    ])),
2196    fonts: Cow::Borrowed(IntMap::from_entries(&[
2197      (0, FontInfo { columns: 42 }),
2198      (1, FontInfo { columns: 56 }),
2199    ])),
2200    media: Media { dpi: None, width: None },
2201};
2202
2203#[doc = "Simple profile\n\nA profile for use in printers with unknown or poor compatibility. This profile indicates that a small number of features are supported, so that commands are not sent a printer that is unlikely to understand them.\n"]
2204pub static SIMPLE: Profile = Profile {
2205    name: Cow::Borrowed("Simple"),
2206    vendor: Cow::Borrowed("Generic"),
2207    features: Features(FeaturesInner::empty().union(FeaturesInner::BIT_IMAGE_RASTER).union(FeaturesInner::HIGH_DENSITY).union(FeaturesInner::PULSE_STANDARD)),
2208    code_pages: Cow::Borrowed(IntMap::from_entries(&[
2209      (0, Encoding::CP437),
2210    ])),
2211    colors: Cow::Borrowed(IntMap::from_entries(&[
2212      (0, Color::Black),
2213    ])),
2214    fonts: Cow::Borrowed(IntMap::from_entries(&[
2215      (0, FontInfo { columns: 42 }),
2216      (1, FontInfo { columns: 56 }),
2217    ])),
2218    media: Media { dpi: None, width: None },
2219};
2220
2221/// A map from the name of each profile in the database to its [`Profile`].
2222pub static ALL_PROFILES: phf::Map<&'static str, &'static Profile<'static>> = ::phf::Map {
2223    key: 10121458955350035957,
2224    disps: &[
2225        (18, 26),
2226        (0, 8),
2227        (1, 2),
2228        (0, 2),
2229        (0, 10),
2230        (28, 17),
2231        (2, 0),
2232        (6, 11),
2233    ],
2234    entries: &[
2235        ("TM-P80", &TM_P80),
2236        ("CT-S651", &CT_S651),
2237        ("TH230Plus", &TH230_PLUS),
2238        ("TM-T88V", &TM_T88V),
2239        ("simple", &SIMPLE),
2240        ("KR-306", &KR_306),
2241        ("TM-T88IV", &TM_T88IV),
2242        ("TSP600", &TSP600),
2243        ("TM-T88III", &TM_T88III),
2244        ("TM-P80-42col", &TM_P80_42COL),
2245        ("TM-U220", &TM_U220),
2246        ("SRP-S300", &SRP_S300),
2247        ("RP-F10-58mm", &RP_F10_58MM),
2248        ("safe", &SAFE),
2249        ("TM-L90", &TM_L90),
2250        ("POS-5890", &POS_5890),
2251        ("TEP-200M", &TEP_200M),
2252        ("ZJ-5870", &ZJ_5870),
2253        ("P822D", &P822D),
2254        ("TM-T88II", &TM_T88II),
2255        ("AF-240", &AF_240),
2256        ("default", &DEFAULT),
2257        ("RP326", &RP326),
2258        ("TM-T88IV-SA", &TM_T88IV_SA),
2259        ("RP-F10-80mm", &RP_F10_80MM),
2260        ("NT-80-V-UL", &NT_80_V_UL),
2261        ("TUP500", &TUP500),
2262        ("OCD-300", &OCD_300),
2263        ("NT-5890K", &NT_5890K),
2264        ("ITPP047", &ITPP047),
2265        ("TM-U220B", &TM_U220B),
2266        ("TM-T20II", &TM_T20II),
2267        ("SP2000", &SP2000),
2268        ("mcPrint", &MC_PRINT),
2269        ("OCD-100", &OCD_100),
2270        ("T-1", &T_1),
2271        ("Sunmi-V2", &SUNMI_V2),
2272        ("TM-T20II-42col", &TM_T20II_42COL),
2273        ("TH230", &TH230),
2274    ],
2275};