argumentation_schemes/
error.rs1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum Error {
8 #[error("missing binding '{slot}' for scheme '{scheme}'")]
10 MissingBinding {
11 scheme: String,
13 slot: String,
15 },
16
17 #[error("scheme not found: {0}")]
19 SchemeNotFound(String),
20
21 #[error("aspic error: {0}")]
23 Aspic(#[from] argumentation::Error),
24
25 #[error("AIF parse error: {0}")]
29 AifParse(String),
30
31 #[error("AIF unknown scheme: {0}")]
34 AifUnknownScheme(String),
35}
36
37#[cfg(test)]
38mod tests {
39 use super::*;
40
41 #[test]
42 fn aif_parse_error_carries_message() {
43 let err = Error::AifParse("bad edge reference".to_string());
44 let msg = format!("{}", err);
45 assert!(msg.contains("bad edge reference"));
46 }
47
48 #[test]
49 fn aif_unknown_scheme_error_names_scheme() {
50 let err = Error::AifUnknownScheme("Argument from Flapdoodle".to_string());
51 let msg = format!("{}", err);
52 assert!(msg.contains("Flapdoodle"));
53 }
54}