1#[derive(thiserror::Error, Debug)]
2pub enum Error {
3 #[error("Failed to convert value: {0}")]
4 Conversion(&'static str),
5
6 #[error("Failed to find symbol {0}")]
7 SymbolNotFound(String),
8
9 #[error("Failed to find type {0}")]
10 TypeNotFound(String),
11
12 #[error("Failed to find field {field_name} in type {type_name}")]
13 FieldNotFound {
14 type_name: String,
15 field_name: String,
16 },
17}
18
19impl Error {
20 pub fn symbol_not_found(symbol_name: impl Into<String>) -> Self {
21 Self::SymbolNotFound(symbol_name.into())
22 }
23
24 pub fn type_not_found(type_name: impl Into<String>) -> Self {
25 Self::TypeNotFound(type_name.into())
26 }
27
28 pub fn field_not_found(type_name: impl Into<String>, field_name: impl Into<String>) -> Self {
29 Self::FieldNotFound {
30 type_name: type_name.into(),
31 field_name: field_name.into(),
32 }
33 }
34}