use thiserror::Error;
#[derive(Debug, Error)]
pub enum RulesError {
#[error("read rule `{path}`: {source}")]
Read {
path: String,
source: std::io::Error,
},
#[error("parse rule `{path}`: {source}")]
Parse {
path: String,
source: Box<toml::de::Error>,
},
#[error("rule `{rule}`: unknown language `{language}`")]
UnknownLanguage {
rule: String,
language: String,
},
#[error("rule `{rule}`: grammar for `{language}` is not compiled into this build")]
GrammarUnavailable {
rule: String,
language: String,
},
#[error("rule `{rule}`: {message}")]
PatternCompile {
rule: String,
message: String,
},
#[error("rule `{rule}`: generated query rejected by tree-sitter: {message}\nquery:\n{query}")]
QueryRejected {
rule: String,
message: String,
query: String,
},
#[error("rule `{rule}`: parse source: {message}")]
SourceParse {
rule: String,
message: String,
},
}