1use thiserror::Error;
4
5#[derive(Clone, Debug, Error)]
6pub enum UnrollError {
9 #[error("placeholder with index {placeholder} cannot be instantiated using only {args_len} arguments")]
10 ArgMissing {
12 placeholder: usize,
14 args_len: usize,
16 },
17 #[error("placeholder in position that expects type {placeholder_ty}, but got argument of type {arg_ty}")]
18 InvalidType {
20 placeholder_ty: &'static str,
22 arg_ty: &'static str,
24 },
25 #[error(
27 "unrolling expression evaluated to {args_len} expressions, but expected {expected_len}"
28 )]
29 UnexpectedLength {
30 expected_len: usize,
32 args_len: usize,
34 },
35 #[error("array access with {args_len} indexes, but expected {expected_len} indexes")]
37 UnexpectedIndexes {
38 expected_len: usize,
40 args_len: usize,
42 },
43 #[error("unknown identifier {0}")]
45 UnknownIdentifier(String),
46}