Files
drop-app/src-tauri/src/process/commands.rs
2025-07-26 19:56:38 +10:00

49 lines
1.3 KiB
Rust

use crate::{error::process_error::ProcessError, DropFunctionState};
#[tauri::command]
pub async fn launch_game(
id: String,
state: tauri::State<'_, DropFunctionState<'_>>,
) -> Result<(), ProcessError> {
let state_lock = state.lock().await;
let mut process_manager_lock = state_lock.process_manager.lock().await;
//let meta = DownloadableMetadata {
// id,
// version: Some(version),
// download_type: DownloadType::Game,
//};
match process_manager_lock.launch_process(id).await {
Ok(_) => {}
Err(e) => return Err(e),
};
drop(process_manager_lock);
drop(state_lock);
Ok(())
}
#[tauri::command]
pub async fn kill_game(
game_id: String,
state: tauri::State<'_, DropFunctionState<'_>>,
) -> Result<(), ProcessError> {
let state_lock = state.lock().await;
let mut process_manager_lock = state_lock.process_manager.lock().await;
process_manager_lock
.kill_game(game_id)
.map_err(ProcessError::IOError)
}
#[tauri::command]
pub async fn open_process_logs(
game_id: String,
state: tauri::State<'_, DropFunctionState<'_>>,
) -> Result<(), ProcessError> {
let state_lock = state.lock().await;
let mut process_manager_lock = state_lock.process_manager.lock().await;
process_manager_lock.open_process_logs(game_id)
}