From e392bea3af42b02d6a4ef1863bfb0528ed726cd2 Mon Sep 17 00:00:00 2001 From: Kai Schmidt Date: Wed, 10 Jan 2024 12:59:25 -0800 Subject: [PATCH] improve grid format truncation algorithm --- src/grid_fmt.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/grid_fmt.rs b/src/grid_fmt.rs index 2861fa38f..5f5fa3fe7 100644 --- a/src/grid_fmt.rs +++ b/src/grid_fmt.rs @@ -335,17 +335,18 @@ fn fmt_array(shape: &[usize], data: &[T], metagrid: &mu metagrid.push(vec![vec![vec![' ']]]); return; } - let shape = &shape[1..]; + let row_shape = &shape[1..]; let cell_size = data.len() / cell_count; - let row_size: usize = shape.iter().take(shape.len().saturating_sub(1)).product(); + let row_height: usize = row_shape.iter().rev().skip(1).product(); + dbg!(row_height); for (i, cell) in data.chunks(cell_size).enumerate() { if i > 0 && rank > 2 { for _ in 0..rank - 2 { metagrid.push(vec![vec![vec![' ']]; metagrid.last().unwrap().len()]); } } - fmt_array(shape, cell, metagrid); - if i * row_size > 1000 { + fmt_array(row_shape, cell, metagrid); + if i * row_height >= 100 { let mut elipses_row = Vec::new(); for prev_grid in metagrid.last().unwrap() { let prev_row = &prev_grid[0];