2021-10-07 17:32:39 +02:00
|
|
|
use nu_term_grid::grid::{Alignment, Cell, Direction, Filling, Grid, GridOptions};
|
|
|
|
|
|
|
|
// This produces:
|
|
|
|
//
|
|
|
|
// 1 | 128 | 16384 | 2097152 | 268435456 | 34359738368 | 4398046511104
|
|
|
|
// 2 | 256 | 32768 | 4194304 | 536870912 | 68719476736 | 8796093022208
|
|
|
|
// 4 | 512 | 65536 | 8388608 | 1073741824 | 137438953472 | 17592186044416
|
|
|
|
// 8 | 1024 | 131072 | 16777216 | 2147483648 | 274877906944 | 35184372088832
|
|
|
|
// 16 | 2048 | 262144 | 33554432 | 4294967296 | 549755813888 | 70368744177664
|
|
|
|
// 32 | 4096 | 524288 | 67108864 | 8589934592 | 1099511627776 | 140737488355328
|
|
|
|
// 64 | 8192 | 1048576 | 134217728 | 17179869184 | 2199023255552 |
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
let mut grid = Grid::new(GridOptions {
|
|
|
|
direction: Direction::TopToBottom,
|
|
|
|
filling: Filling::Text(" | ".into()),
|
|
|
|
});
|
|
|
|
|
|
|
|
for i in 0..48 {
|
|
|
|
let mut cell = Cell::from(format!("{}", 2_isize.pow(i)));
|
|
|
|
cell.alignment = Alignment::Right;
|
|
|
|
grid.add(cell)
|
|
|
|
}
|
|
|
|
|
|
|
|
if let Some(grid_display) = grid.fit_into_width(80) {
|
2023-01-30 02:37:54 +01:00
|
|
|
println!("{grid_display}");
|
2021-10-07 17:32:39 +02:00
|
|
|
} else {
|
|
|
|
println!("Couldn't fit grid into 80 columns!");
|
|
|
|
}
|
|
|
|
}
|