use bytes::Bytes;
use http::{HeaderMap, StatusCode};
use serde_json::Value;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum TransportKind {
Http,
Ws,
}
pub struct PrepareCtx<'a> {
pub secret: &'a Value,
pub provider_settings: &'a Value,
pub op: crate::protocol::OperationKey,
pub stream: bool,
pub upstream_model_id: &'a str,
pub method: http::Method,
pub path: &'a str,
pub query: Option<&'a str>,
pub headers: &'a HeaderMap,
pub body: Bytes,
}
#[derive(Debug, Clone, Copy)]
pub struct ShapeCtx<'a> {
pub op: crate::protocol::OperationKey,
pub stream: bool,
pub status: StatusCode,
pub settings: &'a Value,
}
#[derive(Debug, Clone, Copy)]
pub struct RefreshCtx<'a> {
pub secret: &'a Value,
pub provider_settings: &'a Value,
}