Remove panic!
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Pedro de Oliveira 2023-04-30 01:54:05 +01:00
parent f393fdacd2
commit 72adbdb624
1 changed files with 8 additions and 7 deletions

View File

@ -1,6 +1,7 @@
use nom::bytes::streaming::{tag, take}; use nom::bytes::streaming::{tag, take};
use nom::error::{Error, ErrorKind};
use nom::number::streaming::{le_u16, le_u24, le_u32, le_u8}; use nom::number::streaming::{le_u16, le_u24, le_u32, le_u8};
use nom::IResult; use nom::{Err, IResult};
#[derive(Eq, Debug, PartialEq)] #[derive(Eq, Debug, PartialEq)]
pub enum Codec { pub enum Codec {
@ -147,7 +148,7 @@ fn parse_sound_data(input: &[u8]) -> IResult<&[u8], BlockType> {
4 => Codec::Pcm16BitSigned, 4 => Codec::Pcm16BitSigned,
5 => Codec::Alaw, 5 => Codec::Alaw,
6 => Codec::Ulaw, 6 => Codec::Ulaw,
_ => panic!("Invalid sound format"), _ => return Err(Err::Error(Error::new(input, ErrorKind::Alt))),
}; };
let (input, data) = take(block_size - 2)(input)?; let (input, data) = take(block_size - 2)(input)?;
Ok(( Ok((
@ -221,7 +222,7 @@ fn parse_extra_information(input: &[u8]) -> IResult<&[u8], BlockType> {
4 => Codec::Pcm16BitSigned, 4 => Codec::Pcm16BitSigned,
5 => Codec::Alaw, 5 => Codec::Alaw,
6 => Codec::Ulaw, 6 => Codec::Ulaw,
_ => panic!("Invalid sound format"), _ => return Err(Err::Error(Error::new(input, ErrorKind::Alt))),
}; };
let sample_rate: u32 = let sample_rate: u32 =
256000000_u32 / ((channels as u32 + 1) * (65536 - frequency_divisor as u32)); 256000000_u32 / ((channels as u32 + 1) * (65536 - frequency_divisor as u32));
@ -252,7 +253,7 @@ fn parse_sound_data_new(input: &[u8]) -> IResult<&[u8], BlockType> {
5 => Codec::Alaw, 5 => Codec::Alaw,
6 => Codec::Ulaw, 6 => Codec::Ulaw,
0x0200 => Codec::Adpcm4to16, 0x0200 => Codec::Adpcm4to16,
_ => panic!("Invalid sound format"), _ => return Err(Err::Error(Error::new(input, ErrorKind::Alt))),
}; };
Ok(( Ok((
input, input,
@ -280,7 +281,7 @@ pub fn parse_block(input: &[u8]) -> IResult<&[u8], BlockType> {
7 => Ok((input, BlockType::RepeatEnd)), 7 => Ok((input, BlockType::RepeatEnd)),
8 => parse_extra_information(input), 8 => parse_extra_information(input),
9 => parse_sound_data_new(input), 9 => parse_sound_data_new(input),
_ => panic!("Invalid block type - {}", block_type), _ => Err(Err::Error(Error::new(input, ErrorKind::Alt))),
} }
} }
@ -291,7 +292,7 @@ pub fn parse_voc(input: &[u8]) -> IResult<&[u8], Voc> {
let (input, version_major) = le_u8(input)?; let (input, version_major) = le_u8(input)?;
let (input, checksum) = le_u16(input)?; let (input, checksum) = le_u16(input)?;
// Calculate checksum from version // Calculate checksum
let checksum2 = (!i16::from_le_bytes([version_minor, version_major]) + 0x1234) as u16; let checksum2 = (!i16::from_le_bytes([version_minor, version_major]) + 0x1234) as u16;
let valid = checksum == checksum2; let valid = checksum == checksum2;
@ -304,7 +305,7 @@ pub fn parse_voc(input: &[u8]) -> IResult<&[u8], Voc> {
blocks.push(block); blocks.push(block);
remaining_input = input; remaining_input = input;
} }
Err(nom::Err::Incomplete(_)) => { Err(Err::Incomplete(_)) => {
break; break;
} }
Err(err) => { Err(err) => {