switchback_traits/
error.rs1use std::path::PathBuf;
4
5use thiserror::Error;
6
7#[derive(Debug, Error)]
9pub enum SwitchbackError {
10 #[error("codec error: {0}")]
12 Codec(String),
13
14 #[error("render error: {0}")]
16 Render(String),
17
18 #[error("load error: {0}")]
20 Load(String),
21
22 #[error("link error: {0}")]
24 Link(String),
25
26 #[error("companion error: {0}")]
28 Companion(String),
29
30 #[error("io error at {path}: {source}")]
32 Io {
33 path: PathBuf,
35 #[source]
37 source: std::io::Error,
38 },
39
40 #[error("{0}")]
42 Other(String),
43}
44
45impl SwitchbackError {
46 pub fn codec(message: impl Into<String>) -> Self {
48 Self::Codec(message.into())
49 }
50
51 pub fn render(message: impl Into<String>) -> Self {
53 Self::Render(message.into())
54 }
55
56 pub fn load(message: impl Into<String>) -> Self {
58 Self::Load(message.into())
59 }
60
61 pub fn link(message: impl Into<String>) -> Self {
63 Self::Link(message.into())
64 }
65
66 pub fn companion(message: impl Into<String>) -> Self {
68 Self::Companion(message.into())
69 }
70
71 pub fn other(message: impl Into<String>) -> Self {
73 Self::Other(message.into())
74 }
75}
76
77pub type Result<T> = std::result::Result<T, SwitchbackError>;