diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2023-04-30 12:07:50 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2023-07-02 20:31:33 +0200 |
commit | 577cbcd28702425e1778212376272ffda554e614 (patch) | |
tree | 653d63c654a5988b22f11a2a51e56ae685e2fe28 | |
parent | 95333111094d08794169f8eeede45a3b0b63586f (diff) |
Add error kinds for header verification
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | src/error.rs | 31 |
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)] |