1
0
Fork 0
mirror of https://codeberg.org/demostf/parser.git synced 2026-06-03 10:14:06 +02:00

box the 2 biggest message variants

This commit is contained in:
Robin Appelman 2019-10-11 20:12:32 +02:00
commit 11140b149b
2 changed files with 6 additions and 4 deletions

View file

@ -26,7 +26,7 @@ fn read_event_value(stream: &mut Stream, definition: &GameEventEntry) -> Result<
#[derive(Debug)] #[derive(Debug)]
pub struct GameEventMessage { pub struct GameEventMessage {
pub event: GameEvent, pub event: Box<GameEvent>,
} }
impl Parse for GameEventMessage { impl Parse for GameEventMessage {
@ -49,7 +49,9 @@ impl Parse for GameEventMessage {
None => return Err(ParseError::MalformedGameEvent(GameEventError::UnknownType)), None => return Err(ParseError::MalformedGameEvent(GameEventError::UnknownType)),
}; };
let event = GameEvent::from_raw_event(raw_event)?; let event = GameEvent::from_raw_event(raw_event)?;
Ok(GameEventMessage { event }) Ok(GameEventMessage {
event: Box::new(event),
})
} }
} }

View file

@ -78,7 +78,7 @@ pub enum Message {
SetConVar(SetConVarMessage), SetConVar(SetConVarMessage),
SigOnState(SigOnStateMessage), SigOnState(SigOnStateMessage),
Print(PrintMessage), Print(PrintMessage),
ServerInfo(ServerInfoMessage), ServerInfo(Box<ServerInfoMessage>),
ClassInfo(ClassInfoMessage), ClassInfo(ClassInfoMessage),
SetPause(SetPauseMessage), SetPause(SetPauseMessage),
CreateStringTable(CreateStringTableMessage), CreateStringTable(CreateStringTableMessage),
@ -158,7 +158,7 @@ impl Message {
} }
MessageType::Print => Message::Print(PrintMessage::parse(stream, state)?), MessageType::Print => Message::Print(PrintMessage::parse(stream, state)?),
MessageType::ServerInfo => { MessageType::ServerInfo => {
Message::ServerInfo(ServerInfoMessage::parse(stream, state)?) Message::ServerInfo(Box::new(ServerInfoMessage::parse(stream, state)?))
} }
MessageType::ClassInfo => Message::ClassInfo(ClassInfoMessage::parse(stream, state)?), MessageType::ClassInfo => Message::ClassInfo(ClassInfoMessage::parse(stream, state)?),
MessageType::SetPause => Message::SetPause(SetPauseMessage::parse(stream, state)?), MessageType::SetPause => Message::SetPause(SetPauseMessage::parse(stream, state)?),