gen_completions/parse_deser/
error.rs1use std::io;
2
3use miette::{Diagnostic, NamedSource};
4use thiserror::Error;
5
6use super::kdl::KdlDeserError;
7
8#[derive(Debug, Diagnostic, Error)]
9pub enum Error {
10 #[error("{file_path} has no extension")]
11 #[diagnostic(code(gen_completions::deser::no_ext), url(docsrs))]
12 NoExtension { file_path: String },
13
14 #[error("{file_path} has an unrecognizable extension")]
15 #[diagnostic(code(gen_completions::deser::unrecognizable_ext), url(docsrs))]
16 UnrecognizableExtension { file_path: String },
17
18 #[error("Error encountered while reading {file_path}")]
19 #[diagnostic(code(gen_completions::deser::io_error), url(docsrs))]
20 Io {
21 file_path: String,
22 #[source]
23 source: io::Error,
24 },
25
26 #[error("Error encountered while deserializing")]
27 #[diagnostic(forward(error))]
28 Deser {
29 #[source_code]
30 source_code: NamedSource,
31 #[source]
32 error: Box<DeserError>,
33 },
34}
35
36#[derive(Debug, Diagnostic, Error)]
38pub enum DeserError {
39 #[error(transparent)]
40 #[diagnostic()]
41 Json(#[from] serde_json::Error),
42
43 #[error(transparent)]
44 #[diagnostic(transparent)]
45 Kdl(#[from] KdlDeserError),
46}