Files
crank/crates/crank-runtime/src/model.rs
T
2026-05-04 07:45:04 +00:00

66 lines
2.3 KiB
Rust

use std::collections::BTreeMap;
use crank_core::{ExecutionConfig, Operation, OperationId, Protocol, Target, ToolDescription};
use crank_mapping::MappingSet;
use crank_schema::Schema;
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct RuntimeOperation {
pub operation_id: OperationId,
pub operation_version: u32,
pub tool_name: String,
pub protocol: Protocol,
pub target: Target,
pub input_schema: Schema,
pub output_schema: Schema,
pub input_mapping: MappingSet,
pub output_mapping: MappingSet,
pub execution_config: ExecutionConfig,
pub tool_description: ToolDescription,
}
impl From<Operation<Schema, MappingSet>> for RuntimeOperation {
fn from(value: Operation<Schema, MappingSet>) -> Self {
Self {
operation_id: value.id,
operation_version: value.version,
tool_name: value.name,
protocol: value.protocol,
target: value.target,
input_schema: value.input_schema,
output_schema: value.output_schema,
input_mapping: value.input_mapping,
output_mapping: value.output_mapping,
execution_config: value.execution_config,
tool_description: value.tool_description,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub struct PreparedRequest {
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
pub path_params: BTreeMap<String, String>,
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
pub query_params: BTreeMap<String, String>,
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
pub headers: BTreeMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub grpc: Option<Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub variables: Option<Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub body: Option<Value>,
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct AdapterResponse {
pub status_code: u16,
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
pub headers: BTreeMap<String, String>,
pub body: Value,
pub data: Value,
}