summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2023-04-30 12:07:50 +0200
committerMatthias Beyer <mail@beyermatthias.de>2023-07-02 20:31:33 +0200
commit577cbcd28702425e1778212376272ffda554e614 (patch)
tree653d63c654a5988b22f11a2a51e56ae685e2fe28
parent95333111094d08794169f8eeede45a3b0b63586f (diff)
Add error kinds for header verification
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--src/error.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/error.rs b/src/error.rs
index 9330d40..9e8fff8 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -145,6 +145,37 @@ pub enum VerificationError {
#[error("Error while walking directory")]
WalkDir(#[from] walkdir::Error),
+
+ #[error("Header field '{}' missing", .0)]
+ RequiredHeaderFieldMissing(String),
+
+ #[error("Header field '{}' should have type '{}', but has '{}'", .field_name, .required, .actual)]
+ HeaderFieldTypesDontMatch {
+ field_name: String,
+ required: String,
+ actual: &'static str,
+ },
+
+ #[error("Header field '{}' should be one of {}, but has type '{}'", .field_name, .possible.join(", "), .actual)]
+ HeaderFieldTypesDontMatchOneOf {
+ field_name: String,
+ possible: Vec<String>,
+ actual: &'static str,
+ },
+
+ #[error("Header field '{}' should be one of {}, but has value '{}'", .field_name, .possible.join(", "), .actual)]
+ HeaderFieldHasNotPossibleValue {
+ field_name: String,
+ possible: Vec<String>,
+ actual: String,
+ },
+
+ #[error("Multiple verification errors in {}", .fragment_path.display())]
+ Multiple {
+ fragment_path: PathBuf,
+ #[related]
+ multiple: Vec<VerificationError>,
+ },
}
#[derive(Debug, thiserror::Error, miette::Diagnostic)]