use std::path::PathBuf;
use crate::mds::loader::BinaryLoader;
pub fn diff_command(
file1: PathBuf,
file2: PathBuf,
detailed: bool,
) -> Result<(), Box<dyn std::error::Error>> {
let loader = BinaryLoader::new();
let binary1 = loader.load_file(&file1)?;
let binary2 = loader.load_file(&file2)?;
println!("Comparing binaries:");
println!(" File 1: {}", file1.display());
println!(" File 2: {}", file2.display());
println!();
if binary1.version != binary2.version {
println!("⚠️ Version differs: {} vs {}", binary1.version, binary2.version);
}
if binary1.size() != binary2.size() {
println!("⚠️ Size differs: {} vs {} bytes", binary1.size(), binary2.size());
}
let stats1 = binary1.symbol_table.stats();
let stats2 = binary2.symbol_table.stats();
if stats1.total_strings != stats2.total_strings {
println!(
"⚠️ String count differs: {} vs {}", stats1.total_strings, stats2
.total_strings
);
}
if detailed {}
Ok(())
}