use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
use std::sync::{OnceLock, RwLock};
static GLOBAL_BASE_URL: OnceLock<RwLock<String>> = OnceLock::new();
static GLOBAL_MAX_RPS: AtomicUsize = AtomicUsize::new(30);
static GLOBAL_IGNORE_SSL_ERRORS: AtomicBool = AtomicBool::new(false);
pub fn set_global_base_url(url: impl Into<String>) {
let lock = GLOBAL_BASE_URL
.get_or_init(|| RwLock::new("https://platform-api2.max.ru".to_string()));
let mut guard = lock.write().unwrap();
*guard = url.into();
}
pub fn get_global_base_url() -> String {
let lock = GLOBAL_BASE_URL
.get_or_init(|| RwLock::new("https://platform-api2.max.ru".to_string()));
lock.read().unwrap().clone()
}
pub fn set_global_max_rps(rps: usize) {
GLOBAL_MAX_RPS.store(rps, Ordering::Relaxed);
}
pub fn get_global_max_rps() -> usize {
GLOBAL_MAX_RPS.load(Ordering::Relaxed)
}
pub fn set_global_ignore_ssl_errors(ignore: bool) {
GLOBAL_IGNORE_SSL_ERRORS.store(ignore, Ordering::Relaxed);
}
pub fn get_global_ignore_ssl_errors() -> bool {
GLOBAL_IGNORE_SSL_ERRORS.load(Ordering::Relaxed)
}