mirror of
https://git.proxmox.com/git/rustc
synced 2025-08-25 07:52:52 +00:00
55 lines
1.5 KiB
Rust
55 lines
1.5 KiB
Rust
//! This example demonstrates customizing one of the [`tabled`] default [styles](Style)
|
|
//! to create a unique [`Table`] display.
|
|
//!
|
|
//! * Note that all predesigned styles can be configured completely.
|
|
//! Styles can also be created from scratch!
|
|
//!
|
|
//! * Note that adding and removing borders with a [`Style`] theme doesn't affect the
|
|
//! number of functional columns and rows.
|
|
|
|
use tabled::{
|
|
settings::{
|
|
style::{HorizontalLine, Style, VerticalLine},
|
|
Alignment,
|
|
},
|
|
Table, Tabled,
|
|
};
|
|
|
|
#[derive(Tabled)]
|
|
struct CodeEditor {
|
|
name: &'static str,
|
|
first_release: &'static str,
|
|
developer: &'static str,
|
|
}
|
|
|
|
impl CodeEditor {
|
|
fn new(name: &'static str, first_release: &'static str, developer: &'static str) -> Self {
|
|
Self {
|
|
name,
|
|
first_release,
|
|
developer,
|
|
}
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
let data = [
|
|
CodeEditor::new("Sublime Text 3", "2008", "Sublime HQ"),
|
|
CodeEditor::new("Visual Studio Code", "2015", "Microsoft"),
|
|
CodeEditor::new("Notepad++", "2003", "Don Ho"),
|
|
CodeEditor::new("GNU Emacs", "1984", "Richard Stallman"),
|
|
CodeEditor::new("Neovim", "2015", "Vim community"),
|
|
];
|
|
|
|
let theme = Style::modern()
|
|
.horizontals([(1, HorizontalLine::inherit(Style::modern()))])
|
|
.verticals([(1, VerticalLine::inherit(Style::modern()))])
|
|
.remove_horizontal()
|
|
.remove_vertical();
|
|
|
|
let mut table = Table::new(data);
|
|
table.with(theme).with(Alignment::left());
|
|
|
|
println!("{table}");
|
|
}
|