From e6e574625e89bce9a5cb907eae43bfd45672f768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mariusz=20Kry=C5=84ski?= Date: Sun, 16 Jan 2022 17:28:18 +0100 Subject: [PATCH] fix i32 / u32 uDebug impl for 16-bit pointer width --- src/impls/ixx.rs | 11 +++++++++++ src/impls/uxx.rs | 10 ++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/impls/ixx.rs b/src/impls/ixx.rs index 191984a..f884fda 100644 --- a/src/impls/ixx.rs +++ b/src/impls/ixx.rs @@ -86,6 +86,7 @@ impl uDisplay for i16 { } impl uDebug for i32 { + #[cfg(not(target_pointer_width = "16"))] fn fmt(&self, f: &mut Formatter<'_, W>) -> Result<(), W::Error> where W: uWrite + ?Sized, @@ -94,6 +95,16 @@ impl uDebug for i32 { f.write_str(isize(*self as isize, &mut buf)) } + #[cfg(target_pointer_width = "16")] + fn fmt(&self, f: &mut Formatter<'_, W>) -> Result<(), W::Error> + where + W: uWrite + ?Sized, + { + let mut buf: [u8; 11] = unsafe { crate::uninitialized() }; + + let s = ixx!(u32, *self, buf); + f.write_str(s) + } } impl uDisplay for i32 { diff --git a/src/impls/uxx.rs b/src/impls/uxx.rs index 0a1e5e2..430492f 100644 --- a/src/impls/uxx.rs +++ b/src/impls/uxx.rs @@ -70,6 +70,7 @@ impl uDisplay for u16 { } impl uDebug for u32 { + #[cfg(not(target_pointer_width = "16"))] fn fmt(&self, f: &mut Formatter<'_, W>) -> Result<(), W::Error> where W: uWrite + ?Sized, @@ -78,6 +79,15 @@ impl uDebug for u32 { f.write_str(usize(*self as usize, &mut buf)) } + #[cfg(target_pointer_width = "16")] + fn fmt(&self, f: &mut Formatter<'_, W>) -> Result<(), W::Error> + where + W: uWrite + ?Sized, + { + let mut buf: [u8; 10] = unsafe { crate::uninitialized() }; + let s = uxx!(*self, buf); + f.write_str(s) + } } impl uDisplay for u32 {