diff --git a/src/voc.rs b/src/voc.rs index 91452c0..e7c853a 100644 --- a/src/voc.rs +++ b/src/voc.rs @@ -1,5 +1,3 @@ -#![allow(clippy::new_without_default)] - use std::fs::File; use std::io::{Read, Seek, Write}; @@ -18,6 +16,10 @@ impl VocFile { const SIGNATURE1: &'static str = "Creative Voice File"; const SIGNATURE2: [u8; 3] = [0x1A, 0x1A, 0x0]; + fn checksum(version: i16) -> [u8; 2] { + (!version + 0x1234).to_le_bytes() + } + pub fn from_file(file_name: &str) -> Self { let mut file = File::open(file_name).unwrap(); @@ -45,8 +47,7 @@ impl VocFile { // Version checksum let mut checksum_buffer: [u8; 2] = [0; 2]; drop(file.read(&mut checksum_buffer)); - let checksum = (!version_int + 0x1234).to_le_bytes(); - let checksum_result = checksum_buffer == checksum; + let checksum_result = checksum_buffer == Self::checksum(version_int); let mut voc_file = VocFile { version, checksum: checksum_result, blocks: Vec::new() }; @@ -136,8 +137,7 @@ impl VocFile { // Version Checksum let version_int = i16::from_le_bytes([self.version.1, self.version.0]); - let checksum = (!version_int + 0x1234).to_le_bytes(); - result.extend_from_slice(&checksum); + result.extend_from_slice(&Self::checksum(version_int)); // Iterate Blocks for block in &self.blocks {