isr_macros/
error.rs

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}