Replace read with read_exact

This commit is contained in:
Pedro de Oliveira 2023-04-23 00:36:59 +01:00
parent 858ac2e2a5
commit 18fbcfa71f
1 changed files with 5 additions and 5 deletions

View File

@ -25,7 +25,7 @@ impl VocFile {
// Signature - Creative Voice File
let mut signature1_buffer: [u8; 19] = [0; 19];
drop(file.read(&mut signature1_buffer));
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);
@ -33,20 +33,20 @@ impl VocFile {
// Signature - 1A 1A 00
let mut signature2_buffer: [u8; 3] = [0; 3];
drop(file.read(&mut signature2_buffer));
file.read_exact(&mut signature2_buffer).unwrap();
if signature2_buffer != Self::SIGNATURE2 {
panic!("Bad file. Expected {:02X?} got {:02X?}", Self::SIGNATURE2, signature2_buffer);
}
// Version
let mut version_buffer: [u8; 2] = [0; 2];
drop(file.read(&mut version_buffer));
file.read_exact(&mut version_buffer).unwrap();
let version_int = i16::from_le_bytes(version_buffer);
let version = (version_buffer[1], version_buffer[0]);
// Version checksum
let mut checksum_buffer: [u8; 2] = [0; 2];
drop(file.read(&mut checksum_buffer));
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() };
@ -56,7 +56,7 @@ impl VocFile {
// Block Type
let mut block_type_buffer: [u8; 1] = [0];
drop(file.read(&mut block_type_buffer));
file.read_exact(&mut block_type_buffer).unwrap();
let block_type = match block_type_buffer[0] {
0 => BlockType::Terminator,
1 => BlockType::SoundData,