mirror of
https://github.com/a2x/cs2-dumper.git
synced 2026-04-17 19:49:58 +08:00
📦 Game Update 13963 (2)
This commit is contained in:
@@ -1,25 +1,30 @@
|
||||
use std::{io::{Result, Write}, collections::BTreeMap};
|
||||
use std::{
|
||||
collections::BTreeMap,
|
||||
io::{Result, Write},
|
||||
};
|
||||
|
||||
use serde::Serialize;
|
||||
|
||||
use super::FileBuilder;
|
||||
|
||||
|
||||
/// Represents an offset value in JSON format.
|
||||
#[derive(Debug, PartialEq, Default, Serialize)]
|
||||
struct JsonOffsetValue {
|
||||
value: usize,
|
||||
comment: Option<String>,
|
||||
}
|
||||
|
||||
/// Represents a module in JSON format.
|
||||
#[derive(Debug, PartialEq, Default, Serialize)]
|
||||
struct JsonMod {
|
||||
struct JsonModule {
|
||||
data: BTreeMap<String, JsonOffsetValue>,
|
||||
comment: Option<String>,
|
||||
}
|
||||
|
||||
/// Represents a JSON file builder.
|
||||
#[derive(Debug, PartialEq, Default)]
|
||||
pub struct JsonFileBuilder {
|
||||
data: BTreeMap<String, JsonMod>,
|
||||
data: BTreeMap<String, JsonModule>,
|
||||
current_namespace: String,
|
||||
}
|
||||
|
||||
@@ -32,7 +37,12 @@ impl FileBuilder for JsonFileBuilder {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn write_namespace(&mut self, _output: &mut dyn Write, name: &str, comment: Option<&str>) -> Result<()> {
|
||||
fn write_namespace(
|
||||
&mut self,
|
||||
_output: &mut dyn Write,
|
||||
name: &str,
|
||||
comment: Option<&str>,
|
||||
) -> Result<()> {
|
||||
self.current_namespace = name.to_string();
|
||||
self.data.entry(name.to_string()).or_default().comment = comment.map(str::to_string);
|
||||
|
||||
@@ -46,11 +56,17 @@ impl FileBuilder for JsonFileBuilder {
|
||||
value: usize,
|
||||
comment: Option<&str>,
|
||||
) -> Result<()> {
|
||||
self.data.entry(self.current_namespace.clone()).or_default().data
|
||||
.insert(name.to_string(), JsonOffsetValue {
|
||||
value: value,
|
||||
comment: comment.map(str::to_string)
|
||||
});
|
||||
self.data
|
||||
.entry(self.current_namespace.clone())
|
||||
.or_default()
|
||||
.data
|
||||
.insert(
|
||||
name.to_string(),
|
||||
JsonOffsetValue {
|
||||
value: value,
|
||||
comment: comment.map(str::to_string),
|
||||
},
|
||||
);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user