1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
5pub struct DeltaRequest {
6 pub source: String,
8 pub target: String,
10}
11
12#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
14pub struct DeltaResponse {
15 pub delta: Vec<DeltaOp>,
17 pub size_bytes: usize,
19 pub compression_ratio: f32,
21}
22
23#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
25#[serde(tag = "op")]
26pub enum DeltaOp {
27 #[serde(rename = "insert")]
28 Insert { text: String },
29 #[serde(rename = "delete")]
30 Delete { count: usize },
31}
32
33#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
35pub struct ValidationResponse {
36 pub valid: bool,
37 #[serde(flatten)]
38 pub key: KeyValidation,
39}
40
41#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
43pub struct KeyValidation {
44 pub tier: String,
45 pub quota_limit: u64,
46 pub quota_remaining: u64,
47 pub rate_limit: u32,
48 pub rate_limit_remaining: u32,
49}