hive_router_plan_executor/headers/
errors.rs1use http::header::{InvalidHeaderName, InvalidHeaderValue};
2use regex_automata::meta::BuildError;
3use vrl::prelude::ExpressionError;
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}
30
31impl HeaderRuleCompileError {
32 pub fn new_expression_build(header_name: String, err: String) -> Self {
33 HeaderRuleCompileError::ExpressionBuild(header_name, err)
34 }
35}
36
37impl HeaderRuleRuntimeError {
38 pub fn new_expression_evaluation(header_name: String, error: Box<ExpressionError>) -> Self {
39 HeaderRuleRuntimeError::ExpressionEvaluation(header_name, error)
40 }
41
42 pub fn new_value_conversion(header_name: String, reason: String) -> Self {
43 HeaderRuleRuntimeError::ValueConversion(header_name, reason)
44 }
45}