1use thiserror::Error;
4
5#[derive(Debug, Error, Clone, PartialEq, Eq)]
7pub enum BuildError {
8 #[error("unexpected token in current state")]
10 UnexpectedToken,
11
12 #[error("duplicate definition of ID {0}")]
14 DuplicateDefinition(u16),
15
16 #[error("undefined reference to ID {0}")]
18 UndefinedReference(u16),
19
20 #[error("node definition incomplete")]
22 IncompleteNode,
23
24 #[error("graph has no outputs")]
26 NoOutputs,
27
28 #[error("maximum nodes exceeded ({0})")]
30 MaxNodesExceeded(usize),
31
32 #[error("maximum depth exceeded ({0})")]
34 MaxDepthExceeded(usize),
35
36 #[error("maximum inputs exceeded ({0})")]
38 MaxInputsExceeded(usize),
39
40 #[error("maximum outputs exceeded ({0})")]
42 MaxOutputsExceeded(usize),
43}
44
45#[derive(Debug, Error, Clone, PartialEq, Eq)]
47pub enum EvalError {
48 #[error("missing input for ID {0}")]
50 MissingInput(u16),
51
52 #[error("missing output for ID {0}")]
54 MissingOutput(u16),
55
56 #[error("undefined value for ID {0}")]
58 UndefinedValue(u16),
59}