can_viewer/commands/
init.rs1use crate::state::AppState;
4use serde::Serialize;
5use std::sync::Arc;
6use tauri::State;
7
8#[derive(Serialize)]
10pub struct InitialFilesResponse {
11 pub dbc_path: Option<String>,
12 pub mdf4_path: Option<String>,
13}
14
15#[tauri::command]
18pub async fn get_initial_files(
19 state: State<'_, Arc<AppState>>,
20) -> Result<InitialFilesResponse, String> {
21 let files = state.initial_files.lock();
22 let session = state.session.lock();
23
24 let dbc_path = files.dbc_path.clone().or_else(|| session.dbc_path.clone());
26 let mdf4_path = files
27 .mdf4_path
28 .clone()
29 .or_else(|| session.mdf4_path.clone());
30
31 Ok(InitialFilesResponse {
32 dbc_path,
33 mdf4_path,
34 })
35}