Skip to main content

sdaas_rs/
types.rs

1use serde::{Deserialize, Serialize};
2
3/// Request for delta computation
4#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
5pub struct DeltaRequest {
6    /// Source text
7    pub source: String,
8    /// Target text
9    pub target: String,
10}
11
12/// Response containing computed delta
13#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
14pub struct DeltaResponse {
15    /// The computed delta operations
16    pub delta: Vec<DeltaOp>,
17    /// Size of the delta in bytes
18    pub size_bytes: usize,
19    /// Compression ratio (0.0 to 1.0)
20    pub compression_ratio: f32,
21}
22
23/// Individual delta operation
24#[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/// API key validation response
34#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
35pub struct ValidationResponse {
36    pub valid: bool,
37    #[serde(flatten)]
38    pub key: KeyValidation,
39}
40
41/// Key validation details
42#[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}