You've already forked AstralRinth
* Initial bug fixes * fix compile error on non-mac * Fix even more bugs * Fix more * fix more * fix build * fix build * Search fixes * Fix small instance ui * working basic * fix javaw issue * removed zip * working functions * merge fixes * fixed loadintg bar bug * menu fix * wait for settings to sync * safety expanded and for loading bars * swtiching to windows * minimize * default landing page * test link registry * url redirection * fix formatting * .mrpack windows * working mrpack reader * changed to one layer deep * working .mrpack + command handling for both opening and existing process * forge version numbers * working mac opening mrpack * reverted changes * prettier/fmt * missed debug statement * improvements + refactoring * renamed things to fit plugin * fixed bugs * removed println * overrides dont include mrpack * merge * fixes * fixes * fixed deletion * merge errors * force sync before export * removed testing * missed line * removed console log * mac error reverted * incoreclty named helper * additional fixes * added removed merges * fixed mislabled invokes * mac * added to new register method * comments, cleanup * mac clippy change * review changes * minor changes * moved create pack * removed playground compilation bug * fixed linux bug; other add ons * fixed review commets * cicd fix * mistaken import for prod * cicd fix --------- Co-authored-by: Jai A <jaiagr+gpg@pm.me>
45 lines
1.0 KiB
Rust
45 lines
1.0 KiB
Rust
//! Theseus profile management interface
|
|
|
|
pub use crate::{
|
|
state::{
|
|
Hooks, JavaSettings, MemorySettings, Profile, Settings, WindowSize,
|
|
},
|
|
State,
|
|
};
|
|
|
|
/// Gets entire settings
|
|
#[tracing::instrument]
|
|
pub async fn get() -> crate::Result<Settings> {
|
|
let state = State::get().await?;
|
|
let settings = state.settings.read().await;
|
|
Ok(settings.clone())
|
|
}
|
|
|
|
/// Sets entire settings
|
|
#[tracing::instrument]
|
|
pub async fn set(settings: Settings) -> crate::Result<()> {
|
|
let state = State::get().await?;
|
|
let (reset_io, reset_fetch) = async {
|
|
let read = state.settings.read().await;
|
|
(
|
|
settings.max_concurrent_writes != read.max_concurrent_writes,
|
|
settings.max_concurrent_downloads != read.max_concurrent_downloads,
|
|
)
|
|
}
|
|
.await;
|
|
|
|
{
|
|
*state.settings.write().await = settings;
|
|
}
|
|
|
|
if reset_io {
|
|
state.reset_io_semaphore().await;
|
|
}
|
|
if reset_fetch {
|
|
state.reset_fetch_semaphore().await;
|
|
}
|
|
|
|
State::sync().await?;
|
|
Ok(())
|
|
}
|