chore: remove dead code and stale doc claims found in multi-agent sweep
Test / test (pull_request) Successful in 37m58s
Test / test (pull_request) Successful in 37m58s
Compiler-verified via RUSTFLAGS=--force-warn dead_code plus workspace-wide reference greps; three parallel audit agents covered the engine crate, the other eight crates, and Copilot commit-message-vs-diff drift. Removed: - replay_overlay/input.rs: 19 orphaned twins (~950 lines) of items also defined in mod.rs — the glob re-export made the mod.rs copies win and the file-level #![allow(dead_code)] hid the corpses. The live keyboard/ button handlers and ReplayScrubKeyHold stay; the allow is retired. - retarget_animation (never called; doc examples were its only refs) - ScanThemesRequestEvent (never registered/written/read; its doc claimed a handle_scan_themes consumer that does not exist) - _VEC3_REFERENCED workaround const + now-unneeded Vec3 import - solitaire_data: load_stats/save_stats/time_attack_session_with_now default-path wrappers (the _from/_to variants are the live API) and surplus re-export names (settings MIN/MAX bounds, token loaders) - solitaire_core: Session re-export (no external consumer) - solitaire_wasm: ReplayPlayer::is_finished (no JS caller) - solitaire_app: build_app wrapper (real entry is run()) Doc fixes: - audio_plugin: WAV count 5→7, add FoundationCompletedEvent table row, drop bogus 'placeholder' label, bevy_kira_audio→kira - ToastVariant::Warning: variant is live (5 writer plugins); dropped the stale allow(dead_code) and its 'currently unused' comment Deliberately kept: Spider module (staged forward work), WinCascadePlugin (documented alternative cascade, pending owner decision), SyncCompleteEvent and solitaire_sync ApiError/merge_at (§8 change-controlled, flagged to owner). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -105,10 +105,9 @@ pub use stats::{StatsExt, StatsSnapshot};
|
||||
pub mod storage;
|
||||
pub use storage::{
|
||||
TimeAttackSession, cleanup_orphaned_tmp_files, delete_game_state_at,
|
||||
delete_time_attack_session_at, game_state_file_path, load_game_state_from, load_stats,
|
||||
load_stats_from, load_time_attack_session_from, load_time_attack_session_from_at,
|
||||
save_game_state_to, save_stats, save_stats_to, save_time_attack_session_to, stats_file_path,
|
||||
time_attack_session_path, time_attack_session_with_now,
|
||||
delete_time_attack_session_at, game_state_file_path, load_game_state_from, load_stats_from,
|
||||
load_time_attack_session_from, save_game_state_to, save_stats_to, save_time_attack_session_to,
|
||||
stats_file_path, time_attack_session_path,
|
||||
};
|
||||
|
||||
pub mod achievements;
|
||||
@@ -136,11 +135,9 @@ pub use difficulty_seeds::{DifficultySeeds, seeds_for};
|
||||
|
||||
pub mod settings;
|
||||
pub use settings::{
|
||||
AnimSpeed, REPLAY_MOVE_INTERVAL_MAX_SECS, REPLAY_MOVE_INTERVAL_MIN_SECS,
|
||||
REPLAY_MOVE_INTERVAL_STEP_SECS, SOLVER_DEAL_RETRY_CAP, Settings, SyncBackend,
|
||||
TIME_BONUS_MULTIPLIER_MAX, TIME_BONUS_MULTIPLIER_MIN, TIME_BONUS_MULTIPLIER_STEP,
|
||||
TOOLTIP_DELAY_MAX_SECS, TOOLTIP_DELAY_MIN_SECS, TOOLTIP_DELAY_STEP_SECS, Theme, WindowGeometry,
|
||||
load_settings_from, save_settings_to, settings_file_path,
|
||||
AnimSpeed, REPLAY_MOVE_INTERVAL_STEP_SECS, SOLVER_DEAL_RETRY_CAP, Settings, SyncBackend,
|
||||
TIME_BONUS_MULTIPLIER_STEP, TOOLTIP_DELAY_STEP_SECS, Theme, WindowGeometry, load_settings_from,
|
||||
save_settings_to, settings_file_path,
|
||||
};
|
||||
|
||||
#[cfg(target_os = "android")]
|
||||
@@ -152,9 +149,7 @@ mod android_keystore;
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
pub mod auth_tokens;
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
pub use auth_tokens::{
|
||||
TokenError, delete_tokens, load_access_token, load_refresh_token, store_tokens,
|
||||
};
|
||||
pub use auth_tokens::{TokenError, delete_tokens, store_tokens};
|
||||
|
||||
pub mod sync_client;
|
||||
pub use sync_client::LocalOnlyProvider;
|
||||
|
||||
@@ -46,22 +46,6 @@ pub fn save_stats_to(path: &Path, stats: &StatsSnapshot) -> io::Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Load stats from the platform default path. Returns default if the path
|
||||
/// is unavailable or the file is missing/corrupt.
|
||||
pub fn load_stats() -> StatsSnapshot {
|
||||
stats_file_path()
|
||||
.map(|p| load_stats_from(&p))
|
||||
.unwrap_or_default()
|
||||
}
|
||||
|
||||
/// Save stats to the platform default path. Returns an error if the platform
|
||||
/// data dir is unavailable or the write fails.
|
||||
pub fn save_stats(stats: &StatsSnapshot) -> io::Result<()> {
|
||||
let path = stats_file_path()
|
||||
.ok_or_else(|| io::Error::new(io::ErrorKind::NotFound, "platform data dir unavailable"))?;
|
||||
save_stats_to(&path, stats)
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// In-progress game state
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -245,18 +229,6 @@ pub fn delete_time_attack_session_at(path: &Path) -> io::Result<()> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Convenience helper for callers that want to stamp a session with the
|
||||
/// current wall-clock time. Equivalent to constructing the struct
|
||||
/// manually and setting `saved_at_unix_secs` to `SystemTime::now()`.
|
||||
pub fn time_attack_session_with_now(remaining_secs: f32, wins: u32) -> TimeAttackSession {
|
||||
let now = Utc::now().timestamp().max(0) as u64;
|
||||
TimeAttackSession {
|
||||
remaining_secs,
|
||||
wins,
|
||||
saved_at_unix_secs: now,
|
||||
}
|
||||
}
|
||||
|
||||
/// Inner helper: delete `*.tmp` entries inside `dir`.
|
||||
///
|
||||
/// Per-file errors (already deleted, permission denied) are silently ignored.
|
||||
|
||||
Reference in New Issue
Block a user