Clippy fixes

This commit is contained in:
Pedro de Oliveira 2022-11-08 19:32:28 +00:00
parent f407176a5e
commit 1bea3f994a
1 changed files with 17 additions and 16 deletions

View File

@ -17,7 +17,7 @@ impl DatHeader {
let mut file_dat: [u8; 2] = [0; 2]; let mut file_dat: [u8; 2] = [0; 2];
let _ = f.read(&mut file_dat); let _ = f.read(&mut file_dat);
// Create a new DatHeader // Create a new DatHeader
let mut dat = DatHeader::from_bytes(file_dat); let mut dat = Self::from_bytes(file_dat);
// Get parse info about every file // Get parse info about every file
for _ in 0..dat.total { for _ in 0..dat.total {
let mut file_dat: [u8; 25] = [0; 25]; let mut file_dat: [u8; 25] = [0; 25];
@ -35,7 +35,7 @@ impl DatHeader {
fn from_bytes(buffer: [u8; 2]) -> Self { fn from_bytes(buffer: [u8; 2]) -> Self {
Self { Self {
total: u16::from_le_bytes(buffer.try_into().expect("Slice with incorrect length")), total: u16::from_le_bytes(buffer),
files: Vec::new() files: Vec::new()
} }
} }
@ -93,8 +93,7 @@ struct JsonFile {
padding: u32, padding: u32,
} }
fn extract_file(rec: &DatFile) { fn extract_file(rec: &DatFile, source: &mut File) {
let mut source = File::open("EDEN.DAT").unwrap();
let _ = source.seek(SeekFrom::Start(rec.offset as u64)).unwrap(); let _ = source.seek(SeekFrom::Start(rec.offset as u64)).unwrap();
let filename = format!("extract/{}", rec.name); let filename = format!("extract/{}", rec.name);
@ -102,15 +101,15 @@ fn extract_file(rec: &DatFile) {
let mut contents: Vec<u8> = Vec::new(); let mut contents: Vec<u8> = Vec::new();
let _ = source.take(rec.size as u64).read_to_end(&mut contents); let _ = source.take(rec.size as u64).read_to_end(&mut contents);
let _ = destination.write(&*contents); let _ = destination.write(&contents);
} }
fn create_json(dat: &DatHeader) { fn create_json(dat: &DatHeader, destination: &str) {
let mut file_list: Vec<String> = Vec::new(); let mut file_list: Vec<String> = Vec::new();
for f in &dat.files { for f in &dat.files {
file_list.push(format!("extract/{}", f.name.clone())); file_list.push(format!("extract/{}", f.name.clone()));
} }
let mut w = BufWriter::new(File::create("list.json").unwrap()); let mut w = BufWriter::new(File::create(destination).unwrap());
serde_json::to_writer_pretty(&mut w, &file_list).unwrap(); serde_json::to_writer_pretty(&mut w, &file_list).unwrap();
w.flush().unwrap(); w.flush().unwrap();
} }
@ -127,13 +126,13 @@ fn create_dat(files: Vec<String>) {
let _ = f.write(&dat.to_bytes()); let _ = f.write(&dat.to_bytes());
let mut jsonfiles : Vec<JsonFile> = Vec::new(); let mut jsonfiles : Vec<JsonFile> = Vec::new();
let mut address: i32 = 65536; let mut address: i32 = 0x0001_0000;
for file in files { for file in files {
// Get file size // Get file size
let file_size: i32 = fs::metadata(&file).unwrap().len() as i32; let file_size: i32 = fs::metadata(&file).unwrap().len() as i32;
// Split name from path // Split name from path
let split: Vec<_> = file.split('/').collect(); let split: Vec<_> = file.split('/').collect();
let file_name = split[1].clone(); let file_name = split[1];
// Save file info header // Save file info header
let datfile = DatFile::new(file_name.to_string(), file_size as u32, address as u32, 0); let datfile = DatFile::new(file_name.to_string(), file_size as u32, address as u32, 0);
let _ = f.write(&datfile.to_bytes()); let _ = f.write(&datfile.to_bytes());
@ -145,8 +144,8 @@ fn create_dat(files: Vec<String>) {
// Fill with zeros until 65535 // Fill with zeros until 65535
let current_position = f.seek(SeekFrom::Current(0)).unwrap(); let current_position = f.seek(SeekFrom::Current(0)).unwrap();
if current_position < 65536 { if current_position < 0x0001_0000 {
for _ in current_position..65536 { for _ in current_position..0x0001_0000 {
let _ = f.write(&[0]); let _ = f.write(&[0]);
} }
} }
@ -156,7 +155,7 @@ fn create_dat(files: Vec<String>) {
let mut source = File::open(file.name).unwrap(); let mut source = File::open(file.name).unwrap();
let mut contents: Vec<u8> = Vec::new(); let mut contents: Vec<u8> = Vec::new();
let _ = source.read_to_end(&mut contents); let _ = source.read_to_end(&mut contents);
let _ = f.write(&*contents); let _ = f.write(&contents);
let current_position= f.seek(SeekFrom::Current(0)).unwrap() as u32; let current_position= f.seek(SeekFrom::Current(0)).unwrap() as u32;
if current_position < file.padding { if current_position < file.padding {
for _ in current_position..file.padding { for _ in current_position..file.padding {
@ -181,15 +180,17 @@ fn main() {
match cmd.get_matches().subcommand_name() { match cmd.get_matches().subcommand_name() {
Some("extract") => { Some("extract") => {
let dat = DatHeader::new("EDEN.DAT"); let dat = DatHeader::new("EDEN.DAT");
let mut source = File::open("EDEN.DAT").unwrap();
for f in dat.files { for f in dat.files {
extract_file(&f); extract_file(&f, &mut source);
println!("Extracting {} - Size: {}, Offset: {}", &f.name, &f.size, &f.offset) println!("Extracting {} - Size: {}, Offset: {}", &f.name, &f.size, &f.offset);
} }
} }
Some("json") => { Some("json") => {
let destination = "list.json";
let dat = DatHeader::new("EDEN.DAT"); let dat = DatHeader::new("EDEN.DAT");
create_json(&dat); create_json(&dat, destination);
println!("Created {}", "list.json"); println!("Created {destination}");
} }
Some("generate") => { Some("generate") => {
let files = read_json(); let files = read_json();