1use thiserror::Error;
2
3use crate::layout::errors::LayoutError;
4use crate::output::errors::OutputError;
5use crate::variant::errors::VariantError;
6
7#[derive(Debug, Error)]
8pub enum NvmError {
9 #[error(transparent)]
10 Layout(#[from] LayoutError),
11
12 #[error(transparent)]
13 Variant(#[from] VariantError),
14
15 #[error(transparent)]
16 Output(#[from] OutputError),
17
18 #[error("While building block '{block_name}' from '{layout_file}': {source}")]
19 InBlock {
20 block_name: String,
21 layout_file: String,
22 #[source]
23 source: Box<NvmError>,
24 },
25}