use serde::{Deserialize, Serialize};
use std::path::PathBuf;
#[derive(Debug, Serialize, Deserialize)]
pub struct DaemonStatusResponse {
pub ready: bool,
pub indexed_at: Option<String>,
pub workspace_root: String,
pub process_id: u32,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SymbolQueryRequest {
pub name: String,
pub kind: String,
pub exact: bool,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SymbolItem {
pub name: String,
pub kind: String,
pub file: String,
pub line: u32,
pub col: u32,
pub container_name: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct OutlineQueryRequest {
pub file: PathBuf,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct OutlineItem {
pub name: String,
pub kind: String,
pub detail: Option<String>,
pub line: u32,
pub col: u32,
pub end_line: u32,
pub children: Vec<OutlineItem>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct DefinitionQueryRequest {
pub file: PathBuf,
pub line: u32,
pub col: u32,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct DefinitionItem {
pub file: String,
pub line: u32,
pub col: u32,
pub end_line: u32,
pub end_col: u32,
pub snippet: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CursorQueryRequest {
pub file: PathBuf,
pub line: u32,
pub col: u32,
pub mode: String, pub depth: u32,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CursorItem {
pub name: String,
pub kind: String,
pub file: String,
pub line: u32,
pub col: u32,
pub caller_or_callee: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct TypeHierarchyQueryRequest {
pub file: PathBuf,
pub line: u32,
pub col: u32,
pub mode: String, pub depth: u32,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct TypeHierarchyItemResult {
pub name: String,
pub kind: String,
pub file: String,
pub line: u32,
pub col: u32,
pub detail: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CheckQueryRequest {
pub target: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CheckDiagnosticItem {
pub message: String,
pub level: String, pub file: Option<String>,
pub line: Option<u32>,
pub col: Option<u32>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CheckResponse {
pub success: bool,
pub diagnostics: Vec<CheckDiagnosticItem>,
}