nanvm_lib/vm/bigint/
display.rs1use super::radix::chunk;
2use crate::{
3 sign::Sign,
4 vm::{BigInt, IVm},
5};
6use core::fmt::{Display, Formatter, Result, Write};
7
8impl<A: IVm> Display for BigInt<A> {
9 fn fmt(&self, f: &mut Formatter<'_>) -> Result {
10 if self.is_zero() {
11 return f.write_char('0');
12 }
13 if self.sign() == Sign::Negative {
14 f.write_char('-')?;
15 }
16
17 let (base, width) = chunk(10);
18 let mut chunks = self.chunks(base);
19 write!(f, "{}", chunks.pop().unwrap())?;
20 for c in chunks.iter().rev() {
21 write!(f, "{c:0width$}")?;
22 }
23 Ok(())
24 }
25}