pub struct Builder { /* private fields */ }
std
only.Expand description
Builder creates a Table
from dynamic data set.
It useful when the amount of columns or rows is not known statically.
use tabled::builder::Builder;
let mut builder = Builder::default();
builder.push_record(["index", "measure", "value"]);
builder.push_record(["0", "weight", "0.443"]);
let table = builder.build();
println!("{}", table);
It may be useful to use FromIterator
for building.
use tabled::builder::Builder;
use std::iter::FromIterator;
let data = vec![
["column1", "column2"],
["data1", "data2"],
["data3", "data4"],
];
let table = Builder::from_iter(data).build();
println!("{}", table);
Implementations§
source§impl Builder
impl Builder
sourcepub fn new() -> Self
pub fn new() -> Self
Creates a Builder
instance.
use tabled::builder::Builder;
let builder = Builder::new();
sourcepub fn with_capacity(count_records: usize, count_columns: usize) -> Self
pub fn with_capacity(count_records: usize, count_columns: usize) -> Self
Creates a Builder
instance with a given row capacity.
use tabled::builder::Builder;
let mut builder = Builder::with_capacity(2, 3);
builder.push_record((0..3).map(|i| i.to_string()));
builder.push_record(["i", "surname", "lastname"]);
sourcepub fn set_empty<T>(&mut self, text: T)
pub fn set_empty<T>(&mut self, text: T)
Sets a content of cells which are created in case rows has different length.
use tabled::builder::Builder;
let mut builder = Builder::default();
builder.set_empty("undefined");
builder.push_record((0..3).map(|i| i.to_string()));
builder.push_record(["i"]);
sourcepub fn build(self) -> Table
pub fn build(self) -> Table
Build creates a Table
instance.
use tabled::builder::Builder;
let mut builder = Builder::default();
builder.push_record(["i", "column1", "column2"]);
builder.push_record(["0", "value1", "value2"]);
sourcepub fn index(self) -> IndexBuilder
pub fn index(self) -> IndexBuilder
Add an index to the Table
.
Default index is a range 0-N where N is amount of records.
Example
use tabled::Table;
let table = Table::builder(&["Hello", "World", "!"]).index().build();
assert_eq!(
table.to_string(),
"+---+-------+\n\
| | &str |\n\
+---+-------+\n\
| 0 | Hello |\n\
+---+-------+\n\
| 1 | World |\n\
+---+-------+\n\
| 2 | ! |\n\
+---+-------+"
)
sourcepub fn push_record<R>(&mut self, record: R)
pub fn push_record<R>(&mut self, record: R)
Adds a row to a Table
.
use tabled::builder::Builder;
let mut builder = Builder::default();
builder.push_record((0..3).map(|i| i.to_string()));
builder.push_record(["i", "surname", "lastname"]);
sourcepub fn insert_record<R>(&mut self, index: usize, record: R)
pub fn insert_record<R>(&mut self, index: usize, record: R)
sourcepub fn clean(&mut self)
pub fn clean(&mut self)
Clean removes empty columns and rows.
Example
use tabled::Table;
let mut builder = Table::builder(&["Hello", "World", ""]);
builder.clean();
let table = builder.build();
assert_eq!(
table.to_string(),
"+-------+\n\
| &str |\n\
+-------+\n\
| Hello |\n\
+-------+\n\
| World |\n\
+-------+"
)
sourcepub fn remove_record(&mut self, index: usize)
pub fn remove_record(&mut self, index: usize)
Removes a row with a specific position.
Index expected to be in range.
Builder::count_records() < x >= 0
Panics
Panics if row_index > count_rows
.
sourcepub fn remove_column(&mut self, index: usize)
pub fn remove_column(&mut self, index: usize)
Removes a column with a specific position.
Index expected to be in range.
Builder::count_columns() < x >= 0
Panics
Panics if index > count_columns
.
sourcepub fn push_column<I>(&mut self, column: I)
pub fn push_column<I>(&mut self, column: I)
Push a column.
sourcepub fn insert_column<I>(&mut self, index: usize, column: I)
pub fn insert_column<I>(&mut self, index: usize, column: I)
Insert a column with a specific position.
In case a column is bigger then the total amount of rows it will be truncated.
Panics
Panics if index > count_columns
.
sourcepub fn count_columns(&self) -> usize
pub fn count_columns(&self) -> usize
Returns an amount of columns which would be present in a built table.
sourcepub fn count_records(&self) -> usize
pub fn count_records(&self) -> usize
Returns an amount of rows which would be present in a built table.
Notice that it does not include header if present; It returns only amount of records.
Trait Implementations§
source§impl<D> Extend<D> for Builder
impl<D> Extend<D> for Builder
source§fn extend<T: IntoIterator<Item = D>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = D>>(&mut self, iter: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)