1use std::{error, fmt};
6#[doc = "Decoder Error"]
7#[derive(Debug, PartialEq, Eq)]
8#[allow(clippy::upper_case_acronyms)]
9pub enum Error {
10 StreamExpected(usize),
11 LimitReached(usize),
12 ImageOperandsUnknown(usize, spirv::Word),
13 FPFastMathModeUnknown(usize, spirv::Word),
14 SelectionControlUnknown(usize, spirv::Word),
15 LoopControlUnknown(usize, spirv::Word),
16 FunctionControlUnknown(usize, spirv::Word),
17 MemorySemanticsUnknown(usize, spirv::Word),
18 MemoryAccessUnknown(usize, spirv::Word),
19 KernelProfilingInfoUnknown(usize, spirv::Word),
20 RayFlagsUnknown(usize, spirv::Word),
21 FragmentShadingRateUnknown(usize, spirv::Word),
22 RawAccessChainOperandsUnknown(usize, spirv::Word),
23 SourceLanguageUnknown(usize, spirv::Word),
24 ExecutionModelUnknown(usize, spirv::Word),
25 AddressingModelUnknown(usize, spirv::Word),
26 MemoryModelUnknown(usize, spirv::Word),
27 ExecutionModeUnknown(usize, spirv::Word),
28 StorageClassUnknown(usize, spirv::Word),
29 DimUnknown(usize, spirv::Word),
30 SamplerAddressingModeUnknown(usize, spirv::Word),
31 SamplerFilterModeUnknown(usize, spirv::Word),
32 ImageFormatUnknown(usize, spirv::Word),
33 ImageChannelOrderUnknown(usize, spirv::Word),
34 ImageChannelDataTypeUnknown(usize, spirv::Word),
35 FPRoundingModeUnknown(usize, spirv::Word),
36 FPDenormModeUnknown(usize, spirv::Word),
37 QuantizationModesUnknown(usize, spirv::Word),
38 FPOperationModeUnknown(usize, spirv::Word),
39 OverflowModesUnknown(usize, spirv::Word),
40 LinkageTypeUnknown(usize, spirv::Word),
41 AccessQualifierUnknown(usize, spirv::Word),
42 HostAccessQualifierUnknown(usize, spirv::Word),
43 FunctionParameterAttributeUnknown(usize, spirv::Word),
44 DecorationUnknown(usize, spirv::Word),
45 BuiltInUnknown(usize, spirv::Word),
46 ScopeUnknown(usize, spirv::Word),
47 GroupOperationUnknown(usize, spirv::Word),
48 KernelEnqueueFlagsUnknown(usize, spirv::Word),
49 CapabilityUnknown(usize, spirv::Word),
50 RayQueryIntersectionUnknown(usize, spirv::Word),
51 RayQueryCommittedIntersectionTypeUnknown(usize, spirv::Word),
52 RayQueryCandidateIntersectionTypeUnknown(usize, spirv::Word),
53 PackedVectorFormatUnknown(usize, spirv::Word),
54 CooperativeMatrixOperandsUnknown(usize, spirv::Word),
55 CooperativeMatrixLayoutUnknown(usize, spirv::Word),
56 CooperativeMatrixUseUnknown(usize, spirv::Word),
57 CooperativeMatrixReduceUnknown(usize, spirv::Word),
58 TensorClampModeUnknown(usize, spirv::Word),
59 TensorAddressingOperandsUnknown(usize, spirv::Word),
60 InitializationModeQualifierUnknown(usize, spirv::Word),
61 LoadCacheControlUnknown(usize, spirv::Word),
62 StoreCacheControlUnknown(usize, spirv::Word),
63 NamedMaximumNumberOfRegistersUnknown(usize, spirv::Word),
64 MatrixMultiplyAccumulateOperandsUnknown(usize, spirv::Word),
65 FPEncodingUnknown(usize, spirv::Word),
66 CooperativeVectorMatrixLayoutUnknown(usize, spirv::Word),
67 ComponentTypeUnknown(usize, spirv::Word),
68 TensorOperandsUnknown(usize, spirv::Word),
69 #[doc = r"Failed to decode a string."]
70 #[doc = r""]
71 #[doc = r"For structured error handling, the second element could be"]
72 #[doc = r"`string::FromUtf8Error`, but the will prohibit the compiler"]
73 #[doc = r"from generating `PartialEq` for this enum."]
74 DecodeStringFailed(usize, String),
75}
76impl fmt::Display for Error {
77 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
78 match *self {
79 Error::StreamExpected(index) => {
80 write!(f, "expected more bytes in the stream at index {}", index)
81 }
82 Error::LimitReached(index) => write!(f, "reached word limit at index {}", index),
83 Error::ImageOperandsUnknown(index, word) => write!(
84 f,
85 "unknown value {} for operand kind ImageOperands at index {}",
86 word, index
87 ),
88 Error::FPFastMathModeUnknown(index, word) => write!(
89 f,
90 "unknown value {} for operand kind FPFastMathMode at index {}",
91 word, index
92 ),
93 Error::SelectionControlUnknown(index, word) => write!(
94 f,
95 "unknown value {} for operand kind SelectionControl at index {}",
96 word, index
97 ),
98 Error::LoopControlUnknown(index, word) => write!(
99 f,
100 "unknown value {} for operand kind LoopControl at index {}",
101 word, index
102 ),
103 Error::FunctionControlUnknown(index, word) => write!(
104 f,
105 "unknown value {} for operand kind FunctionControl at index {}",
106 word, index
107 ),
108 Error::MemorySemanticsUnknown(index, word) => write!(
109 f,
110 "unknown value {} for operand kind MemorySemantics at index {}",
111 word, index
112 ),
113 Error::MemoryAccessUnknown(index, word) => write!(
114 f,
115 "unknown value {} for operand kind MemoryAccess at index {}",
116 word, index
117 ),
118 Error::KernelProfilingInfoUnknown(index, word) => write!(
119 f,
120 "unknown value {} for operand kind KernelProfilingInfo at index {}",
121 word, index
122 ),
123 Error::RayFlagsUnknown(index, word) => write!(
124 f,
125 "unknown value {} for operand kind RayFlags at index {}",
126 word, index
127 ),
128 Error::FragmentShadingRateUnknown(index, word) => write!(
129 f,
130 "unknown value {} for operand kind FragmentShadingRate at index {}",
131 word, index
132 ),
133 Error::RawAccessChainOperandsUnknown(index, word) => write!(
134 f,
135 "unknown value {} for operand kind RawAccessChainOperands at index {}",
136 word, index
137 ),
138 Error::SourceLanguageUnknown(index, word) => write!(
139 f,
140 "unknown value {} for operand kind SourceLanguage at index {}",
141 word, index
142 ),
143 Error::ExecutionModelUnknown(index, word) => write!(
144 f,
145 "unknown value {} for operand kind ExecutionModel at index {}",
146 word, index
147 ),
148 Error::AddressingModelUnknown(index, word) => write!(
149 f,
150 "unknown value {} for operand kind AddressingModel at index {}",
151 word, index
152 ),
153 Error::MemoryModelUnknown(index, word) => write!(
154 f,
155 "unknown value {} for operand kind MemoryModel at index {}",
156 word, index
157 ),
158 Error::ExecutionModeUnknown(index, word) => write!(
159 f,
160 "unknown value {} for operand kind ExecutionMode at index {}",
161 word, index
162 ),
163 Error::StorageClassUnknown(index, word) => write!(
164 f,
165 "unknown value {} for operand kind StorageClass at index {}",
166 word, index
167 ),
168 Error::DimUnknown(index, word) => write!(
169 f,
170 "unknown value {} for operand kind Dim at index {}",
171 word, index
172 ),
173 Error::SamplerAddressingModeUnknown(index, word) => write!(
174 f,
175 "unknown value {} for operand kind SamplerAddressingMode at index {}",
176 word, index
177 ),
178 Error::SamplerFilterModeUnknown(index, word) => write!(
179 f,
180 "unknown value {} for operand kind SamplerFilterMode at index {}",
181 word, index
182 ),
183 Error::ImageFormatUnknown(index, word) => write!(
184 f,
185 "unknown value {} for operand kind ImageFormat at index {}",
186 word, index
187 ),
188 Error::ImageChannelOrderUnknown(index, word) => write!(
189 f,
190 "unknown value {} for operand kind ImageChannelOrder at index {}",
191 word, index
192 ),
193 Error::ImageChannelDataTypeUnknown(index, word) => write!(
194 f,
195 "unknown value {} for operand kind ImageChannelDataType at index {}",
196 word, index
197 ),
198 Error::FPRoundingModeUnknown(index, word) => write!(
199 f,
200 "unknown value {} for operand kind FPRoundingMode at index {}",
201 word, index
202 ),
203 Error::FPDenormModeUnknown(index, word) => write!(
204 f,
205 "unknown value {} for operand kind FPDenormMode at index {}",
206 word, index
207 ),
208 Error::QuantizationModesUnknown(index, word) => write!(
209 f,
210 "unknown value {} for operand kind QuantizationModes at index {}",
211 word, index
212 ),
213 Error::FPOperationModeUnknown(index, word) => write!(
214 f,
215 "unknown value {} for operand kind FPOperationMode at index {}",
216 word, index
217 ),
218 Error::OverflowModesUnknown(index, word) => write!(
219 f,
220 "unknown value {} for operand kind OverflowModes at index {}",
221 word, index
222 ),
223 Error::LinkageTypeUnknown(index, word) => write!(
224 f,
225 "unknown value {} for operand kind LinkageType at index {}",
226 word, index
227 ),
228 Error::AccessQualifierUnknown(index, word) => write!(
229 f,
230 "unknown value {} for operand kind AccessQualifier at index {}",
231 word, index
232 ),
233 Error::HostAccessQualifierUnknown(index, word) => write!(
234 f,
235 "unknown value {} for operand kind HostAccessQualifier at index {}",
236 word, index
237 ),
238 Error::FunctionParameterAttributeUnknown(index, word) => write!(
239 f,
240 "unknown value {} for operand kind FunctionParameterAttribute at index {}",
241 word, index
242 ),
243 Error::DecorationUnknown(index, word) => write!(
244 f,
245 "unknown value {} for operand kind Decoration at index {}",
246 word, index
247 ),
248 Error::BuiltInUnknown(index, word) => write!(
249 f,
250 "unknown value {} for operand kind BuiltIn at index {}",
251 word, index
252 ),
253 Error::ScopeUnknown(index, word) => write!(
254 f,
255 "unknown value {} for operand kind Scope at index {}",
256 word, index
257 ),
258 Error::GroupOperationUnknown(index, word) => write!(
259 f,
260 "unknown value {} for operand kind GroupOperation at index {}",
261 word, index
262 ),
263 Error::KernelEnqueueFlagsUnknown(index, word) => write!(
264 f,
265 "unknown value {} for operand kind KernelEnqueueFlags at index {}",
266 word, index
267 ),
268 Error::CapabilityUnknown(index, word) => write!(
269 f,
270 "unknown value {} for operand kind Capability at index {}",
271 word, index
272 ),
273 Error::RayQueryIntersectionUnknown(index, word) => write!(
274 f,
275 "unknown value {} for operand kind RayQueryIntersection at index {}",
276 word, index
277 ),
278 Error::RayQueryCommittedIntersectionTypeUnknown(index, word) => write!(
279 f,
280 "unknown value {} for operand kind RayQueryCommittedIntersectionType at index {}",
281 word, index
282 ),
283 Error::RayQueryCandidateIntersectionTypeUnknown(index, word) => write!(
284 f,
285 "unknown value {} for operand kind RayQueryCandidateIntersectionType at index {}",
286 word, index
287 ),
288 Error::PackedVectorFormatUnknown(index, word) => write!(
289 f,
290 "unknown value {} for operand kind PackedVectorFormat at index {}",
291 word, index
292 ),
293 Error::CooperativeMatrixOperandsUnknown(index, word) => write!(
294 f,
295 "unknown value {} for operand kind CooperativeMatrixOperands at index {}",
296 word, index
297 ),
298 Error::CooperativeMatrixLayoutUnknown(index, word) => write!(
299 f,
300 "unknown value {} for operand kind CooperativeMatrixLayout at index {}",
301 word, index
302 ),
303 Error::CooperativeMatrixUseUnknown(index, word) => write!(
304 f,
305 "unknown value {} for operand kind CooperativeMatrixUse at index {}",
306 word, index
307 ),
308 Error::CooperativeMatrixReduceUnknown(index, word) => write!(
309 f,
310 "unknown value {} for operand kind CooperativeMatrixReduce at index {}",
311 word, index
312 ),
313 Error::TensorClampModeUnknown(index, word) => write!(
314 f,
315 "unknown value {} for operand kind TensorClampMode at index {}",
316 word, index
317 ),
318 Error::TensorAddressingOperandsUnknown(index, word) => write!(
319 f,
320 "unknown value {} for operand kind TensorAddressingOperands at index {}",
321 word, index
322 ),
323 Error::InitializationModeQualifierUnknown(index, word) => write!(
324 f,
325 "unknown value {} for operand kind InitializationModeQualifier at index {}",
326 word, index
327 ),
328 Error::LoadCacheControlUnknown(index, word) => write!(
329 f,
330 "unknown value {} for operand kind LoadCacheControl at index {}",
331 word, index
332 ),
333 Error::StoreCacheControlUnknown(index, word) => write!(
334 f,
335 "unknown value {} for operand kind StoreCacheControl at index {}",
336 word, index
337 ),
338 Error::NamedMaximumNumberOfRegistersUnknown(index, word) => write!(
339 f,
340 "unknown value {} for operand kind NamedMaximumNumberOfRegisters at index {}",
341 word, index
342 ),
343 Error::MatrixMultiplyAccumulateOperandsUnknown(index, word) => write!(
344 f,
345 "unknown value {} for operand kind MatrixMultiplyAccumulateOperands at index {}",
346 word, index
347 ),
348 Error::FPEncodingUnknown(index, word) => write!(
349 f,
350 "unknown value {} for operand kind FPEncoding at index {}",
351 word, index
352 ),
353 Error::CooperativeVectorMatrixLayoutUnknown(index, word) => write!(
354 f,
355 "unknown value {} for operand kind CooperativeVectorMatrixLayout at index {}",
356 word, index
357 ),
358 Error::ComponentTypeUnknown(index, word) => write!(
359 f,
360 "unknown value {} for operand kind ComponentType at index {}",
361 word, index
362 ),
363 Error::TensorOperandsUnknown(index, word) => write!(
364 f,
365 "unknown value {} for operand kind TensorOperands at index {}",
366 word, index
367 ),
368 Error::DecodeStringFailed(index, ref e) => {
369 write!(f, "cannot decode string at index {}: {}", index, e)
370 }
371 }
372 }
373}
374impl error::Error for Error {}