| //! This example demonstrates using the [`Rotate`] [`TableOption`] to rotate the cells |
| //! of a [`Table`]. |
| //! |
| //! * [`Rotate`] supports four motions: |
| //! * `Left` | 90 degree shift |
| //! * `Right` | 90 degree shift |
| //! * `Top` & `Bottom` | Reverse row order |
| |
| use tabled::{settings::Rotate, Table, Tabled}; |
| |
| #[derive(Tabled)] |
| struct Linux { |
| id: u8, |
| distribution: &'static str, |
| link: &'static str, |
| } |
| |
| impl Linux { |
| fn new(id: u8, distribution: &'static str, link: &'static str) -> Self { |
| Self { |
| id, |
| distribution, |
| link, |
| } |
| } |
| } |
| |
| fn main() { |
| let data = vec![ |
| Linux::new(0, "Fedora", "https://getfedora.org/"), |
| Linux::new(2, "OpenSUSE", "https://www.opensuse.org/"), |
| Linux::new(3, "Endeavouros", "https://endeavouros.com/"), |
| ]; |
| |
| let table = Table::new(data).with(Rotate::Left).to_string(); |
| |
| println!("{table}"); |
| } |