1use std::io::{Result, Write};
2
3#[inline(always)]
4pub(crate) fn write_number<W: Write>(mut fp: W, mut n: i32) -> Result<()> {
5 if n == 0 {
6 fp.write_all(b"0")
7 } else {
8 let mut buf = [0; 11];
9 let mut offset = 0;
10 let mut begin = 0;
11 let is_negative = if n < 0 {
12 n = -n;
13 true
14 } else {
15 false
16 };
17
18 while n > 0 {
19 buf[offset] = b'0' + (n % 10) as u8;
20 n /= 10;
21 offset += 1;
22 }
23 if is_negative {
24 buf[offset] = b'-';
25 offset += 1;
26 }
27 let mut end = offset - 1;
28 while begin < end {
29 buf.swap(begin, end);
30 begin += 1;
31 end -= 1;
32 }
33 fp.write_all(&buf[..offset])
34 }
35}