From 97dbde69221127d2552cb4fc442b90a2c0ff2a95 Mon Sep 17 00:00:00 2001 From: iximeow Date: Fri, 19 Jun 2026 03:02:35 +0000 Subject: add DisplayRules, docs, doc tests, .. this includes `trait DisplayRules` as a generic mechanism to control parts of instruction printing, a `DefaultRules` for the existing formatting style, and `AbsoluteAddressFormatter` to print instructions as at some location in an address space. --- src/real_mode/mod.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/real_mode/mod.rs') diff --git a/src/real_mode/mod.rs b/src/real_mode/mod.rs index 274d472..4049a97 100644 --- a/src/real_mode/mod.rs +++ b/src/real_mode/mod.rs @@ -10,7 +10,13 @@ pub use crate::MemoryAccessSize; use crate::{Address, Word}; #[cfg(feature = "fmt")] -pub use self::display::{DisplayStyle, InstructionDisplayer}; +pub use self::display::{ + DisplayStyle, + DisplayRules, DefaultRules, + InstructionDisplayer, InstructionRuleBundle +}; +#[cfg(feature = "fmt")] +pub use self::display::AbsoluteAddressFormatter; #[cfg(all(feature = "fmt", feature = "alloc"))] pub use self::display::InstructionTextBuffer; @@ -3326,6 +3332,18 @@ impl Instruction { } } + // TODO: more docs + #[cfg(feature = "fmt")] + pub fn display_rules<'a, 'rules, Rules>( + &'a self, + rules: &'rules Rules + ) -> display::InstructionRuleBundle<'a, 'rules, Rules> { + display::InstructionRuleBundle { + instr: self, + rules, + } + } + /// does this instruction include the `xacquire` hint for hardware lock elision? pub fn xacquire(&self) -> bool { if self.prefixes.repnz() { -- cgit v1.1