1
0
Fork 0
mirror of https://codeberg.org/demostf/parser.git synced 2026-06-04 02:24:12 +02:00

some error cleanup

This commit is contained in:
Robin Appelman 2019-10-05 13:12:25 +02:00
commit 8d6ef8e2fb
15 changed files with 311 additions and 189 deletions

View file

@ -9,9 +9,7 @@ use crate::demo::gamevent::{
RawGameEvent,
};
use crate::demo::parser::ParseBitSkip;
use crate::{
GameEventError, MalformedDemoError, Parse, ParseError, ParserState, ReadResult, Result, Stream,
};
use crate::{GameEventError, Parse, ParseError, ParserState, ReadResult, Result, Stream};
fn read_event_value(stream: &mut Stream, definition: &GameEventEntry) -> Result<GameEventValue> {
Ok(match definition.kind {
@ -48,11 +46,7 @@ impl Parse for GameEventMessage {
values,
}
}
None => {
return Err(
MalformedDemoError::MalformedGameEvent(GameEventError::UnknownType).into(),
)
}
None => return Err(ParseError::MalformedGameEvent(GameEventError::UnknownType)),
};
let event = GameEvent::from_raw_event(raw_event)?;
Ok(GameEventMessage { event })

View file

@ -15,7 +15,7 @@ use crate::demo::message::tempentities::*;
use crate::demo::message::usermessage::*;
use crate::demo::message::voice::*;
use crate::demo::parser::ParseBitSkip;
use crate::{MalformedDemoError, Parse, ParseError, ParserState, Result, Stream};
use crate::{Parse, ParseError, ParserState, Result, Stream};
pub mod bspdecal;
pub mod classinfo;
@ -65,7 +65,7 @@ impl Parse for MessageType {
fn parse(stream: &mut Stream, _state: &ParserState) -> Result<Self> {
let raw = stream.read_int(6)?;
let prop_type: Option<MessageType> = MessageType::from_u8(raw);
prop_type.ok_or(MalformedDemoError::InvalidMessageType(raw).into())
prop_type.ok_or(ParseError::InvalidMessageType(raw))
}
}

View file

@ -6,7 +6,7 @@ use crate::demo::message::stringtable::{log_base2, read_var_int};
use crate::demo::packet::datatable::{ClassId, SendTable, SendTableName, ServerClass};
use crate::demo::parser::ParseBitSkip;
use crate::demo::sendprop::{SendProp, SendPropDefinition, SendPropValue};
use crate::{MalformedDemoError, Parse, ParseError, ParserState, ReadResult, Result, Stream};
use crate::{Parse, ParseError, ParserState, ReadResult, Result, Stream};
use parse_display::{Display, FromStr};
use std::collections::HashMap;
use std::fmt;
@ -111,7 +111,7 @@ fn get_send_table(state: &ParserState, class: ClassId) -> Result<&SendTable> {
state
.send_tables
.get(usize::from(class))
.ok_or_else(|| MalformedDemoError::UnknownServerClass(class).into())
.ok_or_else(|| ParseError::UnknownServerClass(class))
}
fn get_entity_for_update(
@ -122,7 +122,7 @@ fn get_entity_for_update(
let class_id = *state
.entity_classes
.get(&entity_index)
.ok_or_else(|| MalformedDemoError::UnknownEntity(entity_index))?;
.ok_or_else(|| ParseError::UnknownEntity(entity_index))?;
Ok(PacketEntity {
server_class: class_id,
@ -207,7 +207,7 @@ impl PacketEntitiesMessage {
let send_table = state
.send_tables
.get(usize::from(class_index))
.ok_or_else(|| MalformedDemoError::UnknownServerClass(class_index))?;
.ok_or_else(|| ParseError::UnknownServerClass(class_index))?;
let props = match state.instance_baselines[baseline_index].get(&entity_index) {
Some(baseline) => baseline.clone(),
@ -250,7 +250,7 @@ impl PacketEntitiesMessage {
});
}
None => {
return Err(ParseError::from(MalformedDemoError::PropIndexOutOfBounds {
return Err(ParseError::from(ParseError::PropIndexOutOfBounds {
index,
prop_count: send_table.flattened_props.len(),
}))

View file

@ -6,7 +6,7 @@ use crate::demo::packet::stringtable::{
ExtraData, FixedUserDataSize, StringTable, StringTableEntry,
};
use crate::demo::parser::ParseBitSkip;
use crate::{MalformedDemoError, Parse, ParseError, ParserState, ReadResult, Result, Stream};
use crate::{Parse, ParseError, ParserState, ReadResult, Result, Stream};
#[derive(Debug)]
pub struct CreateStringTableMessage {
@ -122,7 +122,7 @@ impl Parse for UpdateStringTableMessage {
let entries = match state.string_tables.get(table_id as usize) {
Some(table) => parse_string_table_update(&mut data, table, changed),
None => return Err(MalformedDemoError::StringTableNotFound(table_id).into()),
None => return Err(ParseError::StringTableNotFound(table_id).into()),
}?;
Ok(UpdateStringTableMessage { table_id, entries })