Simplify some code

This commit is contained in:
a2x
2025-03-28 23:14:35 +10:00
parent c791a97d3b
commit a538968730
22 changed files with 139 additions and 200 deletions

View File

@@ -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)?;
};

View File

@@ -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

View File

@@ -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 {

View File

@@ -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)
};