f1bba5cc74
* chore: Progress on amend_settings command Signed-off-by: quexeky <git@quexeky.dev> * chore(errors): Progress on better error handling with segragation of files * chore: Progress on amend_settings command Signed-off-by: quexeky <git@quexeky.dev> * chore(commands): Separated commands under each subdirectory into respective commands.rs files Signed-off-by: quexeky <git@quexeky.dev> * chore(errors): Almost all errors and commands have been segregated * chore(errors): Added drop server error Signed-off-by: quexeky <git@quexeky.dev> * feat(core): Update to using nightly compiler Signed-off-by: quexeky <git@quexeky.dev> * chore(errors): More progress on error handling Signed-off-by: quexeky <git@quexeky.dev> * chore(errors): Implementing Try and FromResidual for UserValue Signed-off-by: quexeky <git@quexeky.dev> * refactor(errors): Segregated errors and commands from code, and made commands return UserValue struct Signed-off-by: quexeky <git@quexeky.dev> * fix(errors): Added missing files * chore(errors): Convert match statement to map_err * feat(settings): Implemented settings editing from UI * feat(errors): Clarified return values from retry_connect command * chore(errors): Moved autostart commands to autostart.rs * chore(process manager): Converted launch_process function for games to use game_id --------- Signed-off-by: quexeky <git@quexeky.dev>
45 lines
1.1 KiB
Rust
45 lines
1.1 KiB
Rust
use std::sync::Mutex;
|
|
|
|
use crate::{
|
|
error::{process_error::ProcessError, user_error::UserValue},
|
|
AppState, DB,
|
|
};
|
|
|
|
#[tauri::command]
|
|
pub fn launch_game(
|
|
id: String,
|
|
state: tauri::State<'_, Mutex<AppState>>,
|
|
) -> UserValue<(), ProcessError> {
|
|
let state_lock = state.lock().unwrap();
|
|
let mut process_manager_lock = state_lock.process_manager.lock().unwrap();
|
|
|
|
//let meta = DownloadableMetadata {
|
|
// id,
|
|
// version: Some(version),
|
|
// download_type: DownloadType::Game,
|
|
//};
|
|
|
|
match process_manager_lock.launch_process(id) {
|
|
Ok(_) => {}
|
|
Err(e) => return UserValue::Err(e),
|
|
};
|
|
|
|
drop(process_manager_lock);
|
|
drop(state_lock);
|
|
|
|
UserValue::Ok(())
|
|
}
|
|
|
|
#[tauri::command]
|
|
pub fn kill_game(
|
|
game_id: String,
|
|
state: tauri::State<'_, Mutex<AppState>>,
|
|
) -> UserValue<(), ProcessError> {
|
|
let state_lock = state.lock().unwrap();
|
|
let mut process_manager_lock = state_lock.process_manager.lock().unwrap();
|
|
process_manager_lock
|
|
.kill_game(game_id)
|
|
.map_err(ProcessError::IOError)
|
|
.into()
|
|
}
|