summaryrefslogtreecommitdiffstats
path: root/vendor/tabled/examples/builder_index.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-07 05:48:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-07 05:48:48 +0000
commitef24de24a82fe681581cc130f342363c47c0969a (patch)
tree0d494f7e1a38b95c92426f58fe6eaa877303a86c /vendor/tabled/examples/builder_index.rs
parentReleasing progress-linux version 1.74.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-ef24de24a82fe681581cc130f342363c47c0969a.tar.xz
rustc-ef24de24a82fe681581cc130f342363c47c0969a.zip
Merging upstream version 1.75.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/tabled/examples/builder_index.rs')
-rw-r--r--vendor/tabled/examples/builder_index.rs50
1 files changed, 50 insertions, 0 deletions
diff --git a/vendor/tabled/examples/builder_index.rs b/vendor/tabled/examples/builder_index.rs
new file mode 100644
index 000000000..9a53eb566
--- /dev/null
+++ b/vendor/tabled/examples/builder_index.rs
@@ -0,0 +1,50 @@
+//! This example demonstrates evolving the standard [`Builder`] to an [`IndexBuilder`],
+//! and then manipulating the constructing table with a newly prepended index column.
+//!
+//! * An [`IndexBuilder`] is capable of several useful manipulations, including:
+//! * Giving the new index column a name
+//! * Transposing the index column around a table
+//! * Choosing a location for the new index column besides 0; the default
+//!
+//! * Note that like with any builder pattern the [`IndexBuilder::build()`] function
+//! is necessary to produce a displayable [`Table`].
+
+use tabled::{settings::Style, 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("Manjaro", "Arch", true, true),
+ Distribution::new("Arch", "None", true, true),
+ Distribution::new("Debian", "None", true, true),
+ ];
+
+ let mut table = Table::builder(data)
+ .index()
+ .column(0)
+ .name(None)
+ .transpose()
+ .build();
+
+ table.with(Style::modern());
+
+ println!("{table}");
+}