diff options
Diffstat (limited to 'vendor/tabled/examples/disable.rs')
-rw-r--r-- | vendor/tabled/examples/disable.rs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/vendor/tabled/examples/disable.rs b/vendor/tabled/examples/disable.rs new file mode 100644 index 000000000..1f04de7d9 --- /dev/null +++ b/vendor/tabled/examples/disable.rs @@ -0,0 +1,49 @@ +//! This example demonstrates using the [`Disable`] [`TableOption`] to remove specific +//! cell data from a [`Table`] display. +//! +//! * ⚠️ Using [`Disable`] in combination with other [`Style`] customizations may yield unexpected results. +//! It is safest to use [`Disable`] last in a chain of alterations. + +use tabled::{ + settings::{ + locator::ByColumnName, + style::{Border, Style}, + Disable, Modify, + }, + Table, Tabled, +}; + +#[derive(Tabled)] +struct Distribution { + name: &'static str, + based_on: &'static str, + is_active: bool, + is_cool: bool, +} + +impl Distribution { + fn new(name: &'static str, based_on: &'static str, is_active: bool, is_cool: bool) -> Self { + Self { + name, + based_on, + is_active, + is_cool, + } + } +} + +fn main() { + let data = [ + Distribution::new("Debian", "", true, true), + Distribution::new("Arch", "", true, true), + Distribution::new("Manjaro", "Arch", true, true), + ]; + + let mut table = Table::new(data); + table + .with(Style::markdown()) + .with(Disable::column(ByColumnName::new("is_active"))) + .with(Modify::new(ByColumnName::new("name")).with(Border::filled('#'))); + + println!("{table}"); +} |