80 findings, not the 14 the first run showed -- clippy stops at the first failing compilation unit, so `--keep-going` is what makes the list complete. 60 were machine-applicable (`cargo clippy --fix`). The rest by hand: * five descending `sort_by` -> `sort_by_key(Reverse(..))` * `chunks_exact(4)` on both sides of four zips, so the compared items stay `[u8; 4]` rather than one array against one slice * three `type` aliases for the census maps and the captured-quad tuple * `&PathBuf` -> `&Path` in two disc tests * two range loops; one of them keeps `#[allow(needless_range_loop)]` with the reason -- the index is into a map's value, which changes each iteration * the module doc list in `invert_capture` re-indented to markdown's rules * `blit`'s eight arguments get `#[allow(too_many_arguments)]`, not a struct One dead `let off = b.len();` in a `ratc` test is dropped rather than renamed. The sibling test at :162 is the one that asserts an offset; if this one was meant to as well, that is a test change and not a lint fix. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
22 lines
865 B
Rust
22 lines
865 B
Rust
use sylpheed_formats::{localization::TextIndex, PakArchive};
|
|
fn main() {
|
|
let disc = std::env::var("SYLPHEED_DISC").unwrap();
|
|
let pak = PakArchive::open(format!("{disc}/dat/GP_MAIN_GAME_E.pak")).unwrap();
|
|
let text = TextIndex::build(&pak);
|
|
for n in 1..=16u32 {
|
|
let sid = format!("S{n:02}");
|
|
// primary objective across phases (first that resolves)
|
|
let obj: Vec<String> = (1..=3)
|
|
.flat_map(|p| text.objectives(&sid, p))
|
|
.map(|s| s.to_string())
|
|
.collect();
|
|
let lose: Vec<String> = (1..=3)
|
|
.flat_map(|p| text.lose_conditions(&sid, p))
|
|
.map(|s| s.to_string())
|
|
.collect();
|
|
let full_obj = obj.join(" ");
|
|
let full_lose = lose.into_iter().take(2).collect::<Vec<_>>().join(" ");
|
|
println!("{sid}\t{full_obj}\t{full_lose}");
|
|
}
|
|
}
|