Add "styled" CLI option and debug logging for disassembler
This commit is contained in:
parent
8534f18c9a
commit
9418cd5b70
@ -211,7 +211,9 @@ impl Display for Chunk {
|
|||||||
write!(
|
write!(
|
||||||
f,
|
f,
|
||||||
"{}",
|
"{}",
|
||||||
self.disassembler("Chunk Display").styled().disassemble()
|
self.disassembler("Chunk Display")
|
||||||
|
.styled(true)
|
||||||
|
.disassemble()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -221,7 +223,9 @@ impl Debug for Chunk {
|
|||||||
write!(
|
write!(
|
||||||
f,
|
f,
|
||||||
"{}",
|
"{}",
|
||||||
self.disassembler("Chunk Debug Display").disassemble()
|
self.disassembler("Chunk Debug Display")
|
||||||
|
.styled(false)
|
||||||
|
.disassemble()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -309,9 +313,6 @@ impl<'a> ChunkDisassembler<'a> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let mut disassembled = String::with_capacity(self.predict_length());
|
let mut disassembled = String::with_capacity(self.predict_length());
|
||||||
|
|
||||||
println!("capactity: {}", disassembled.capacity());
|
|
||||||
|
|
||||||
let name_line = style(center(self.name));
|
let name_line = style(center(self.name));
|
||||||
|
|
||||||
disassembled.push_str(&name_line);
|
disassembled.push_str(&name_line);
|
||||||
@ -376,7 +377,20 @@ impl<'a> ChunkDisassembler<'a> {
|
|||||||
disassembled.push_str(¢er(&local_display));
|
disassembled.push_str(¢er(&local_display));
|
||||||
}
|
}
|
||||||
|
|
||||||
println!("length: {}", disassembled.len());
|
let expected_length = self.predict_length();
|
||||||
|
let actual_length = disassembled.len();
|
||||||
|
|
||||||
|
if !self.styled && expected_length != actual_length {
|
||||||
|
log::debug!(
|
||||||
|
"Chunk disassembly was not optimized correctly, expected string length {expected_length}, got {actual_length}",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if self.styled && expected_length > actual_length {
|
||||||
|
log::debug!(
|
||||||
|
"Chunk disassembly was not optimized correctly, expected string length to be at least{expected_length}, got {actual_length}",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
disassembled
|
disassembled
|
||||||
}
|
}
|
||||||
@ -387,8 +401,8 @@ impl<'a> ChunkDisassembler<'a> {
|
|||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn styled(&mut self) -> &mut Self {
|
pub fn styled(&mut self, styled: bool) -> &mut Self {
|
||||||
self.styled = true;
|
self.styled = styled;
|
||||||
|
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,9 @@ struct Cli {
|
|||||||
#[arg(short, long)]
|
#[arg(short, long)]
|
||||||
parse: bool,
|
parse: bool,
|
||||||
|
|
||||||
|
#[arg(short, long)]
|
||||||
|
styled: bool,
|
||||||
|
|
||||||
path: Option<String>,
|
path: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,7 +46,7 @@ fn main() {
|
|||||||
|
|
||||||
if let Some(command) = &args.command {
|
if let Some(command) = &args.command {
|
||||||
if args.parse {
|
if args.parse {
|
||||||
parse_and_display_errors(command);
|
parse_and_display_errors(command, args.styled);
|
||||||
} else {
|
} else {
|
||||||
run_and_display_errors(command);
|
run_and_display_errors(command);
|
||||||
}
|
}
|
||||||
@ -51,18 +54,21 @@ fn main() {
|
|||||||
let source = read_to_string(path).expect("Failed to read file");
|
let source = read_to_string(path).expect("Failed to read file");
|
||||||
|
|
||||||
if args.parse {
|
if args.parse {
|
||||||
parse_and_display_errors(&source);
|
parse_and_display_errors(&source, args.styled);
|
||||||
} else {
|
} else {
|
||||||
run_and_display_errors(&source);
|
run_and_display_errors(&source);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn parse_and_display_errors(source: &str) {
|
fn parse_and_display_errors(source: &str, pretty_print: bool) {
|
||||||
match parse(source) {
|
match parse(source) {
|
||||||
Ok(chunk) => println!(
|
Ok(chunk) => println!(
|
||||||
"{}",
|
"{}",
|
||||||
chunk.disassembler("Dust CLI Input").styled().disassemble()
|
chunk
|
||||||
|
.disassembler("Dust CLI Input")
|
||||||
|
.styled(pretty_print)
|
||||||
|
.disassemble()
|
||||||
),
|
),
|
||||||
Err(error) => {
|
Err(error) => {
|
||||||
eprintln!("{}", error.report());
|
eprintln!("{}", error.report());
|
||||||
|
Loading…
Reference in New Issue
Block a user