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

some minor enum cleanup

This commit is contained in:
Robin Appelman 2021-07-21 14:28:45 +02:00
commit 2ebd7e9693
3 changed files with 7 additions and 22 deletions

View file

@ -1,9 +1,5 @@
use num_enum::TryFromPrimitive;
pub use generated::*;
use serde_repr::{Deserialize_repr, Serialize_repr};
use crate::demo::message::bspdecal::*;
use crate::demo::message::classinfo::*;
use crate::demo::message::gameevent::*;
@ -16,6 +12,7 @@ use crate::demo::message::voice::*;
use crate::demo::parser::{Encode, ParseBitSkip};
use crate::{Parse, ParserState, Result, Stream};
use bitbuffer::{BitRead, BitWrite, BitWriteStream, LittleEndian};
use serde_repr::{Deserialize_repr, Serialize_repr};
pub mod bspdecal;
pub mod classinfo;
@ -29,16 +26,7 @@ pub mod usermessage;
pub mod voice;
#[derive(
TryFromPrimitive,
BitRead,
BitWrite,
Debug,
Clone,
Copy,
PartialEq,
Eq,
Serialize_repr,
Deserialize_repr,
BitRead, BitWrite, Debug, Clone, Copy, PartialEq, Eq, Serialize_repr, Deserialize_repr,
)]
#[repr(u8)]
#[discriminant_bits = 6]

View file

@ -1,14 +1,13 @@
use bitbuffer::{BitRead, BitWrite, BitWriteStream, LittleEndian};
use num_enum::TryFromPrimitive;
use serde::{Deserialize, Serialize};
use std::convert::TryFrom;
use crate::demo::handle_utf8_error;
use crate::{ReadResult, Stream};
#[derive(TryFromPrimitive, Clone, Copy, Debug, PartialEq, Eq)]
#[derive(BitRead, BitWrite, Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
#[discriminant_bits = 8]
pub enum UserMessageType {
Geiger = 0,
Train = 1,
@ -98,8 +97,7 @@ impl UserMessage<'_> {
impl<'a> BitRead<'a, LittleEndian> for UserMessage<'a> {
fn read(stream: &mut Stream<'a>) -> ReadResult<Self> {
let message_type =
UserMessageType::try_from(stream.read::<u8>()?).unwrap_or(UserMessageType::Unknown);
let message_type = stream.read().unwrap_or(UserMessageType::Unknown);
let length = stream.read_int(11)?;
let mut data = stream.read_bits(length)?;
let message = match message_type {
@ -123,7 +121,7 @@ impl<'a> BitRead<'a, LittleEndian> for UserMessage<'a> {
impl<'a> BitWrite<LittleEndian> for UserMessage<'a> {
fn write(&self, stream: &mut BitWriteStream<LittleEndian>) -> ReadResult<()> {
(self.message_type() as u8).write(stream)?;
self.message_type().write(stream)?;
stream.reserve_length(11, |stream| match self {
UserMessage::SayText2(body) => stream.write(body),
UserMessage::Text(body) => stream.write(body),

View file

@ -1,5 +1,4 @@
use bitbuffer::{BitRead, BitWrite, BitWriteStream, LittleEndian};
use num_enum::TryFromPrimitive;
use crate::{Parse, ParserState, Result, Stream};
@ -32,7 +31,7 @@ pub enum Packet<'a> {
StringTables(StringTablePacket<'a>),
}
#[derive(BitRead, BitWrite, TryFromPrimitive, Debug, Clone, Copy, Eq, PartialEq)]
#[derive(BitRead, BitWrite, Debug, Clone, Copy, Eq, PartialEq)]
#[discriminant_bits = 8]
#[repr(u8)]
pub enum PacketType {