| //! 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}"); |
| } |