use crank_adapter_graphql::GraphqlAdapterError; use crank_adapter_grpc::GrpcAdapterError; use crank_adapter_rest::RestAdapterError; use crank_core::{ExecutionMode, Protocol}; use crank_mapping::MappingError; use crank_schema::SchemaError; use thiserror::Error; #[derive(Debug, Error)] pub enum RuntimeError { #[error(transparent)] Schema(#[from] SchemaError), #[error(transparent)] Mapping(#[from] MappingError), #[error(transparent)] GraphqlAdapter(#[from] GraphqlAdapterError), #[error(transparent)] GrpcAdapter(#[from] GrpcAdapterError), #[error(transparent)] RestAdapter(#[from] RestAdapterError), #[error("protocol {protocol:?} is not supported by runtime")] UnsupportedProtocol { protocol: Protocol }, #[error("operation {operation_id} does not define streaming config")] MissingStreamingConfig { operation_id: String }, #[error("operation {operation_id} does not support requested execution mode {mode:?}")] UnsupportedExecutionMode { operation_id: String, mode: ExecutionMode, }, #[error("invalid prepared request: {details}")] InvalidPreparedRequest { details: String }, #[error("invalid streaming payload: {details}")] InvalidStreamingPayload { details: String }, }