use dyn_clone::DynClone;
#[derive(Debug, Clone)]
pub struct ResponseOption {
pub type_name: String,
pub scenario: String,
pub description: String,
pub schema: Vec<ResponseSchemaField>,
}
#[derive(Debug, Clone)]
pub struct ResponseSchemaField {
pub name: String,
pub description: String,
pub typ: String,
pub example: String,
}
pub trait OrchResponseVariant: Send + Sync {
fn variant() -> ResponseOption;
}
pub trait OrchResponseVariants<T>: DynClone + Send + Sync {
fn variants(&self) -> Vec<ResponseOption>;
fn parse(&self, response: &str) -> Result<T, serde_json::Error>;
}