2020-04-22 19:42:09 +00:00
|
|
|
/// A program that serializes a Rust structure to YAML and pretty-prints the result
|
2020-05-16 22:16:51 +00:00
|
|
|
use bat::{Input, PrettyPrinter};
|
2020-04-22 19:42:09 +00:00
|
|
|
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)
|
2020-04-22 20:41:25 +00:00
|
|
|
.grid(true)
|
|
|
|
.header(true)
|
2020-05-16 22:16:51 +00:00
|
|
|
.input(Input::from_bytes(&bytes).name("person.yaml").kind("File"))
|
2020-04-22 19:42:09 +00:00
|
|
|
.print()
|
|
|
|
.unwrap();
|
|
|
|
}
|