use serde::{Deserialize, Serialize};
use std::path::PathBuf;
use std::time::SystemTime;
#[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)]
pub struct CacheKey {
pub file_path: PathBuf,
pub file_hash: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CacheMetadata {
pub created_at: SystemTime,
pub last_accessed: SystemTime,
pub file_size: u64,
pub compressed_size: usize,
pub compression_ratio: f32,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CacheEntry<T> {
pub key: CacheKey,
pub data: T,
pub metadata: CacheMetadata,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CachedTokens {
pub count: usize,
pub model_name: String,
}