#![cfg(feature = "derive")]
use tabled::Tabled;
use super::{sstr, test_enum, test_struct, test_tuple};
test_tuple!(
tuple_empty,
declare: { { } }
init: {}
define: { }
assert_headers: { [] }
assert_fields: { [] }
);
test_tuple!(
tuple_basic,
declare: { { u32 sstr } }
init: {}
define: { 20202503 "Hello World" }
assert_headers: { ["0", "1"] }
assert_fields: { ["20202503", "Hello World"] }
);
test_enum!(
enum_basic,
declare: { { Security Embedded Frontend Unknown } }
init: {}
assert_headers: { ["Security", "Embedded", "Frontend", "Unknown"] }
assert: {
Security => ["+", "", "", ""],
Embedded => ["", "+", "", ""],
Frontend => ["", "", "+", ""],
Unknown => ["", "", "", "+"],
}
);
test_enum!(
enum_diverse,
declare: { { A { a: u8, b: i32 } B(sstr) K } }
init: {}
assert_headers: { ["A", "B", "K"] }
assert: {
A { a: 1, b: 2 } => ["+", "", ""],
B("") => ["", "+", ""],
K => ["", "", "+"],
}
);
#[test]
fn basic() {
#[derive(Tabled)]
struct St;
let st = St;
assert!(st.fields().is_empty());
assert!(St::headers().is_empty());
assert_eq!(St::LENGTH, 0);
}
test_struct!(
struct_empty,
declare: { {} }
init: {}
define: { }
assert_headers: { [] }
assert_fields: { [] }
);
test_struct!(
struct_general,
declare: {
{
f1: u8,
f2: sstr,
}
}
init: {}
define: { f1: 0, f2: "v2" }
assert_headers: { ["f1", "f2"] }
assert_fields: { ["0", "v2"] }
);
mod __ {
#[test]
fn dont_import_the_trait() {
#[derive(tabled::Tabled)]
struct __;
}
}