diff options
| author | 2026-01-21 10:47:56 +0800 | |
|---|---|---|
| committer | 2026-01-21 10:47:56 +0800 | |
| commit | 5cffcfe457d1b15d201647a5775268378c6018c6 (patch) | |
| tree | 562160c25373acc968c7c7abafaf018cd1a21261 /src-tauri/src/core/assistant.rs | |
| parent | b27f30bfbdd05a53caaf6fe63fd9354b3689623c (diff) | |
| download | DropOut-5cffcfe457d1b15d201647a5775268378c6018c6.tar.gz DropOut-5cffcfe457d1b15d201647a5775268378c6018c6.zip | |
feat: Add TypeScript support to data structures using ts-rs for type generation
Diffstat (limited to 'src-tauri/src/core/assistant.rs')
| -rw-r--r-- | src-tauri/src/core/assistant.rs | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src-tauri/src/core/assistant.rs b/src-tauri/src/core/assistant.rs index 9a8f7bf..987dc41 100644 --- a/src-tauri/src/core/assistant.rs +++ b/src-tauri/src/core/assistant.rs @@ -4,8 +4,10 @@ use serde::{Deserialize, Serialize}; use std::collections::VecDeque; use std::sync::{Arc, Mutex}; use tauri::{Emitter, Window}; +use ts_rs::TS; -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, TS)] +#[ts(export, export_to = "../packages/ui/src/types/generated/Message.ts")] pub struct Message { pub role: String, pub content: String, @@ -51,7 +53,8 @@ pub struct OllamaTagsResponse { } // Simplified model info for frontend -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, TS)] +#[ts(export, export_to = "../packages/ui/src/types/generated/ModelInfo.ts")] pub struct ModelInfo { pub id: String, pub name: String, @@ -102,7 +105,11 @@ pub struct OpenAIModelsResponse { } // Streaming response structures -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/GenerationStats.ts" +)] pub struct GenerationStats { pub total_duration: u64, pub load_duration: u64, @@ -112,7 +119,11 @@ pub struct GenerationStats { pub eval_duration: u64, } -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/StreamChunk.ts" +)] pub struct StreamChunk { pub content: String, pub done: bool, |