mirror of
https://github.com/a2x/cs2-dumper.git
synced 2025-10-08 15:10:02 +08:00
Simplify some code
This commit is contained in:
@@ -3,7 +3,7 @@ use std::fmt::{self, Write};
|
||||
|
||||
use heck::{AsPascalCase, AsSnakeCase};
|
||||
|
||||
use super::{slugify, CodeWriter, Formatter, InterfaceMap};
|
||||
use super::{CodeWriter, Formatter, InterfaceMap, slugify};
|
||||
|
||||
impl CodeWriter for InterfaceMap {
|
||||
fn write_cs(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
|
||||
@@ -17,7 +17,11 @@ impl CodeWriter for InterfaceMap {
|
||||
|fmt| {
|
||||
for (name, value) in ifaces {
|
||||
if *value > i32::MAX as u64 {
|
||||
writeln!(fmt, "public static readonly nint {} = unchecked((nint){:#X});", name, value)?;
|
||||
writeln!(
|
||||
fmt,
|
||||
"public static readonly nint {} = unchecked((nint){:#X});",
|
||||
name, value
|
||||
)?;
|
||||
} else {
|
||||
writeln!(fmt, "public const nint {} = {:#X};", name, value)?;
|
||||
};
|
||||
|
@@ -2,7 +2,7 @@ use std::fmt::{self, Write};
|
||||
use std::fs;
|
||||
use std::path::Path;
|
||||
|
||||
use anyhow::{anyhow, Result};
|
||||
use anyhow::{Result, anyhow};
|
||||
|
||||
use chrono::{DateTime, Utc};
|
||||
|
||||
@@ -28,7 +28,6 @@ enum Item<'a> {
|
||||
}
|
||||
|
||||
impl<'a> Item<'a> {
|
||||
#[inline]
|
||||
fn write(&self, fmt: &mut Formatter<'a>, file_type: &str) -> fmt::Result {
|
||||
match file_type {
|
||||
"cs" => self.write_cs(fmt),
|
||||
@@ -48,7 +47,6 @@ trait CodeWriter {
|
||||
}
|
||||
|
||||
impl<'a> CodeWriter for Item<'a> {
|
||||
#[inline]
|
||||
fn write_cs(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
Item::Buttons(buttons) => buttons.write_cs(fmt),
|
||||
@@ -58,7 +56,6 @@ impl<'a> CodeWriter for Item<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn write_hpp(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
Item::Buttons(buttons) => buttons.write_hpp(fmt),
|
||||
@@ -68,7 +65,6 @@ impl<'a> CodeWriter for Item<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn write_json(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
Item::Buttons(buttons) => buttons.write_json(fmt),
|
||||
@@ -78,7 +74,6 @@ impl<'a> CodeWriter for Item<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn write_rs(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
Item::Buttons(buttons) => buttons.write_rs(fmt),
|
||||
@@ -90,7 +85,7 @@ impl<'a> CodeWriter for Item<'a> {
|
||||
}
|
||||
|
||||
pub struct Output<'a> {
|
||||
file_types: &'a Vec<String>,
|
||||
file_types: &'a [String],
|
||||
indent_size: usize,
|
||||
out_dir: &'a Path,
|
||||
result: &'a AnalysisResult,
|
||||
@@ -99,7 +94,7 @@ pub struct Output<'a> {
|
||||
|
||||
impl<'a> Output<'a> {
|
||||
pub fn new(
|
||||
file_types: &'a Vec<String>,
|
||||
file_types: &'a [String],
|
||||
indent_size: usize,
|
||||
out_dir: &'a Path,
|
||||
result: &'a AnalysisResult,
|
||||
@@ -115,7 +110,7 @@ impl<'a> Output<'a> {
|
||||
})
|
||||
}
|
||||
|
||||
pub fn dump_all(&self, process: &mut IntoProcessInstanceArcBox<'_>) -> Result<()> {
|
||||
pub fn dump_all<P: MemoryView + Process>(&self, process: &mut P) -> Result<()> {
|
||||
let items = [
|
||||
("buttons", Item::Buttons(&self.result.buttons)),
|
||||
("interfaces", Item::Interfaces(&self.result.interfaces)),
|
||||
@@ -132,7 +127,7 @@ impl<'a> Output<'a> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn dump_info(&self, process: &mut IntoProcessInstanceArcBox<'_>) -> Result<()> {
|
||||
fn dump_info<P: MemoryView + Process>(&self, process: &mut P) -> Result<()> {
|
||||
let file_path = self.out_dir.join("info.json");
|
||||
|
||||
let build_number = self
|
||||
|
@@ -2,7 +2,7 @@ use std::fmt::{self, Write};
|
||||
|
||||
use heck::{AsPascalCase, AsSnakeCase};
|
||||
|
||||
use super::{slugify, CodeWriter, Formatter, OffsetMap};
|
||||
use super::{CodeWriter, Formatter, OffsetMap, slugify};
|
||||
|
||||
impl CodeWriter for OffsetMap {
|
||||
fn write_cs(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
|
||||
|
@@ -5,7 +5,7 @@ use heck::{AsPascalCase, AsSnakeCase};
|
||||
|
||||
use serde_json::json;
|
||||
|
||||
use super::{slugify, CodeWriter, Formatter, SchemaMap};
|
||||
use super::{CodeWriter, Formatter, SchemaMap, slugify};
|
||||
|
||||
use crate::analysis::ClassMetadata;
|
||||
|
||||
@@ -41,8 +41,13 @@ impl CodeWriter for SchemaMap {
|
||||
.members
|
||||
.iter()
|
||||
.map(|member| {
|
||||
let hex = if member.value < 0 || member.value > i32::MAX as i64 {
|
||||
format!("unchecked(({}){})", type_name, member.value)
|
||||
let hex = if member.value < 0
|
||||
|| member.value > i32::MAX as i64
|
||||
{
|
||||
format!(
|
||||
"unchecked(({}){})",
|
||||
type_name, member.value
|
||||
)
|
||||
} else {
|
||||
format!("{:#X}", member.value)
|
||||
};
|
||||
|
Reference in New Issue
Block a user