Skip to main content

mermaid_cli/cache/
types.rs

1use serde::{Deserialize, Serialize};
2use std::path::PathBuf;
3use std::time::SystemTime;
4
5/// Key for cache entries
6#[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)]
7pub struct CacheKey {
8    pub file_path: PathBuf,
9    pub file_hash: String,
10}
11
12/// Metadata for cache entries
13#[derive(Debug, Clone, Serialize, Deserialize)]
14pub struct CacheMetadata {
15    pub created_at: SystemTime,
16    pub last_accessed: SystemTime,
17    pub file_size: u64,
18    pub compressed_size: usize,
19    pub compression_ratio: f32,
20}
21
22/// Cache entry containing parsed data
23#[derive(Debug, Clone, Serialize, Deserialize)]
24pub struct CacheEntry<T> {
25    pub key: CacheKey,
26    pub data: T,
27    pub metadata: CacheMetadata,
28}
29
30/// Cached token count
31#[derive(Debug, Clone, Serialize, Deserialize)]
32pub struct CachedTokens {
33    pub count: usize,
34    pub model_name: String,
35}