wotbreplay-parser 0.3.0-alpha.1

World of Tanks Blitz replay parser
Documentation
use byteorder::{LittleEndian, ReadBytesExt};
use serde::Serialize;

use crate::result::Result;

#[derive(Debug, Serialize)]
pub enum EntityMethod {
    /// TODO: team composition.
    Subtype2F,

    /// Default variant when subtype is not known.
    Unknown { sub_type: u32, payload: Vec<u8> },
}

impl EntityMethod {
    pub fn new(payload: Vec<u8>) -> Result<Self> {
        let mut reader = payload.as_slice();

        reader.read_u32::<LittleEndian>()?;
        let sub_type = reader.read_u32::<LittleEndian>()?;

        let this = match sub_type {
            0x2F => Self::Subtype2F,
            _ => Self::Unknown { sub_type, payload },
        };
        Ok(this)
    }
}