pub fn format_u32(value: u32, out: &mut [u8]) -> Option<usize> {
if value == 0 {
if out.is_empty() {
return None;
}
out[0] = b'0';
return Some(1);
}
let mut buf = [0u8; 10];
let mut pos = buf.len();
let mut v = value;
while v > 0 {
pos -= 1;
buf[pos] = b'0' + (v % 10) as u8;
v /= 10;
}
let len = buf.len() - pos;
if out.len() < len {
return None;
}
out[..len].copy_from_slice(&buf[pos..]);
Some(len)
}
pub fn format_u64(value: u64, out: &mut [u8]) -> Option<usize> {
if value == 0 {
if out.is_empty() {
return None;
}
out[0] = b'0';
return Some(1);
}
let mut buf = [0u8; 20];
let mut pos = buf.len();
let mut v = value;
while v > 0 {
pos -= 1;
buf[pos] = b'0' + (v % 10) as u8;
v /= 10;
}
let len = buf.len() - pos;
if out.len() < len {
return None;
}
out[..len].copy_from_slice(&buf[pos..]);
Some(len)
}