pub mod commands; pub mod config; pub mod db; pub mod network; pub mod state; use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt}; use crate::state::AppState; pub fn run() { tracing_subscriber::registry() .with( tracing_subscriber::EnvFilter::new( std::env::var("RUST_LOG") .unwrap_or_else(|_| "funmc_client_lib=debug".into()), ), ) .with(tracing_subscriber::fmt::layer()) .init(); let app_state = AppState::new(); tauri::Builder::default() .plugin(tauri_plugin_shell::init()) .plugin(tauri_plugin_notification::init()) .manage(app_state) .setup(|app| { let handle = app.handle().clone(); tauri::async_runtime::spawn(async move { if let Err(e) = db::init(&handle).await { tracing::error!("DB init error: {}", e); } }); Ok(()) }) .invoke_handler(tauri::generate_handler![ commands::auth::login, commands::auth::register, commands::auth::logout, commands::auth::get_current_user, commands::config::set_server_url, commands::config::get_server_url, commands::config::fetch_server_config, commands::config::get_cached_server_config, commands::friends::list_friends, commands::friends::list_requests, commands::friends::send_friend_request, commands::friends::accept_friend_request, commands::friends::remove_friend, commands::rooms::list_rooms, commands::rooms::create_room, commands::rooms::join_room, commands::rooms::leave_room, commands::rooms::get_room_members, commands::rooms::kick_room_member, commands::rooms::close_room, commands::network::start_hosting, commands::network::join_room_network, commands::network::get_connection_stats, commands::network::stop_network, commands::relay_nodes::list_relay_nodes, commands::relay_nodes::add_relay_node, commands::relay_nodes::remove_relay_node, commands::relay_nodes::report_relay_ping, commands::signaling::connect_signaling, commands::signaling::disconnect_signaling, commands::signaling::send_signaling_message, commands::signaling::send_chat_message, ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); }