Use character offsets in diff.

This commit is contained in:
Tom Alexander
2023-08-29 21:49:16 -04:00
parent eaa38ce772
commit f170a557ed
4 changed files with 5 additions and 2 deletions

View File

@@ -115,12 +115,13 @@ impl<'s> DiffResult<'s> {
}
};
let rust_offset = self.rust_source.as_ptr() as usize - original_document.as_ptr() as usize;
let preceding_text = &original_document[..rust_offset];
println!(
"{indentation}{status_text} {name} char({char_offset}) {message}",
indentation = " ".repeat(indentation),
status_text = status_text,
name = self.name,
char_offset = rust_offset + 1,
char_offset = preceding_text.chars().count() + 1,
message = self.message.as_ref().map(|m| m.as_str()).unwrap_or("")
);
for child in self.children.iter() {