1use thiserror::Error;
8
9use crate::circuit::{Identifier, Net};
10
11#[derive(Error, Debug)]
13pub enum Error {
14 #[error("Cycles detected along nets {0:?}")]
16 CycleDetected(Vec<Net>),
17 #[error("Parsing error `{0}`")]
19 ParseError(String),
20 #[error("Non-unique nets: {0:?}")]
22 NonuniqueNets(Vec<Net>),
23 #[error("Non-unique instances: {0:?}")]
25 NonuniqueInsts(Vec<Identifier>),
26 #[error("No outputs in netlist")]
28 NoOutputs,
29 #[error("Error in the instantiable interface: {0}")]
31 InstantiableError(String),
32 #[error("Attempted to create a dangling reference to nets {0:?}")]
34 DanglingReference(Vec<Net>),
35 #[error("Expected {0} arguments, got {1}")]
37 ArgumentMismatch(usize, usize),
38 #[error("Input net {0} needs an alias to be an output")]
40 InputNeedsAlias(Net),
41 #[error("Expected to find net {0} in netlist")]
43 NetNotFound(Net),
44}