xapi_rs/data/
data_error.rs

1// SPDX-License-Identifier: GPL-3.0-or-later
2
3use crate::data::ValidationError;
4use std::borrow::Cow;
5use thiserror::Error;
6
7/// Enumeration of different error types raised by methods in the data module.
8#[derive(Debug, Error)]
9pub enum DataError {
10    /// JSON serialization / deserialization error.
11    #[error("JSON error: {0}")]
12    JSON(
13        #[doc(hidden)]
14        #[from]
15        serde_json::Error,
16    ),
17
18    /// IRI and URI parsing error.
19    #[error("IRI/URI error: {0}")]
20    IRI(
21        #[doc(hidden)]
22        #[from]
23        iri_string::validate::Error,
24    ),
25
26    /// EmailAddress syntax error.
27    #[error("EMail error: {0}")]
28    Email(
29        #[doc(hidden)]
30        #[from]
31        email_address::Error,
32    ),
33
34    /// MIME type parsing error.
35    #[error("MIME error: {0:?}")]
36    MIME(
37        #[doc(hidden)]
38        #[from]
39        mime::FromStrError,
40    ),
41
42    /// Malformed UUID error.
43    #[error("UUID error: {0:?}")]
44    UUID(
45        #[doc(hidden)]
46        #[from]
47        uuid::Error,
48    ),
49
50    /// Date, time and timestamp parsing error.
51    #[error("Date-Time error: {0}")]
52    Time(
53        #[doc(hidden)]
54        #[from]
55        chrono::format::ParseError,
56    ),
57
58    /// Period (ISO) syntax error.
59    #[error("Period error: {0}")]
60    Duration(#[doc(hidden)] Cow<'static, str>),
61
62    /// Invalid Language Tag error.
63    #[error("Language Tag error: {0:?}")]
64    LanguageTag(
65        #[doc(hidden)]
66        #[from]
67        language_tags::ParseError,
68    ),
69
70    /// Language Tag validation error.
71    #[error("Language Tag validation error: {0:?}")]
72    LTValidationError(
73        #[doc(hidden)]
74        #[from]
75        language_tags::ValidationError,
76    ),
77
78    /// Semantic version parsing error.
79    #[error("Semantic version error: {0:?}")]
80    SemVer(
81        #[doc(hidden)]
82        #[from]
83        semver::Error,
84    ),
85
86    /// General validation error
87    #[error("{0}")]
88    Validation(
89        #[doc(hidden)]
90        #[from]
91        ValidationError,
92    ),
93
94    /// Unexpected runtime error.
95    #[error("Runtime error: {0}")]
96    Runtime(#[doc(hidden)] Cow<'static, str>),
97}