use starlark::Error as StarlarkError; use thiserror::Error; pub type Result = std::result::Result; #[derive(Debug, Error)] pub enum Error { #[error("invalid decision: {0}")] InvalidDecision(String), #[error("invalid pattern element: {0}")] InvalidPattern(String), #[error("invalid example: {0}")] InvalidExample(String), #[error("invalid rule: {0}")] InvalidRule(String), #[error( "expected every example to match at least one rule. rules: {rules:?}; unmatched examples: \ {examples:?}" )] ExampleDidNotMatch { rules: Vec, examples: Vec, }, #[error("expected example to not match rule `{rule}`: {example}")] ExampleDidMatch { rule: String, example: String }, #[error("starlark error: {0}")] Starlark(StarlarkError), }