summaryrefslogtreecommitdiff
path: root/rust/tests/line_formatter.rs
diff options
context:
space:
mode:
authorrbran <git@rubens.io>2025-04-10 12:58:27 +0000
committerMason Reed <35282038+emesare@users.noreply.github.com>2025-05-12 17:45:24 -0400
commit4d8feb4921cde4b70bb6db4ccd525a69205dee7f (patch)
treeedbd6845590fef0b2813ee30c16607e1ae8d8e32 /rust/tests/line_formatter.rs
parent067148afd1a8f9153bb5bfe6b5361b83e9f89ab6 (diff)
[Rust] Implement `LanguageRepresentation` and `LineFormatter`
Diffstat (limited to 'rust/tests/line_formatter.rs')
-rw-r--r--rust/tests/line_formatter.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/rust/tests/line_formatter.rs b/rust/tests/line_formatter.rs
new file mode 100644
index 00000000..72968238
--- /dev/null
+++ b/rust/tests/line_formatter.rs
@@ -0,0 +1,24 @@
+use binaryninja::disassembly::DisassemblyTextLine;
+use binaryninja::headless::Session;
+use binaryninja::line_formatter::{register_line_formatter, LineFormatter, LineFormatterSettings};
+use std::path::PathBuf;
+
+struct MyLineFormatter;
+
+impl LineFormatter for MyLineFormatter {
+ fn format_lines(
+ &self,
+ lines: &[DisassemblyTextLine],
+ _settings: &LineFormatterSettings,
+ ) -> Vec<DisassemblyTextLine> {
+ lines.to_vec()
+ }
+}
+
+#[test]
+fn test_custom_line_formatter() {
+ let _session = Session::new().expect("Failed to initialize session");
+ let out_dir = env!("OUT_DIR").parse::<PathBuf>().unwrap();
+ let line_formatter = register_line_formatter("my_line_formatter", MyLineFormatter {});
+ assert_eq!(line_formatter.name().as_str(), "my_line_formatter");
+}