Rewrote project in Rust

This commit is contained in:
a2x
2023-09-26 00:46:10 +10:00
parent a8d3318d94
commit 369ebcf238
136 changed files with 47374 additions and 47187 deletions

39
src/dumpers/schemas.rs Normal file
View File

@@ -0,0 +1,39 @@
use crate::builder::FileBuilderEnum;
use crate::error::Result;
use crate::remote::Process;
use crate::sdk::SchemaSystem;
use super::{generate_file, Entries};
pub fn dump_schemas(builders: &mut Vec<FileBuilderEnum>, process: &Process) -> Result<()> {
let schema_system = SchemaSystem::new(&process)?;
for type_scope in schema_system.type_scopes()? {
log::info!("Generating files for {}...", type_scope.module_name()?);
let mut entries = Entries::new();
for class in type_scope.classes()? {
log::info!(" [{}]", class.name());
for field in class.fields()? {
log::info!(" [{}] = {:#X}", field.name()?, field.offset()?);
entries
.entry(class.name().replace("::", "_"))
.or_default()
.push((field.name()?, field.offset()? as usize));
}
}
if entries.is_empty() {
continue;
}
for builder in builders.iter_mut() {
generate_file(builder, &type_scope.module_name()?, &entries)?;
}
}
Ok(())
}