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