1 + | // Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2 + |
|
3 + | /// Error type for the `OperationWithDefaults` operation.
|
4 + | /// Each variant represents an error that can occur for the `OperationWithDefaults` operation.
|
5 + | #[derive(::std::fmt::Debug)]
|
6 + | pub enum OperationWithDefaultsError {
|
7 + | /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
|
8 + | ValidationException(crate::error::ValidationException),
|
9 + | }
|
10 + | impl ::std::fmt::Display for OperationWithDefaultsError {
|
11 + | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
12 + | match &self {
|
13 + | OperationWithDefaultsError::ValidationException(_inner) => _inner.fmt(f),
|
14 + | }
|
15 + | }
|
16 + | }
|
17 + | impl OperationWithDefaultsError {
|
18 + | /// Returns `true` if the error kind is `OperationWithDefaultsError::ValidationException`.
|
19 + | pub fn is_validation_exception(&self) -> bool {
|
20 + | matches!(&self, OperationWithDefaultsError::ValidationException(_))
|
21 + | }
|
22 + | /// Returns the error name string by matching the correct variant.
|
23 + | pub fn name(&self) -> &'static str {
|
24 + | match &self {
|
25 + | OperationWithDefaultsError::ValidationException(_inner) => _inner.name(),
|
26 + | }
|
27 + | }
|
28 + | }
|
29 + | impl ::std::error::Error for OperationWithDefaultsError {
|
30 + | fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
|
31 + | match &self {
|
32 + | OperationWithDefaultsError::ValidationException(_inner) => Some(_inner),
|
33 + | }
|
34 + | }
|
35 + | }
|
36 + | impl ::std::convert::From<crate::error::ValidationException>
|
37 + | for crate::error::OperationWithDefaultsError
|
38 + | {
|
39 + | fn from(
|
40 + | variant: crate::error::ValidationException,
|
41 + | ) -> crate::error::OperationWithDefaultsError {
|
42 + | Self::ValidationException(variant)
|
43 + | }
|
44 + | }
|
45 + |
|
46 + | /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
|
47 + | #[derive(
|
48 + | ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
|
49 + | )]
|
50 + | pub struct ValidationException {
|
51 + | /// A summary of the validation failure.
|
52 + | pub message: ::std::string::String,
|
53 + | /// A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.
|
54 + | pub field_list: ::std::option::Option<::std::vec::Vec<crate::model::ValidationExceptionField>>,
|
55 + | }
|
56 + | impl ValidationException {
|
57 + | /// A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.
|
58 + | pub fn field_list(&self) -> ::std::option::Option<&[crate::model::ValidationExceptionField]> {
|
59 + | self.field_list.as_deref()
|
60 + | }
|
61 + | }
|
62 + | impl ValidationException {
|
63 + | /// Returns the error message.
|
64 + | pub fn message(&self) -> &str {
|
65 + | &self.message
|
66 + | }
|
67 + | #[doc(hidden)]
|
68 + | /// Returns the error name.
|
69 + | pub fn name(&self) -> &'static str {
|
70 + | "ValidationException"
|
71 + | }
|
72 + | }
|
73 + | impl ::std::fmt::Display for ValidationException {
|
74 + | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
75 + | ::std::write!(f, "ValidationException")?;
|
76 + | {
|
77 + | ::std::write!(f, ": {}", &self.message)?;
|
78 + | }
|
79 + | Ok(())
|
80 + | }
|
81 + | }
|
82 + | impl ::std::error::Error for ValidationException {}
|
83 + | impl ValidationException {
|
84 + | /// Creates a new builder-style object to manufacture [`ValidationException`](crate::error::ValidationException).
|
85 + | pub fn builder() -> crate::error::validation_exception::Builder {
|
86 + | crate::error::validation_exception::Builder::default()
|
87 + | }
|
88 + | }
|
89 + |
|
90 + | /// Error type for the `GreetingWithErrors` operation.
|
91 + | /// Each variant represents an error that can occur for the `GreetingWithErrors` operation.
|
92 + | #[derive(::std::fmt::Debug)]
|
93 + | pub enum GreetingWithErrorsError {
|
94 + | /// This error is thrown when an invalid greeting value is provided.
|
95 + | InvalidGreeting(crate::error::InvalidGreeting),
|
96 + | /// This error is thrown when a request is invalid.
|
97 + | ComplexError(crate::error::ComplexError),
|
98 + | }
|
99 + | impl ::std::fmt::Display for GreetingWithErrorsError {
|
100 + | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
101 + | match &self {
|
102 + | GreetingWithErrorsError::InvalidGreeting(_inner) => _inner.fmt(f),
|
103 + | GreetingWithErrorsError::ComplexError(_inner) => _inner.fmt(f),
|
104 + | }
|
105 + | }
|
106 + | }
|
107 + | impl GreetingWithErrorsError {
|
108 + | /// Returns `true` if the error kind is `GreetingWithErrorsError::InvalidGreeting`.
|
109 + | pub fn is_invalid_greeting(&self) -> bool {
|
110 + | matches!(&self, GreetingWithErrorsError::InvalidGreeting(_))
|
111 + | }
|
112 + | /// Returns `true` if the error kind is `GreetingWithErrorsError::ComplexError`.
|
113 + | pub fn is_complex_error(&self) -> bool {
|
114 + | matches!(&self, GreetingWithErrorsError::ComplexError(_))
|
115 + | }
|
116 + | /// Returns the error name string by matching the correct variant.
|
117 + | pub fn name(&self) -> &'static str {
|
118 + | match &self {
|
119 + | GreetingWithErrorsError::InvalidGreeting(_inner) => _inner.name(),
|
120 + | GreetingWithErrorsError::ComplexError(_inner) => _inner.name(),
|
121 + | }
|
122 + | }
|
123 + | }
|
124 + | impl ::std::error::Error for GreetingWithErrorsError {
|
125 + | fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
|
126 + | match &self {
|
127 + | GreetingWithErrorsError::InvalidGreeting(_inner) => Some(_inner),
|
128 + | GreetingWithErrorsError::ComplexError(_inner) => Some(_inner),
|
129 + | }
|
130 + | }
|
131 + | }
|
132 + | impl ::std::convert::From<crate::error::InvalidGreeting> for crate::error::GreetingWithErrorsError {
|
133 + | fn from(variant: crate::error::InvalidGreeting) -> crate::error::GreetingWithErrorsError {
|
134 + | Self::InvalidGreeting(variant)
|
135 + | }
|
136 + | }
|
137 + | impl ::std::convert::From<crate::error::ComplexError> for crate::error::GreetingWithErrorsError {
|
138 + | fn from(variant: crate::error::ComplexError) -> crate::error::GreetingWithErrorsError {
|
139 + | Self::ComplexError(variant)
|
140 + | }
|
141 + | }
|
142 + |
|
143 + | /// This error is thrown when a request is invalid.
|
144 + | #[derive(
|
145 + | ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
|
146 + | )]
|
147 + | pub struct ComplexError {
|
148 + | #[allow(missing_docs)] // documentation missing in model
|
149 + | pub top_level: ::std::option::Option<::std::string::String>,
|
150 + | #[allow(missing_docs)] // documentation missing in model
|
151 + | pub nested: ::std::option::Option<crate::model::ComplexNestedErrorData>,
|
152 + | }
|
153 + | impl ComplexError {
|
154 + | #[allow(missing_docs)] // documentation missing in model
|
155 + | pub fn top_level(&self) -> ::std::option::Option<&str> {
|
156 + | self.top_level.as_deref()
|
157 + | }
|
158 + | #[allow(missing_docs)] // documentation missing in model
|
159 + | pub fn nested(&self) -> ::std::option::Option<&crate::model::ComplexNestedErrorData> {
|
160 + | self.nested.as_ref()
|
161 + | }
|
162 + | }
|
163 + | impl ComplexError {
|
164 + | #[doc(hidden)]
|
165 + | /// Returns the error name.
|
166 + | pub fn name(&self) -> &'static str {
|
167 + | "ComplexError"
|
168 + | }
|
169 + | }
|
170 + | impl ::std::fmt::Display for ComplexError {
|
171 + | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
172 + | ::std::write!(f, "ComplexError")?;
|
173 + | Ok(())
|
174 + | }
|
175 + | }
|
176 + | impl ::std::error::Error for ComplexError {}
|
177 + | impl ComplexError {
|
178 + | /// Creates a new builder-style object to manufacture [`ComplexError`](crate::error::ComplexError).
|
179 + | pub fn builder() -> crate::error::complex_error::Builder {
|
180 + | crate::error::complex_error::Builder::default()
|
181 + | }
|
182 + | }
|
183 + |
|
184 + | /// This error is thrown when an invalid greeting value is provided.
|
185 + | #[derive(
|
186 + | ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
|
187 + | )]
|
188 + | pub struct InvalidGreeting {
|
189 + | #[allow(missing_docs)] // documentation missing in model
|
190 + | pub message: ::std::option::Option<::std::string::String>,
|
191 + | }
|
192 + | impl InvalidGreeting {
|
193 + | /// Returns the error message.
|
194 + | pub fn message(&self) -> ::std::option::Option<&str> {
|
195 + | self.message.as_deref()
|
196 + | }
|
197 + | #[doc(hidden)]
|
198 + | /// Returns the error name.
|
199 + | pub fn name(&self) -> &'static str {
|
200 + | "InvalidGreeting"
|
201 + | }
|
202 + | }
|
203 + | impl ::std::fmt::Display for InvalidGreeting {
|
204 + | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
205 + | ::std::write!(f, "InvalidGreeting")?;
|
206 + | if let ::std::option::Option::Some(inner_1) = &self.message {
|
207 + | {
|
208 + | ::std::write!(f, ": {inner_1}")?;
|
209 + | }
|
210 + | }
|
211 + | Ok(())
|
212 + | }
|
213 + | }
|
214 + | impl ::std::error::Error for InvalidGreeting {}
|
215 + | impl InvalidGreeting {
|
216 + | /// Creates a new builder-style object to manufacture [`InvalidGreeting`](crate::error::InvalidGreeting).
|
217 + | pub fn builder() -> crate::error::invalid_greeting::Builder {
|
218 + | crate::error::invalid_greeting::Builder::default()
|
219 + | }
|
220 + | }
|
221 + |
|
222 + | /// Error type for the `RpcV2CborSparseMaps` operation.
|
223 + | /// Each variant represents an error that can occur for the `RpcV2CborSparseMaps` operation.
|
224 + | #[derive(::std::fmt::Debug)]
|
225 + | pub enum RpcV2CborSparseMapsError {
|
226 + | /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
|
227 + | ValidationException(crate::error::ValidationException),
|
228 + | }
|
229 + | impl ::std::fmt::Display for RpcV2CborSparseMapsError {
|
230 + | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
231 + | match &self {
|
232 + | RpcV2CborSparseMapsError::ValidationException(_inner) => _inner.fmt(f),
|
233 + | }
|
234 + | }
|
235 + | }
|
236 + | impl RpcV2CborSparseMapsError {
|
237 + | /// Returns `true` if the error kind is `RpcV2CborSparseMapsError::ValidationException`.
|
238 + | pub fn is_validation_exception(&self) -> bool {
|
239 + | matches!(&self, RpcV2CborSparseMapsError::ValidationException(_))
|
240 + | }
|
241 + | /// Returns the error name string by matching the correct variant.
|
242 + | pub fn name(&self) -> &'static str {
|
243 + | match &self {
|
244 + | RpcV2CborSparseMapsError::ValidationException(_inner) => _inner.name(),
|
245 + | }
|
246 + | }
|
247 + | }
|
248 + | impl ::std::error::Error for RpcV2CborSparseMapsError {
|
249 + | fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
|
250 + | match &self {
|
251 + | RpcV2CborSparseMapsError::ValidationException(_inner) => Some(_inner),
|
252 + | }
|
253 + | }
|
254 + | }
|
255 + | impl ::std::convert::From<crate::error::ValidationException>
|
256 + | for crate::error::RpcV2CborSparseMapsError
|
257 + | {
|
258 + | fn from(variant: crate::error::ValidationException) -> crate::error::RpcV2CborSparseMapsError {
|
259 + | Self::ValidationException(variant)
|
260 + | }
|
261 + | }
|
262 + |
|
263 + | /// Error type for the `RpcV2CborDenseMaps` operation.
|
264 + | /// Each variant represents an error that can occur for the `RpcV2CborDenseMaps` operation.
|
265 + | #[derive(::std::fmt::Debug)]
|
266 + | pub enum RpcV2CborDenseMapsError {
|
267 + | /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
|
268 + | ValidationException(crate::error::ValidationException),
|
269 + | }
|
270 + | impl ::std::fmt::Display for RpcV2CborDenseMapsError {
|
271 + | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
272 + | match &self {
|
273 + | RpcV2CborDenseMapsError::ValidationException(_inner) => _inner.fmt(f),
|
274 + | }
|
275 + | }
|
276 + | }
|
277 + | impl RpcV2CborDenseMapsError {
|
278 + | /// Returns `true` if the error kind is `RpcV2CborDenseMapsError::ValidationException`.
|
279 + | pub fn is_validation_exception(&self) -> bool {
|
280 + | matches!(&self, RpcV2CborDenseMapsError::ValidationException(_))
|
281 + | }
|
282 + | /// Returns the error name string by matching the correct variant.
|
283 + | pub fn name(&self) -> &'static str {
|
284 + | match &self {
|
285 + | RpcV2CborDenseMapsError::ValidationException(_inner) => _inner.name(),
|
286 + | }
|
287 + | }
|
288 + | }
|
289 + | impl ::std::error::Error for RpcV2CborDenseMapsError {
|
290 + | fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
|
291 + | match &self {
|
292 + | RpcV2CborDenseMapsError::ValidationException(_inner) => Some(_inner),
|
293 + | }
|
294 + | }
|
295 + | }
|
296 + | impl ::std::convert::From<crate::error::ValidationException>
|
297 + | for crate::error::RpcV2CborDenseMapsError
|
298 + | {
|
299 + | fn from(variant: crate::error::ValidationException) -> crate::error::RpcV2CborDenseMapsError {
|
300 + | Self::ValidationException(variant)
|
301 + | }
|
302 + | }
|
303 + |
|
304 + | /// Error type for the `RpcV2CborLists` operation.
|
305 + | /// Each variant represents an error that can occur for the `RpcV2CborLists` operation.
|
306 + | #[derive(::std::fmt::Debug)]
|
307 + | pub enum RpcV2CborListsError {
|
308 + | /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
|
309 + | ValidationException(crate::error::ValidationException),
|
310 + | }
|
311 + | impl ::std::fmt::Display for RpcV2CborListsError {
|
312 + | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
313 + | match &self {
|
314 + | RpcV2CborListsError::ValidationException(_inner) => _inner.fmt(f),
|
315 + | }
|
316 + | }
|
317 + | }
|
318 + | impl RpcV2CborListsError {
|
319 + | /// Returns `true` if the error kind is `RpcV2CborListsError::ValidationException`.
|
320 + | pub fn is_validation_exception(&self) -> bool {
|
321 + | matches!(&self, RpcV2CborListsError::ValidationException(_))
|
322 + | }
|
323 + | /// Returns the error name string by matching the correct variant.
|
324 + | pub fn name(&self) -> &'static str {
|
325 + | match &self {
|
326 + | RpcV2CborListsError::ValidationException(_inner) => _inner.name(),
|
327 + | }
|
328 + | }
|
329 + | }
|
330 + | impl ::std::error::Error for RpcV2CborListsError {
|
331 + | fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
|
332 + | match &self {
|
333 + | RpcV2CborListsError::ValidationException(_inner) => Some(_inner),
|
334 + | }
|
335 + | }
|
336 + | }
|
337 + | impl ::std::convert::From<crate::error::ValidationException> for crate::error::RpcV2CborListsError {
|
338 + | fn from(variant: crate::error::ValidationException) -> crate::error::RpcV2CborListsError {
|
339 + | Self::ValidationException(variant)
|
340 + | }
|
341 + | }
|
342 + |
|
343 + | /// See [`ValidationException`](crate::error::ValidationException).
|
344 + | pub mod validation_exception {
|
345 + |
|
346 + | #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
|
347 + | /// Holds one variant for each of the ways the builder can fail.
|
348 + | #[non_exhaustive]
|
349 + | #[allow(clippy::enum_variant_names)]
|
350 + | pub enum ConstraintViolation {
|
351 + | /// `message` was not provided but it is required when building `ValidationException`.
|
352 + | MissingMessage,
|
353 + | }
|
354 + | impl ::std::fmt::Display for ConstraintViolation {
|
355 + | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
356 + | match self {
|
357 + | ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationException`"),
|
358 + | }
|
359 + | }
|
360 + | }
|
361 + | impl ::std::error::Error for ConstraintViolation {}
|
362 + | impl ::std::convert::TryFrom<Builder> for crate::error::ValidationException {
|
363 + | type Error = ConstraintViolation;
|
364 + |
|
365 + | fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
|
366 + | builder.build()
|
367 + | }
|
368 + | }
|
369 + | /// A builder for [`ValidationException`](crate::error::ValidationException).
|
370 + | #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
|
371 + | pub struct Builder {
|
372 + | pub(crate) message: ::std::option::Option<::std::string::String>,
|
373 + | pub(crate) field_list:
|
374 + | ::std::option::Option<::std::vec::Vec<crate::model::ValidationExceptionField>>,
|
375 + | }
|
376 + | impl Builder {
|
377 + | /// A summary of the validation failure.
|
378 + | pub fn message(mut self, input: ::std::string::String) -> Self {
|
379 + | self.message = Some(input);
|
380 + | self
|
381 + | }
|
382 + | /// A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.
|
383 + | pub fn field_list(
|
384 + | mut self,
|
385 + | input: ::std::option::Option<::std::vec::Vec<crate::model::ValidationExceptionField>>,
|
386 + | ) -> Self {
|
387 + | self.field_list = input;
|
388 + | self
|
389 + | }
|
390 + | /// Consumes the builder and constructs a [`ValidationException`](crate::error::ValidationException).
|
391 + | ///
|
392 + | /// The builder fails to construct a [`ValidationException`](crate::error::ValidationException) if a [`ConstraintViolation`] occurs.
|
393 + | ///
|
394 + | pub fn build(self) -> Result<crate::error::ValidationException, ConstraintViolation> {
|
395 + | self.build_enforcing_all_constraints()
|
396 + | }
|
397 + | fn build_enforcing_all_constraints(
|
398 + | self,
|
399 + | ) -> Result<crate::error::ValidationException, ConstraintViolation> {
|
400 + | Ok(crate::error::ValidationException {
|
401 + | message: self.message.ok_or(ConstraintViolation::MissingMessage)?,
|
402 + | field_list: self.field_list,
|
403 + | })
|
404 + | }
|
405 + | }
|
406 + | }
|
407 + | /// See [`ComplexError`](crate::error::ComplexError).
|
408 + | pub mod complex_error {
|
409 + |
|
410 + | impl ::std::convert::From<Builder> for crate::error::ComplexError {
|
411 + | fn from(builder: Builder) -> Self {
|
412 + | builder.build()
|
413 + | }
|
414 + | }
|
415 + | /// A builder for [`ComplexError`](crate::error::ComplexError).
|
416 + | #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
|
417 + | pub struct Builder {
|
418 + | pub(crate) top_level: ::std::option::Option<::std::string::String>,
|
419 + | pub(crate) nested: ::std::option::Option<crate::model::ComplexNestedErrorData>,
|
420 + | }
|
421 + | impl Builder {
|
422 + | #[allow(missing_docs)] // documentation missing in model
|
423 + | pub fn top_level(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
|
424 + | self.top_level = input;
|
425 + | self
|
426 + | }
|
427 + | #[allow(missing_docs)] // documentation missing in model
|
428 + | pub fn nested(
|
429 + | mut self,
|
430 + | input: ::std::option::Option<crate::model::ComplexNestedErrorData>,
|
431 + | ) -> Self {
|
432 + | self.nested = input;
|
433 + | self
|
434 + | }
|
435 + | /// Consumes the builder and constructs a [`ComplexError`](crate::error::ComplexError).
|
436 + | pub fn build(self) -> crate::error::ComplexError {
|
437 + | self.build_enforcing_all_constraints()
|
438 + | }
|
439 + | fn build_enforcing_all_constraints(self) -> crate::error::ComplexError {
|
440 + | crate::error::ComplexError {
|
441 + | top_level: self.top_level,
|
442 + | nested: self.nested,
|
443 + | }
|
444 + | }
|
445 + | }
|
446 + | }
|
447 + | /// See [`InvalidGreeting`](crate::error::InvalidGreeting).
|
448 + | pub mod invalid_greeting {
|
449 + |
|
450 + | impl ::std::convert::From<Builder> for crate::error::InvalidGreeting {
|
451 + | fn from(builder: Builder) -> Self {
|
452 + | builder.build()
|
453 + | }
|
454 + | }
|
455 + | /// A builder for [`InvalidGreeting`](crate::error::InvalidGreeting).
|
456 + | #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
|
457 + | pub struct Builder {
|
458 + | pub(crate) message: ::std::option::Option<::std::string::String>,
|
459 + | }
|
460 + | impl Builder {
|
461 + | #[allow(missing_docs)] // documentation missing in model
|
462 + | pub fn message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
|
463 + | self.message = input;
|
464 + | self
|
465 + | }
|
466 + | /// Consumes the builder and constructs a [`InvalidGreeting`](crate::error::InvalidGreeting).
|
467 + | pub fn build(self) -> crate::error::InvalidGreeting {
|
468 + | self.build_enforcing_all_constraints()
|
469 + | }
|
470 + | fn build_enforcing_all_constraints(self) -> crate::error::InvalidGreeting {
|
471 + | crate::error::InvalidGreeting {
|
472 + | message: self.message,
|
473 + | }
|
474 + | }
|
475 + | }
|
476 + | }
|