1
0
Fork 0
mirror of https://github.com/demostf/demo.js synced 2026-06-04 00:54:14 +02:00

websocket proxying

This commit is contained in:
Robin Appelman 2019-03-06 20:25:30 +01:00
commit 5d1cb2044c

View file

@ -44,10 +44,9 @@ fs.readFile(argv._[0], function (err, data) {
}); });
return definition; return definition;
}); });
const definition = 'use std::collections::HashMap;\n' + const definition = 'use crate::{Result, ParseError};\n' +
'use crate::{Result, ParseError};\n' +
'use super::gamevent::{FromGameEventValue, GameEventValue, FromRawGameEvent, RawGameEvent};\n' + 'use super::gamevent::{FromGameEventValue, GameEventValue, FromRawGameEvent, RawGameEvent};\n' +
'use bitstream_reader::BitRead;\n\n' + '\n\n' +
'// auto generated, nobody in their right mind would write this manually\n\n' '// auto generated, nobody in their right mind would write this manually\n\n'
+ definitions + definitions
.map(createEventStructRS) .map(createEventStructRS)
@ -196,7 +195,7 @@ function createEventStructRS(definition) {
${definition.entries.map(entry => `\tpub ${getEntryNameRS(entry.name)}: ${getEntryTypeDefinitionRS(entry.type)},`).join('\n')} ${definition.entries.map(entry => `\tpub ${getEntryNameRS(entry.name)}: ${getEntryTypeDefinitionRS(entry.type)},`).join('\n')}
} }
impl FromRawGameEvent for ${getEventTypeNameRS(definition.name)} { impl FromRawGameEvent for ${getEventTypeNameRS(definition.name)} {
fn from_raw_event(values: Vec<GameEventValue>) -> Result<Self> { fn from_raw_event(${definition.entries.length ? '' : '_'}values: Vec<GameEventValue>) -> Result<Self> {
${definition.entries.map((entry, index) => `\t\tlet ${getEntryNameRS(entry.name)}: ${getEntryTypeDefinitionRS(entry.type)} = { ${definition.entries.map((entry, index) => `\t\tlet ${getEntryNameRS(entry.name)}: ${getEntryTypeDefinitionRS(entry.type)} = {
\t\t\tlet value = values.get(${index}).ok_or_else(|| ParseError::UnknownGameEvent("${getEntryNameRS(entry.name)}".to_string()))?; \t\t\tlet value = values.get(${index}).ok_or_else(|| ParseError::UnknownGameEvent("${getEntryNameRS(entry.name)}".to_string()))?;
\t\t\t${getEntryTypeDefinitionRS(entry.type)}::from_value(value.clone(), "${getEntryNameRS(entry.name)}")? \t\t\t${getEntryTypeDefinitionRS(entry.type)}::from_value(value.clone(), "${getEntryNameRS(entry.name)}")?