use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct DeltaRequest {
pub source: String,
pub target: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DeltaResponse {
pub delta: Vec<DeltaOp>,
pub size_bytes: usize,
pub compression_ratio: f32,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(tag = "op")]
pub enum DeltaOp {
#[serde(rename = "insert")]
Insert { text: String },
#[serde(rename = "delete")]
Delete { count: usize },
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct ValidationResponse {
pub valid: bool,
#[serde(flatten)]
pub key: KeyValidation,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct KeyValidation {
pub tier: String,
pub quota_limit: u64,
pub quota_remaining: u64,
pub rate_limit: u32,
pub rate_limit_remaining: u32,
}