2024-06-13 16:30:03 +00:00
|
|
|
use saphyr::{load_from_str, Yaml};
|
2015-05-30 15:25:16 +00:00
|
|
|
use std::env;
|
|
|
|
use std::fs::File;
|
|
|
|
use std::io::prelude::*;
|
|
|
|
|
|
|
|
fn print_indent(indent: usize) {
|
|
|
|
for _ in 0..indent {
|
|
|
|
print!(" ");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-06-10 16:05:25 +00:00
|
|
|
fn dump_node(doc: &Yaml, indent: usize) {
|
2017-05-08 18:35:53 +00:00
|
|
|
match *doc {
|
2024-06-10 16:05:25 +00:00
|
|
|
Yaml::Array(ref v) => {
|
2015-05-30 15:25:16 +00:00
|
|
|
for x in v {
|
2015-05-30 16:13:21 +00:00
|
|
|
dump_node(x, indent + 1);
|
2015-05-30 15:25:16 +00:00
|
|
|
}
|
2018-09-15 16:49:04 +00:00
|
|
|
}
|
2024-06-10 16:05:25 +00:00
|
|
|
Yaml::Hash(ref h) => {
|
2015-05-30 15:25:16 +00:00
|
|
|
for (k, v) in h {
|
|
|
|
print_indent(indent);
|
2023-08-11 23:54:46 +00:00
|
|
|
println!("{k:?}:");
|
2015-05-30 16:13:21 +00:00
|
|
|
dump_node(v, indent + 1);
|
2015-05-30 15:25:16 +00:00
|
|
|
}
|
2018-09-15 16:49:04 +00:00
|
|
|
}
|
2015-05-30 15:25:16 +00:00
|
|
|
_ => {
|
|
|
|
print_indent(indent);
|
2023-08-11 23:54:46 +00:00
|
|
|
println!("{doc:?}");
|
2015-05-30 15:25:16 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
let args: Vec<_> = env::args().collect();
|
|
|
|
let mut f = File::open(&args[1]).unwrap();
|
|
|
|
let mut s = String::new();
|
|
|
|
f.read_to_string(&mut s).unwrap();
|
|
|
|
|
2024-06-13 16:30:03 +00:00
|
|
|
let docs = load_from_str(&s).unwrap();
|
2015-05-30 15:25:16 +00:00
|
|
|
for doc in &docs {
|
|
|
|
println!("---");
|
|
|
|
dump_node(doc, 0);
|
|
|
|
}
|
|
|
|
}
|