//! DevKit Tauri 命令 //! //! 仅在 `devkit` feature 启用时编译。 use tauri::State; #[cfg(feature = "devkit")] use tauri::AppHandle; use crate::devkit::{DevKitConfig, DevKitState, DevKitStatusSnapshot, ExportProcessResult}; #[tauri::command] pub fn devkit_status(state: State<'_, DevKitState>) -> DevKitStatusSnapshot { state.status() } #[tauri::command] pub async fn devkit_start( app: AppHandle, state: State<'_, DevKitState>, port: Option, ) -> Result { let target_port = port.unwrap_or(50051); state.start(app, target_port).await?; Ok(state.status()) } #[tauri::command] pub async fn devkit_stop(state: State<'_, DevKitState>) -> Result { state.stop().await?; Ok(state.status()) } #[tauri::command] pub fn devkit_get_config(state: State<'_, DevKitState>) -> DevKitConfig { state.get_config() } #[tauri::command] pub fn devkit_set_config(state: State<'_, DevKitState>, config: DevKitConfig) -> Result { state.set_config(config)?; Ok(state.get_config()) } #[tauri::command] pub async fn devkit_process_export( state: State<'_, DevKitState>, csv_path: String, save_as_xlsx: Option, ) -> Result { let config = state.get_config(); let use_xlsx = save_as_xlsx.unwrap_or(config.save_as_xlsx); state.process_export(&csv_path, use_xlsx).await }