actrpc-orchestrator 0.1.0

Configuration and orchestration utilities for ActRPC.
Documentation
use actrpc_core::action::ActionKind;

use crate::error::InterceptorRuntimeError;

#[non_exhaustive]
#[derive(Debug, thiserror::Error)]
pub enum InterceptorError {
    #[error("interceptor initialization failed for {name}: {source}")]
    InitializationFailed {
        name: String,
        #[source]
        source: InterceptorRuntimeError,
    },

    #[error("interceptor invocation failed for {name}: {source}")]
    InvocationFailed {
        name: String,
        #[source]
        source: InterceptorRuntimeError,
    },

    #[error("duplicate interceptor registration for {name}")]
    DuplicateRegistration { name: String },

    #[error("pipeline {phase} references unknown interceptor {name}")]
    UnknownPipelineInterceptor { phase: String, name: String },

    #[error("pipeline {phase} contains duplicate interceptor {name}")]
    DuplicatePipelineEntry { phase: String, name: String },

    #[error("interceptor {interceptor} declared unsupported action descriptor for action {action}")]
    UnsupportedActionDescriptor {
        interceptor: String,
        action: ActionKind,
    },

    #[error("interceptor {interceptor} descriptor mismatch for action {action}")]
    ActionDescriptorMismatch {
        interceptor: String,
        action: ActionKind,
    },

    #[error(
        "interceptor {interceptor} policy references undeclared action {action} in {phase} phase"
    )]
    PolicyReferencesUndeclaredAction {
        interceptor: String,
        action: ActionKind,
        phase: String,
    },

    #[error("invalid interceptor initialization for {interceptor}: {message}")]
    InvalidInitialization {
        interceptor: String,
        message: String,
    },
}