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

update codegen

This commit is contained in:
Robin Appelman 2021-07-25 14:47:40 +02:00
commit 058ee0b96d
3 changed files with 414 additions and 411 deletions

9
codegen/Cargo.lock generated
View file

@ -94,14 +94,15 @@ dependencies = [
[[package]] [[package]]
name = "bitbuffer" name = "bitbuffer"
version = "0.10.1" version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ecda732bb39816e05e1d037def865ab8744579ffd53aa7586a17eb0bc7492170" checksum = "29a6edc6bf48f16337689fb5122a6407713ecc23e57fbbcfde367c51fdb6aec1"
dependencies = [ dependencies = [
"bitbuffer_derive", "bitbuffer_derive",
"err-derive", "err-derive",
"memchr", "memchr",
"num-traits 0.2.14", "num-traits 0.2.14",
"serde",
] ]
[[package]] [[package]]
@ -578,9 +579,9 @@ dependencies = [
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.27" version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" checksum = "5c7ed8b8c7b886ea3ed7dde405212185f423ab44682667c8c6dd14aa1d9f6612"
dependencies = [ dependencies = [
"unicode-xid", "unicode-xid",
] ]

File diff suppressed because it is too large Load diff

View file

@ -3,7 +3,7 @@ extern crate proc_macro;
use fnv::FnvHashMap; use fnv::FnvHashMap;
use inflector::Inflector; use inflector::Inflector;
use lazy_static::lazy_static; use lazy_static::lazy_static;
use proc_macro2::{Ident, Literal, Span, TokenStream}; use proc_macro2::{Ident, Span, TokenStream};
use quote::quote; use quote::quote;
use tf_demo_parser::demo::gameevent_gen::get_sizes; use tf_demo_parser::demo::gameevent_gen::get_sizes;
use tf_demo_parser::demo::gamevent::{GameEventDefinition, GameEventValueType}; use tf_demo_parser::demo::gamevent::{GameEventDefinition, GameEventValueType};
@ -229,6 +229,7 @@ pub fn generate_game_events(demo: Demo) -> TokenStream {
use crate::demo::Stream; use crate::demo::Stream;
use crate::{ParseError, Result}; use crate::{ParseError, Result};
use bitbuffer::{BitRead, LittleEndian, BitWrite, BitWriteStream}; use bitbuffer::{BitRead, LittleEndian, BitWrite, BitWriteStream};
use serde::{Deserialize, Serialize};
); );
let event_definitions = events.iter().map(|event| { let event_definitions = events.iter().map(|event| {
@ -263,7 +264,7 @@ pub fn generate_game_events(demo: Demo) -> TokenStream {
}; };
quote!( quote!(
#[derive(Debug, BitWrite, PartialEq)] #[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize)]
pub struct #name { pub struct #name {
#(#fields)* #(#fields)*
} }
@ -378,13 +379,13 @@ pub fn generate_game_events(demo: Demo) -> TokenStream {
#(#event_definitions)* #(#event_definitions)*
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Serialize, Deserialize)]
pub enum GameEvent { pub enum GameEvent {
#(#event_variants)* #(#event_variants)*
Unknown(RawGameEvent), Unknown(RawGameEvent),
} }
#[derive(Clone, Debug, PartialEq, Eq, Hash)] #[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum GameEventType { pub enum GameEventType {
#(#event_types)* #(#event_types)*
Unknown(String), Unknown(String),