INNER CODE UNIT · Rust
sidecar_stop
mouseart2025/AI-Reader-V2 · frontend/src-tauri/src/lib.rs:230
fn sidecar_stop(state: State<'_, Mutex<SidecarState>>) -> Result<(), String> {
let mut s = state.lock().map_err(|e| format!("Lock error: {e}"))?;
if let Some(child) = s.child.take() {
kill_sidecar(child);
log::info!("Sidecar stopped");
}
s.port = None;
s.token = None;
Ok(())
}
#[tauri::command]
fn sidecar_status(state: State<'_, Mutex<SidecarState>>) -> Result<Option<SidecarInfo>, String> {
let s = state.lock().map_err(|e| format!("Lock error: {e}"))?;
Ok(match (s.port, s.token.clone()) {
(Some(port), Some(token)) => Some(SidecarInfo { port, token }),
_ => None,
})