use std::time::Duration;
use crate::golden_doc;
use crate::output::{Doc, Role};
golden_doc!(corners, kv_one_key, |p, cap| {
p.kv_block([("Foo", "bar")]);
});
golden_doc!(corners, kv_two_keys, |p, cap| {
p.kv_block([("Foo", "1"), ("Bar", "2")]);
});
golden_doc!(corners, kv_many_keys, |p, cap| {
p.kv_block([
("a", "1"),
("ab", "2"),
("abc", "3"),
("abcd", "4"),
("abcde", "5"),
("abcdef", "6"),
]);
});
golden_doc!(corners, long_key_wraps_value, |p, cap| {
p.kv_block([("ThisIsAVeryLongKeyThatExceedsTwentyFourChars", "value")]);
});
golden_doc!(corners, consecutive_kvs_align, |p, cap| {
p.kv("Foo", "1");
p.kv("LongerKey", "2");
p.heading("Next"); });
golden_doc!(
corners,
spinner_finish_with_detail_and_duration,
|p, cap| {
let sp = p.spinner("doing work");
sp.finish_ok("done")
.detail("note")
.duration(Duration::from_millis(1234));
}
);
golden_doc!(corners, three_level_nesting, |p, cap| {
let l1 = p.section("L1");
let l2 = l1.section("L2");
let l3 = l2.section("L3");
l3.bullet("deep");
});
golden_doc!(corners, empty_plain_section_shows_none, |p, cap| {
let _s = p.section("EmptyPlain");
});
golden_doc!(corners, section_if_nonempty_skips_empty, |p, cap| {
let doc = Doc::new()
.heading("X")
.section_if_nonempty::<i32, _>("Items", &[], |s, _| s);
p.emit(doc);
});
golden_doc!(corners, with_data_divergence_human_side, |p, cap| {
#[derive(serde::Serialize)]
struct Pay {
x: i32,
}
let doc = Doc::new()
.heading("Visible")
.kv("k", "v")
.with_data(Pay { x: 7 });
p.emit(doc);
});
golden_doc!(corners, status_with_target, |p, cap| {
p.status(Role::Warn, "outdated")
.target(std::path::Path::new("/etc/foo.conf"));
});
golden_doc!(corners, hint_inside_section, |p, cap| {
let s = p.section("Tips");
s.hint("run cfgd apply");
});