Crates.io | tablefy |
lib.rs | tablefy |
version | 0.1.3 |
source | src |
created_at | 2019-07-25 22:01:36.458445 |
updated_at | 2019-07-29 21:11:25.446964 |
description | An easy way to display any struct as a table! |
homepage | |
repository | https://github.com/Calmynt/Tablefy |
max_upload_size | |
id | 151663 |
size | 28,209 |
To check for updates see the changelog.
use tablefy_derive::Tablefy;
use tablefy::Tablefy;
// This struct now implements the tablefy trait
#[derive(Tablefy)]
pub struct Basic {
#[header(name = "Hmm... Nice Header")]
pub something: String,
#[header(name = "We Have Here!")]
pub otherthing: i16,
#[header(name = "Don't You Agree?")]
pub newthing: i8,
pub maybe: Option<String>
}
fn main() {
// Creating a vector of structs...
let basic = vec![Basic {
something: String::from("a"),
otherthing: 2,
newthing: 3,
maybe: None
}, Basic {
something: String::from("b"),
otherthing: 3,
newthing: 4,
maybe: Some(String::from("x"))
}, Basic {
something: String::from("c"),
otherthing: 5,
newthing: 8,
maybe: None
}];
// Turning them into a Table struct...
let table = tablefy::into_table(&basic);
// Or if you just want the string...
println!("{}", tablefy::into_string(&basic));
}
+--------------------+---------------+------------------+-------+
| Hmm... Nice Header | We Have Here! | Don't You Agree? | maybe |
+====================+===============+==================+=======+
| a | 2 | 3 | |
+--------------------+---------------+------------------+-------+
| b | 3 | 4 | x |
+--------------------+---------------+------------------+-------+
| c | 5 | 8 | |
+--------------------+---------------+------------------+-------+
This crate serves as an extension of prettytable
by specifying a Tablefy
trait in order to turn any struct (whose members implement Display) to turn into
a Table
object.
As a result, this means that prettytable
is a dependency. You won't be able to use this crate without
also adding prettytable
.
If you'd like to get the full functionality of this crate (with proc_macros), be sure to check out tablefy_derive!.
Currently there are two major improvements I have in mind for this crate.
tablefy_derive
.{:?}
and {:#?}
instead of {}
License: MPL-2.0