Skip to main content

hive_router_plan_executor/headers/
errors.rs

1use hive_router_internal::expressions::vrl::prelude::ExpressionError;
2use http::header::{InvalidHeaderName, InvalidHeaderValue};
3use regex_automata::meta::BuildError;
4
5#[derive(thiserror::Error, Debug)]
6pub enum HeaderRuleCompileError {
7    #[error("Invalid header name '{0}'. Please check the configuration. Reason: {1}")]
8    BadHeaderName(String, InvalidHeaderName),
9    #[error("Invalid header value for header '{0}'. Please check the configuration. Reason: {1}")]
10    BadHeaderValue(String, InvalidHeaderValue),
11    #[error("The 'rename' option is only allowed when propagating a single header specified with 'named'. You cannot use 'rename' when propagating multiple headers or when using 'matching'.")]
12    InvalidRename,
13    #[error("The 'default' option is only allowed when propagating a single header specified with 'named'. You cannot use 'default' when propagating multiple headers or when using 'matching'.")]
14    InvalidDefault,
15    #[error("Failed to build regex for header matching. Please check your regex patterns for syntax errors. Reason: {0}")]
16    RegexBuild(#[from] Box<BuildError>),
17    #[error("Failed to compile VRL expression for header '{0}'. Please check your VRL expression for syntax errors. Diagnostic: {1}")]
18    ExpressionBuild(String, String),
19}
20
21#[derive(thiserror::Error, Debug, Clone)]
22pub enum HeaderRuleRuntimeError {
23    #[error("Failed to evaluate VRL expression for header '{0}'. Reason: {1}")]
24    ExpressionEvaluation(String, Box<ExpressionError>),
25    #[error("Invalid header value for header '{0}'.")]
26    BadHeaderValue(String),
27    #[error("Failed to convert VRL value to header value for '{0}': {1}")]
28    ValueConversion(String, String),
29}