#![allow(
clippy::multiple_crate_versions,
reason = "The Windows stack and language-detection dependencies currently require parallel transitive versions."
)]
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
#[cfg(windows)]
mod app;
#[cfg(windows)]
mod config;
#[cfg(windows)]
mod conversion;
#[cfg(windows)]
mod domain;
#[cfg(windows)]
mod helpers;
#[cfg(windows)]
mod input;
#[cfg(windows)]
mod input_journal;
#[cfg(windows)]
mod platform;
#[cfg(windows)]
mod utils;
#[cfg(windows)]
fn main() -> windows::core::Result<()> {
utils::tracing::init_tracing();
utils::helpers::init_app_user_model_id()?;
let Some(_guard) = utils::helpers::single_instance_guard()? else {
let _ = platform::win::activate_running_instance();
return Ok(());
};
let autostart_hidden = std::env::args().any(|arg| arg == platform::win::AUTOSTART_ARG);
let cfg_hidden = config::load()
.ok()
.map(|c| c.start_minimized)
.unwrap_or(false);
let start_hidden = autostart_hidden || cfg_hidden;
platform::win::run(start_hidden)
}
#[cfg(not(windows))]
fn main() {
eprintln!(
"rust-switcher is a Windows-only binary. Linux CI should run `cargo test --lib --tests`."
);
}
#[cfg(all(test, windows))]
mod tests;