mirror of
https://gitlab.com/arnekeller/ascii-table.git
synced 2024-12-04 21:49:08 +00:00
Refactoring.
This commit is contained in:
parent
f501c4ac0c
commit
71f651f36a
10
src/lib.rs
10
src/lib.rs
@ -113,7 +113,7 @@ impl Default for AsciiTable {
|
|||||||
pub struct Column {
|
pub struct Column {
|
||||||
pub header: String,
|
pub header: String,
|
||||||
pub align: Align,
|
pub align: Align,
|
||||||
pub max_width: usize // TODO:
|
pub max_width: usize
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Column {
|
impl Column {
|
||||||
@ -194,13 +194,17 @@ impl AsciiTable {
|
|||||||
false
|
false
|
||||||
} else if num_cols == 0 {
|
} else if num_cols == 0 {
|
||||||
false
|
false
|
||||||
} else if self.max_width < ((num_cols - 1) * 3) + 4 {
|
} else if self.max_width < Self::smallest_width(num_cols) {
|
||||||
false
|
false
|
||||||
} else {
|
} else {
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn smallest_width(num_cols: usize) -> usize {
|
||||||
|
((num_cols - 1) * 3) + 4
|
||||||
|
}
|
||||||
|
|
||||||
fn stringify<L1, L2, T>(&self, data: L1) -> Vec<Vec<String>>
|
fn stringify<L1, L2, T>(&self, data: L1) -> Vec<Vec<String>>
|
||||||
where L1: IntoIterator<Item = L2>,
|
where L1: IntoIterator<Item = L2>,
|
||||||
L2: IntoIterator<Item = T>,
|
L2: IntoIterator<Item = T>,
|
||||||
@ -230,7 +234,7 @@ impl AsciiTable {
|
|||||||
|
|
||||||
fn truncate_widths(&self, mut widths: Vec<usize>) -> Vec<usize> {
|
fn truncate_widths(&self, mut widths: Vec<usize>) -> Vec<usize> {
|
||||||
let max_width = self.max_width;
|
let max_width = self.max_width;
|
||||||
let table_padding = ((widths.len() - 1) * 3) + 4;
|
let table_padding = Self::smallest_width(widths.len());
|
||||||
while widths.iter().sum::<usize>() + table_padding > max_width &&
|
while widths.iter().sum::<usize>() + table_padding > max_width &&
|
||||||
*widths.iter().max().unwrap() > 0 {
|
*widths.iter().max().unwrap() > 0 {
|
||||||
let max = widths.iter().max().unwrap();
|
let max = widths.iter().max().unwrap();
|
||||||
|
Loading…
Reference in New Issue
Block a user