summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorsharkdp <davidpeter@web.de>2020-04-22 21:42:09 +0200
committerDavid Peter <sharkdp@users.noreply.github.com>2020-04-22 23:55:28 +0200
commit5f826419d13e74fcdea851947364a1d5d69d152e (patch)
tree00e196df6af1aaeb3805c1ceafb4b427395ef7f6 /examples
parent13f671b49984ff68ca77e213429f00173b8a6755 (diff)
Add YAML example
Diffstat (limited to 'examples')
-rw-r--r--examples/yaml.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/examples/yaml.rs b/examples/yaml.rs
new file mode 100644
index 00000000..0bfc94db
--- /dev/null
+++ b/examples/yaml.rs
@@ -0,0 +1,33 @@
+/// A program that serializes a Rust structure to YAML and pretty-prints the result
+use bat::PrettyPrinter;
+use serde::Serialize;
+
+#[derive(Serialize)]
+struct Person {
+ name: String,
+ height: f64,
+ adult: bool,
+ children: Vec<Person>,
+}
+
+fn main() {
+ let person = Person {
+ name: String::from("Anne Mustermann"),
+ height: 1.76f64,
+ adult: true,
+ children: vec![Person {
+ name: String::from("Max Mustermann"),
+ height: 1.32f64,
+ adult: false,
+ children: vec![],
+ }],
+ };
+
+ let bytes = serde_yaml::to_vec(&person).unwrap();
+ PrettyPrinter::new()
+ .language("yaml")
+ .line_numbers(true)
+ .input_from_bytes(&bytes)
+ .print()
+ .unwrap();
+}