Skip to main content

rsigma_parser/
error.rs

1use thiserror::Error;
2
3/// Errors that can occur during Sigma rule parsing.
4#[derive(Debug, Error)]
5pub enum SigmaParserError {
6    #[error("YAML parsing error: {0}")]
7    Yaml(#[from] serde_yaml::Error),
8
9    #[error("Condition parse error: {0}")]
10    Condition(String),
11
12    #[error("Unknown modifier '{0}'")]
13    UnknownModifier(String),
14
15    #[error("Invalid field specification: {0}")]
16    InvalidFieldSpec(String),
17
18    #[error("Invalid rule: {0}")]
19    InvalidRule(String),
20
21    #[error("Missing required field '{0}'")]
22    MissingField(String),
23
24    #[error("Invalid detection: {0}")]
25    InvalidDetection(String),
26
27    #[error("Invalid correlation rule: {0}")]
28    InvalidCorrelation(String),
29
30    #[error("Invalid timespan '{0}'")]
31    InvalidTimespan(String),
32
33    #[error("Invalid value: {0}")]
34    InvalidValue(String),
35
36    #[error("Invalid collection action '{0}'")]
37    InvalidAction(String),
38
39    #[error("IO error: {0}")]
40    Io(#[from] std::io::Error),
41}
42
43pub type Result<T> = std::result::Result<T, SigmaParserError>;