1use crate::error::Error;
2use crate::generators::CodeGen;
3use std::fs::File;
4use std::io::Write;
5
6pub struct ExceptionsGen {}
9
10impl ExceptionsGen {
11 pub fn new() -> Self {
13 Self {}
14 }
15}
16
17impl Default for ExceptionsGen {
18 fn default() -> Self {
19 Self::new()
20 }
21}
22
23impl CodeGen for ExceptionsGen {
24 fn generate_code(&mut self, file: &mut File) -> Result<(), Error> {
25 writeln!(
26 file,
27 "static EXCEPTIONS: [(Codepoints, DerivedPropertyValue); 41] = [",
28 )?;
29 writeln!(
30 file,
31 "\t(Codepoints::Single(0x00B7), DerivedPropertyValue::ContextO),"
32 )?;
33
34 writeln!(
35 file,
36 "\t(Codepoints::Single(0x00DF), DerivedPropertyValue::PValid),"
37 )?;
38 writeln!(
39 file,
40 "\t(Codepoints::Single(0x0375), DerivedPropertyValue::ContextO),"
41 )?;
42 writeln!(
43 file,
44 "\t(Codepoints::Single(0x03C2), DerivedPropertyValue::PValid),"
45 )?;
46 writeln!(
47 file,
48 "\t(Codepoints::Single(0x05F3), DerivedPropertyValue::ContextO),"
49 )?;
50 writeln!(
51 file,
52 "\t(Codepoints::Single(0x05F4), DerivedPropertyValue::ContextO),"
53 )?;
54 writeln!(
55 file,
56 "\t(Codepoints::Single(0x0640), DerivedPropertyValue::Disallowed),"
57 )?;
58 writeln!(
59 file,
60 "\t(Codepoints::Single(0x0660), DerivedPropertyValue::ContextO),"
61 )?;
62 writeln!(
63 file,
64 "\t(Codepoints::Single(0x0661), DerivedPropertyValue::ContextO),"
65 )?;
66 writeln!(
67 file,
68 "\t(Codepoints::Single(0x0662), DerivedPropertyValue::ContextO),"
69 )?;
70 writeln!(
71 file,
72 "\t(Codepoints::Single(0x0663), DerivedPropertyValue::ContextO),"
73 )?;
74 writeln!(
75 file,
76 "\t(Codepoints::Single(0x0664), DerivedPropertyValue::ContextO),"
77 )?;
78 writeln!(
79 file,
80 "\t(Codepoints::Single(0x0665), DerivedPropertyValue::ContextO),"
81 )?;
82 writeln!(
83 file,
84 "\t(Codepoints::Single(0x0666), DerivedPropertyValue::ContextO),"
85 )?;
86 writeln!(
87 file,
88 "\t(Codepoints::Single(0x0667), DerivedPropertyValue::ContextO),"
89 )?;
90 writeln!(
91 file,
92 "\t(Codepoints::Single(0x0668), DerivedPropertyValue::ContextO),"
93 )?;
94 writeln!(
95 file,
96 "\t(Codepoints::Single(0x0669), DerivedPropertyValue::ContextO),"
97 )?;
98 writeln!(
99 file,
100 "\t(Codepoints::Single(0x06F0), DerivedPropertyValue::ContextO),"
101 )?;
102 writeln!(
103 file,
104 "\t(Codepoints::Single(0x06F1), DerivedPropertyValue::ContextO),"
105 )?;
106 writeln!(
107 file,
108 "\t(Codepoints::Single(0x06F2), DerivedPropertyValue::ContextO),"
109 )?;
110 writeln!(
111 file,
112 "\t(Codepoints::Single(0x06F3), DerivedPropertyValue::ContextO),"
113 )?;
114 writeln!(
115 file,
116 "\t(Codepoints::Single(0x06F4), DerivedPropertyValue::ContextO),"
117 )?;
118 writeln!(
119 file,
120 "\t(Codepoints::Single(0x06F5), DerivedPropertyValue::ContextO),"
121 )?;
122 writeln!(
123 file,
124 "\t(Codepoints::Single(0x06F6), DerivedPropertyValue::ContextO),"
125 )?;
126 writeln!(
127 file,
128 "\t(Codepoints::Single(0x06F7), DerivedPropertyValue::ContextO),"
129 )?;
130 writeln!(
131 file,
132 "\t(Codepoints::Single(0x06F8), DerivedPropertyValue::ContextO),"
133 )?;
134 writeln!(
135 file,
136 "\t(Codepoints::Single(0x06F9), DerivedPropertyValue::ContextO),"
137 )?;
138 writeln!(
139 file,
140 "\t(Codepoints::Single(0x06FD), DerivedPropertyValue::PValid),"
141 )?;
142 writeln!(
143 file,
144 "\t(Codepoints::Single(0x06FE), DerivedPropertyValue::PValid),"
145 )?;
146 writeln!(
147 file,
148 "\t(Codepoints::Single(0x07FA), DerivedPropertyValue::Disallowed),"
149 )?;
150 writeln!(
151 file,
152 "\t(Codepoints::Single(0x0F0B), DerivedPropertyValue::PValid),"
153 )?;
154 writeln!(
155 file,
156 "\t(Codepoints::Single(0x3007), DerivedPropertyValue::PValid),"
157 )?;
158 writeln!(
159 file,
160 "\t(Codepoints::Single(0x302E), DerivedPropertyValue::Disallowed),"
161 )?;
162 writeln!(
163 file,
164 "\t(Codepoints::Single(0x302F), DerivedPropertyValue::Disallowed),"
165 )?;
166 writeln!(
167 file,
168 "\t(Codepoints::Single(0x3031), DerivedPropertyValue::Disallowed),"
169 )?;
170 writeln!(
171 file,
172 "\t(Codepoints::Single(0x3032), DerivedPropertyValue::Disallowed),"
173 )?;
174 writeln!(
175 file,
176 "\t(Codepoints::Single(0x3033), DerivedPropertyValue::Disallowed),"
177 )?;
178 writeln!(
179 file,
180 "\t(Codepoints::Single(0x3034), DerivedPropertyValue::Disallowed),"
181 )?;
182 writeln!(
183 file,
184 "\t(Codepoints::Single(0x3035), DerivedPropertyValue::Disallowed),"
185 )?;
186 writeln!(
187 file,
188 "\t(Codepoints::Single(0x303B), DerivedPropertyValue::Disallowed),"
189 )?;
190 writeln!(
191 file,
192 "\t(Codepoints::Single(0x30FB), DerivedPropertyValue::ContextO),"
193 )?;
194
195 writeln!(file, "];")?;
196 Ok(writeln!(file)?)
197 }
198}