From 176382e0b653f728950ea69cf26535297f30233d Mon Sep 17 00:00:00 2001 From: Psychotoxical <171614930+Psychotoxical@users.noreply.github.com> Date: Fri, 8 May 2026 16:45:46 +0200 Subject: [PATCH] refactor(lib_commands): drop super::* + glob in app_api + lib_commands root MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hotspot G final slice — replace cascade-imports in app_api/{core, analysis,integration,remote,platform}.rs with explicit per-symbol imports, and convert app_api/mod.rs from broad `pub(crate) use foo::*` to a per-command list of every Tauri handler. The remaining glob re-exports live only in lib_commands/mod.rs itself — and those are deliberate: they flatten the explicitly-listed Tauri commands one more level so lib.rs's `use lib_commands::*` keeps the invoke_handler shape unchanged. Each level above is now explicit. file_transfer.rs's `super::subsonic_wire_user_agent()` becomes `crate::subsonic_wire_user_agent()` since the lib_commands cascade no longer pulls lib.rs symbols into super scope. `grep -rn 'use super::\*' src/lib_commands/` returns zero hits. Behaviour-preserving. --- .../src/lib_commands/app_api/analysis.rs | 10 ++++- src-tauri/src/lib_commands/app_api/core.rs | 5 ++- .../src/lib_commands/app_api/integration.rs | 4 +- src-tauri/src/lib_commands/app_api/mod.rs | 41 ++++++++++++++----- .../src/lib_commands/app_api/platform.rs | 2 +- src-tauri/src/lib_commands/app_api/remote.rs | 2 +- src-tauri/src/lib_commands/file_transfer.rs | 2 +- src-tauri/src/lib_commands/mod.rs | 15 +++---- 8 files changed, 58 insertions(+), 23 deletions(-) diff --git a/src-tauri/src/lib_commands/app_api/analysis.rs b/src-tauri/src/lib_commands/app_api/analysis.rs index 525fbeca..68bf6f99 100644 --- a/src-tauri/src/lib_commands/app_api/analysis.rs +++ b/src-tauri/src/lib_commands/app_api/analysis.rs @@ -1,6 +1,14 @@ -use super::*; use std::collections::HashSet; +use tauri::Manager; + +use crate::analysis_cache; +use crate::analysis_runtime::{ + analysis_backfill_is_current_track, analysis_backfill_shared, prune_analysis_queues, + AnalysisBackfillEnqueueKind, +}; +use crate::{LoudnessCachePayload, WaveformCachePayload}; + #[tauri::command] pub(crate) fn analysis_get_waveform( track_id: String, diff --git a/src-tauri/src/lib_commands/app_api/core.rs b/src-tauri/src/lib_commands/app_api/core.rs index 0254a01d..89792878 100644 --- a/src-tauri/src/lib_commands/app_api/core.rs +++ b/src-tauri/src/lib_commands/app_api/core.rs @@ -1,4 +1,7 @@ -use super::*; +use tauri::Manager; + +use crate::lib_commands::sync::stop_audio_engine; +use crate::runtime_subsonic_wire_user_agent; #[tauri::command] pub(crate) fn greet(name: &str) -> String { diff --git a/src-tauri/src/lib_commands/app_api/integration.rs b/src-tauri/src/lib_commands/app_api/integration.rs index f1e2e15e..9d21034f 100644 --- a/src-tauri/src/lib_commands/app_api/integration.rs +++ b/src-tauri/src/lib_commands/app_api/integration.rs @@ -1,4 +1,6 @@ -use super::*; +use tauri::Emitter; + +use crate::{MprisControls, ShortcutMap}; #[tauri::command] pub(crate) fn register_global_shortcut( diff --git a/src-tauri/src/lib_commands/app_api/mod.rs b/src-tauri/src/lib_commands/app_api/mod.rs index a7a95881..8f861846 100644 --- a/src-tauri/src/lib_commands/app_api/mod.rs +++ b/src-tauri/src/lib_commands/app_api/mod.rs @@ -1,5 +1,3 @@ -use super::*; - mod cli_bridge; mod core; mod navidrome; @@ -9,11 +7,34 @@ mod remote; mod integration; mod analysis; -pub(crate) use cli_bridge::*; -pub(crate) use core::*; -pub(crate) use navidrome::*; -pub(crate) use perf::*; -pub(crate) use platform::*; -pub(crate) use remote::*; -pub(crate) use integration::*; -pub(crate) use analysis::*; +// Tauri commands re-exported for the lib.rs invoke_handler. +pub(crate) use cli_bridge::{ + cli_publish_library_list, cli_publish_player_snapshot, cli_publish_search_results, + cli_publish_server_list, +}; +pub(crate) use core::{ + exit_app, export_runtime_logs, frontend_debug_log, greet, set_logging_mode, + set_subsonic_wire_user_agent, +}; +pub(crate) use navidrome::{ + delete_radio_cover, navidrome_login, nd_create_playlist, nd_create_user, nd_delete_playlist, + nd_delete_user, nd_get_playlist, nd_get_song_path, nd_list_albums_by_artist_role, + nd_list_artists_by_role, nd_list_libraries, nd_list_playlists, nd_list_songs, nd_list_users, + nd_set_user_libraries, nd_update_playlist, nd_update_user, upload_artist_image, + upload_playlist_cover, upload_radio_cover, +}; +pub(crate) use perf::performance_cpu_snapshot; +pub(crate) use platform::{set_linux_webkit_smooth_scrolling, set_window_decorations}; +pub(crate) use remote::{ + fetch_icy_metadata, fetch_json_url, fetch_url_bytes, get_top_radio_stations, lastfm_request, + resolve_stream_url, search_radio_browser, +}; +pub(crate) use integration::{ + check_dir_accessible, mpris_set_metadata, mpris_set_playback, register_global_shortcut, + unregister_global_shortcut, +}; +pub(crate) use analysis::{ + analysis_delete_all_waveforms, analysis_delete_loudness_for_track, + analysis_enqueue_seed_from_url, analysis_get_loudness_for_track, analysis_get_waveform, + analysis_get_waveform_for_track, analysis_prune_pending_to_track_ids, +}; diff --git a/src-tauri/src/lib_commands/app_api/platform.rs b/src-tauri/src/lib_commands/app_api/platform.rs index cc48946e..eac251ce 100644 --- a/src-tauri/src/lib_commands/app_api/platform.rs +++ b/src-tauri/src/lib_commands/app_api/platform.rs @@ -1,6 +1,6 @@ //! Native-window + WebKitGTK platform tweaks exposed as Tauri commands. -use super::*; +use tauri::Manager; /// Toggle native window decorations at runtime (Linux custom title bar opt-out). #[tauri::command] diff --git a/src-tauri/src/lib_commands/app_api/remote.rs b/src-tauri/src/lib_commands/app_api/remote.rs index 2bc807bc..a9bbe185 100644 --- a/src-tauri/src/lib_commands/app_api/remote.rs +++ b/src-tauri/src/lib_commands/app_api/remote.rs @@ -1,4 +1,4 @@ -use super::*; +use crate::subsonic_wire_user_agent; pub(crate) const RADIO_PAGE_SIZE: u32 = 25; diff --git a/src-tauri/src/lib_commands/file_transfer.rs b/src-tauri/src/lib_commands/file_transfer.rs index e0084ca1..a9fdda3b 100644 --- a/src-tauri/src/lib_commands/file_transfer.rs +++ b/src-tauri/src/lib_commands/file_transfer.rs @@ -6,7 +6,7 @@ use std::time::Duration; /// downloads with progress events), build the client inline. pub(crate) fn subsonic_http_client(timeout: Duration) -> Result { reqwest::Client::builder() - .user_agent(super::subsonic_wire_user_agent()) + .user_agent(crate::subsonic_wire_user_agent()) .timeout(timeout) .build() .map_err(|e| e.to_string()) diff --git a/src-tauri/src/lib_commands/mod.rs b/src-tauri/src/lib_commands/mod.rs index 2bc2e547..f9020055 100644 --- a/src-tauri/src/lib_commands/mod.rs +++ b/src-tauri/src/lib_commands/mod.rs @@ -1,11 +1,12 @@ -use super::*; - -mod app_api; -mod cache; -mod file_transfer; -mod sync; -mod ui; +pub(crate) mod app_api; +pub(crate) mod cache; +pub(crate) mod file_transfer; +pub(crate) mod sync; +pub(crate) mod ui; +// Each subdirectory re-exports its Tauri commands explicitly. Flatten one +// more level here so `lib.rs`'s `use lib_commands::*;` lands every +// invoke-handler-registered name at lib.rs scope. pub(crate) use app_api::*; pub(crate) use cache::*; pub(crate) use sync::*;