2 * Copyright (c) 2017 Tilman Sauerbeck (tilman at code-monkey de)
4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files (the
6 * "Software"), to deal in the Software without restriction, including
7 * without limitation the rights to use, copy, modify, merge, publish,
8 * distribute, sublicense, and/or sell copies of the Software, and to
9 * permit persons to whom the Software is furnished to do so, subject to
10 * the following conditions:
12 * The above copyright notice and this permission notice shall be
13 * included in all copies or substantial portions of the Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 pub fn fmt_u32(s: &mut [u8], n: u32) -> usize {
28 // Count the number of bytes needed.
37 let mut len2 = len + 1;
43 s[offset] = b'0' + (tmp % 10) as u8;
52 pub fn fmt_u32_pad(s: &mut [u8], n: u32, pad: usize, pad_char: u8) -> usize {
56 // Count the number of bytes needed.
78 fmt_u32(&mut s[offset..], n);
83 fn to_hex(c: u8) -> u8 {
91 pub fn fmt_x32(s: &mut [u8], n: u32) -> usize {
96 for i in (0..8).rev() {
97 s[i] = to_hex((tmp & 0xf) as u8);
105 pub fn fmt_human(s: &mut [u8], _u: u32) -> usize {
111 } else if u < (1 << 20) {
119 let mut len = fmt_u32(s, u);
121 if let Some(suffix_c) = suffix {