+impl fmt::Display for OverflowFlags {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ let Self {
+ overflow,
+ overflow32,
+ } = *self;
+ write!(
+ f,
+ "OV:{overflow}, OV32:{overflow32}",
+ overflow = overflow as i32,
+ overflow32 = overflow32 as i32,
+ )
+ }
+}
+
+#[derive(Copy, Clone, Debug)]
+struct TestDivResult {
+ result: u64,
+ overflow: Option<OverflowFlags>,
+}
+
+impl fmt::Display for TestDivResult {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ let Self { result, overflow } = *self;
+ write!(f, "{:#X}", result)?;
+ if let Some(overflow) = overflow {
+ write!(f, ", {}", overflow)?;
+ }
+ Ok(())
+ }
+}
+