From cb93ab20ee4fd29d285a832c7cb245f30e50f76f Mon Sep 17 00:00:00 2001 From: Pedro de Oliveira Date: Sun, 23 Apr 2023 01:02:11 +0100 Subject: [PATCH] Rustfmt --- src/lib.rs | 2 +- src/main.rs | 54 ++++++++++---------- src/voc/blocks.rs | 117 ++++++++++++++++++++++++++++++++++---------- src/voc/mod.rs | 77 +++++++++++++++++++++++------ tests/unit_tests.rs | 2 +- 5 files changed, 184 insertions(+), 68 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 4e3dea3..dbbab18 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1 +1 @@ -pub mod voc; \ No newline at end of file +pub mod voc; diff --git a/src/main.rs b/src/main.rs index 37cf2cf..eadc5fe 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,23 +6,25 @@ fn main() { .arg_required_else_help(true) .subcommand_value_name("COMMAND") .subcommand_help_heading("COMMAND") - .subcommand(clap::Command::new("info") - .about("Show information about the ") - .arg( - clap::arg!() - .value_parser(clap::value_parser!(String)) - .required(true) - .help("Filename"), - ), + .subcommand( + clap::Command::new("info") + .about("Show information about the ") + .arg( + clap::arg!() + .value_parser(clap::value_parser!(String)) + .required(true) + .help("Filename"), + ), ) - .subcommand(clap::Command::new("extract") - .about("Extract all the blocks from the ") - .arg( - clap::arg!() - .value_parser(clap::value_parser!(String)) - .required(true) - .help("Filename"), - ), + .subcommand( + clap::Command::new("extract") + .about("Extract all the blocks from the ") + .arg( + clap::arg!() + .value_parser(clap::value_parser!(String)) + .required(true) + .help("Filename"), + ), ); let matches = cmd.get_matches(); @@ -30,18 +32,20 @@ fn main() { Some(("info", arguments)) => { let filename = arguments.get_one::("file").unwrap(); let voc = voc::VocFile::from_file(filename); - println!("Version {}.{} - Checksum: {}", - voc.version.0, - voc.version.1, - if voc.checksum { "Valid!" } else { "Invalid!" } + println!( + "Version {}.{} - Checksum: {}", + voc.version.0, + voc.version.1, + if voc.checksum { "Valid!" } else { "Invalid!" } ); for (n, block) in voc.blocks.into_iter().enumerate() { if let Some(block_info) = block.get_info() { - println!("Block #{} - Start Address: {:02X?} - End Address: {:02X?} - Size {}", - n, - block_info.start_address, - block_info.end_address, - block_info.get_size() + println!( + "Block #{} - Start Address: {:02X?} - End Address: {:02X?} - Size {}", + n, + block_info.start_address, + block_info.end_address, + block_info.get_size() ); println!("{:?}", block); } diff --git a/src/voc/blocks.rs b/src/voc/blocks.rs index c6d0890..a442624 100644 --- a/src/voc/blocks.rs +++ b/src/voc/blocks.rs @@ -54,25 +54,36 @@ pub struct Terminator { impl Terminator { #[cfg_attr(feature = "cargo-clippy", allow(clippy::new_without_default))] - pub fn new() -> Self { Self { info: None, block_type: BlockType::Terminator } } - pub fn from_stream(_fp: &mut File, start_address: u32, end_address: u32) -> Self - { + pub fn new() -> Self { Self { - info: Some(BlockInfo { block_type: BlockType::Terminator, start_address, end_address }), + info: None, + block_type: BlockType::Terminator, + } + } + pub fn from_stream(_fp: &mut File, start_address: u32, end_address: u32) -> Self { + Self { + info: Some(BlockInfo { + block_type: BlockType::Terminator, + start_address, + end_address, + }), block_type: BlockType::Terminator, } } } impl Block for Terminator { - fn to_bytes(&self) -> Vec { vec![self.block_type as u8] } - fn get_info(&self) -> &Option { &self.info } + fn to_bytes(&self) -> Vec { + vec![self.block_type as u8] + } + fn get_info(&self) -> &Option { + &self.info + } } impl fmt::Debug for Terminator { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("Terminator") - .finish() + f.debug_struct("Terminator").finish() } } @@ -113,7 +124,7 @@ impl SoundData { 5 => Codec::Alaw, 6 => Codec::Ulaw, 7 => Codec::Adpcm4to16, - _ => panic!("Bad Sound format. Got {}", codec_buffer[0]) + _ => panic!("Bad Sound format. Got {}", codec_buffer[0]), }; let address = fp.stream_position().unwrap() as u32; @@ -121,7 +132,11 @@ impl SoundData { drop(fp.read(&mut data)); Self { - info: Some(BlockInfo { block_type: BlockType::SoundData, start_address, end_address }), + info: Some(BlockInfo { + block_type: BlockType::SoundData, + start_address, + end_address, + }), block_type: BlockType::SoundData, sample_rate, codec, @@ -148,7 +163,9 @@ impl Block for SoundData { result } - fn get_info(&self) -> &Option { &self.info } + fn get_info(&self) -> &Option { + &self.info + } } impl fmt::Debug for SoundData { @@ -183,7 +200,11 @@ impl SoundDataContinuation { drop(fp.read(&mut data)); Self { - info: Some(BlockInfo { block_type: BlockType::SoundDataContinuation, start_address, end_address }), + info: Some(BlockInfo { + block_type: BlockType::SoundDataContinuation, + start_address, + end_address, + }), block_type: BlockType::SoundDataContinuation, data, } @@ -203,7 +224,9 @@ impl Block for SoundDataContinuation { result.extend_from_slice(&self.data); result } - fn get_info(&self) -> &Option { &self.info } + fn get_info(&self) -> &Option { + &self.info + } } impl fmt::Debug for SoundDataContinuation { @@ -242,7 +265,11 @@ impl Silence { let sample_rate: u32 = 1000000u32 / (256u32 - frequency_divisor_buffer[0] as u32); Self { - info: Some(BlockInfo { block_type: BlockType::Silence, start_address, end_address }), + info: Some(BlockInfo { + block_type: BlockType::Silence, + start_address, + end_address, + }), block_type: BlockType::Silence, length, sample_rate, @@ -268,7 +295,9 @@ impl Block for Silence { result } - fn get_info(&self) -> &Option { &self.info } + fn get_info(&self) -> &Option { + &self.info + } } impl fmt::Debug for Silence { @@ -302,7 +331,11 @@ impl Marker { let value = u16::from_le_bytes(value_buffer); Self { - info: Some(BlockInfo { block_type: BlockType::Marker, start_address, end_address }), + info: Some(BlockInfo { + block_type: BlockType::Marker, + start_address, + end_address, + }), block_type: BlockType::Marker, value, } @@ -325,7 +358,9 @@ impl Block for Marker { result } - fn get_info(&self) -> &Option { &self.info } + fn get_info(&self) -> &Option { + &self.info + } } impl fmt::Debug for Marker { @@ -345,14 +380,24 @@ pub struct Text { } impl Text { - pub fn new(data: Vec) -> Self { Self { info: None, block_type: BlockType::Text, data } } + pub fn new(data: Vec) -> Self { + Self { + info: None, + block_type: BlockType::Text, + data, + } + } pub fn from_stream(fp: &mut File, start_address: u32, end_address: u32) -> Self { let address = fp.stream_position().unwrap() as u32; let mut data: Vec = vec![0; (end_address - address) as usize]; drop(fp.read(&mut data)); Self { - info: Some(BlockInfo { block_type: BlockType::Text, start_address, end_address }), + info: Some(BlockInfo { + block_type: BlockType::Text, + start_address, + end_address, + }), block_type: BlockType::Text, data, } @@ -374,7 +419,9 @@ impl Block for Text { result } - fn get_info(&self) -> &Option { &self.info } + fn get_info(&self) -> &Option { + &self.info + } } impl fmt::Debug for Text { @@ -407,7 +454,11 @@ impl RepeatStart { let count = u16::from_le_bytes(count_buffer) + 1; Self { - info: Some(BlockInfo { block_type: BlockType::RepeatStart, start_address, end_address }), + info: Some(BlockInfo { + block_type: BlockType::RepeatStart, + start_address, + end_address, + }), block_type: BlockType::RepeatStart, count, } @@ -430,7 +481,9 @@ impl Block for RepeatStart { result } - fn get_info(&self) -> &Option { &self.info } + fn get_info(&self) -> &Option { + &self.info + } } impl fmt::Debug for RepeatStart { @@ -450,10 +503,19 @@ pub struct RepeatEnd { impl RepeatEnd { #[cfg_attr(feature = "cargo-clippy", allow(clippy::new_without_default))] - pub fn new() -> Self { Self { info: None, block_type: BlockType::RepeatEnd } } + pub fn new() -> Self { + Self { + info: None, + block_type: BlockType::RepeatEnd, + } + } pub fn from_stream(_fp: &mut File, start_address: u32, end_address: u32) -> Self { Self { - info: Some(BlockInfo { block_type: BlockType::RepeatEnd, start_address, end_address }), + info: Some(BlockInfo { + block_type: BlockType::RepeatEnd, + start_address, + end_address, + }), block_type: BlockType::RepeatEnd, } } @@ -463,12 +525,13 @@ impl Block for RepeatEnd { fn to_bytes(&self) -> Vec { vec![self.block_type as u8] } - fn get_info(&self) -> &Option { &self.info } + fn get_info(&self) -> &Option { + &self.info + } } impl fmt::Debug for RepeatEnd { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("RepeatEnd") - .finish() + f.debug_struct("RepeatEnd").finish() } } diff --git a/src/voc/mod.rs b/src/voc/mod.rs index 3c9f541..fe7771d 100644 --- a/src/voc/mod.rs +++ b/src/voc/mod.rs @@ -28,14 +28,22 @@ impl VocFile { file.read_exact(&mut signature1_buffer).unwrap(); let signature1 = std::str::from_utf8(&signature1_buffer).unwrap(); if signature1 != Self::SIGNATURE1 { - panic!("Bad file. Expected \"{}\" got \"{}\"", Self::SIGNATURE1, signature1); + panic!( + "Bad file. Expected \"{}\" got \"{}\"", + Self::SIGNATURE1, + signature1 + ); } // Signature - 1A 1A 00 let mut signature2_buffer: [u8; 3] = [0; 3]; file.read_exact(&mut signature2_buffer).unwrap(); if signature2_buffer != Self::SIGNATURE2 { - panic!("Bad file. Expected {:02X?} got {:02X?}", Self::SIGNATURE2, signature2_buffer); + panic!( + "Bad file. Expected {:02X?} got {:02X?}", + Self::SIGNATURE2, + signature2_buffer + ); } // Version @@ -49,7 +57,11 @@ impl VocFile { file.read_exact(&mut checksum_buffer).unwrap(); let checksum_result = checksum_buffer == Self::checksum(version_int); - let mut voc_file = VocFile { version, checksum: checksum_result, blocks: Vec::new() }; + let mut voc_file = VocFile { + version, + checksum: checksum_result, + blocks: Vec::new(), + }; loop { let block_start_address = file.stream_position().unwrap() as u32; @@ -66,7 +78,7 @@ impl VocFile { 5 => BlockType::Text, 6 => BlockType::RepeatStart, 7 => BlockType::RepeatEnd, - _ => panic!("Bad block type. Got {}", block_type_buffer[0]) + _ => panic!("Bad block type. Got {}", block_type_buffer[0]), }; let block_size = match block_type { @@ -74,7 +86,12 @@ impl VocFile { _ => { let mut block_size_buffer: [u8; 3] = [0; 3]; file.read_exact(&mut block_size_buffer).unwrap(); - u32::from_le_bytes([block_size_buffer[0], block_size_buffer[1], block_size_buffer[2], 0]) + u32::from_le_bytes([ + block_size_buffer[0], + block_size_buffer[1], + block_size_buffer[2], + 0, + ]) } }; @@ -82,14 +99,46 @@ impl VocFile { let block_end_address = current_address + block_size; let block: Box = match block_type { - BlockType::Terminator => Box::new(Terminator::from_stream(&mut file, block_start_address, block_end_address)), - BlockType::SoundData => Box::new(SoundData::from_stream(&mut file, block_start_address, block_end_address)), - BlockType::SoundDataContinuation => Box::new(SoundDataContinuation::from_stream(&mut file, block_start_address, block_end_address)), - BlockType::Silence => Box::new(Silence::from_stream(&mut file, block_start_address, block_end_address)), - BlockType::Marker => Box::new(Marker::from_stream(&mut file, block_start_address, block_end_address)), - BlockType::Text => Box::new(Text::from_stream(&mut file, block_start_address, block_end_address)), - BlockType::RepeatStart => Box::new(RepeatStart::from_stream(&mut file, block_start_address, block_end_address)), - BlockType::RepeatEnd => Box::new(RepeatEnd::from_stream(&mut file, block_start_address, block_end_address)), + BlockType::Terminator => Box::new(Terminator::from_stream( + &mut file, + block_start_address, + block_end_address, + )), + BlockType::SoundData => Box::new(SoundData::from_stream( + &mut file, + block_start_address, + block_end_address, + )), + BlockType::SoundDataContinuation => Box::new(SoundDataContinuation::from_stream( + &mut file, + block_start_address, + block_end_address, + )), + BlockType::Silence => Box::new(Silence::from_stream( + &mut file, + block_start_address, + block_end_address, + )), + BlockType::Marker => Box::new(Marker::from_stream( + &mut file, + block_start_address, + block_end_address, + )), + BlockType::Text => Box::new(Text::from_stream( + &mut file, + block_start_address, + block_end_address, + )), + BlockType::RepeatStart => Box::new(RepeatStart::from_stream( + &mut file, + block_start_address, + block_end_address, + )), + BlockType::RepeatEnd => Box::new(RepeatEnd::from_stream( + &mut file, + block_start_address, + block_end_address, + )), }; voc_file.blocks.push(block); @@ -129,4 +178,4 @@ impl VocFile { drop(fp.write(&self.to_bytes())); drop(fp.flush()); } -} \ No newline at end of file +} diff --git a/tests/unit_tests.rs b/tests/unit_tests.rs index ffe0ec0..244d0d7 100644 --- a/tests/unit_tests.rs +++ b/tests/unit_tests.rs @@ -21,4 +21,4 @@ mod tests { assert_eq!(0xB5, block.end_address); assert_eq!(155, block.get_size()); } -} \ No newline at end of file +}