frontmatter/src/main.rs

27 lines
956 B
Rust

use serde_json::{Map,Value};
use serde::{Serialize,Deserialize};
mod frontmatter;
use frontmatter::GenericFrontmatter;
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
struct PageFrontmatter {
test: Option<String>,
othertest: Option<String>,
extra: Map<String,Value>
}
fn main() {
let body = "test: lol\ntest2: lol\nextra:\n extra_key: value";
let body2 = "test = \"lol\"\n[extra]\nextra_key = \"value\"\nother = \"foobar\"";
//let body3 = "test: lol\nextra:\n extra_key: value\ntest2: lol\ntest3: lol2";
let frontmatter = GenericFrontmatter::from_yaml(&body).expect("FAIL");
let special: PageFrontmatter = serde_json::from_value(frontmatter.into()).expect("FAIL2");
println!("{:?}", special);
let frontmatter2 = GenericFrontmatter::from_toml(&body2).expect("FAIL3");
let special2: PageFrontmatter = serde_json::from_value(frontmatter2.into()).expect("FAIL4");
println!("{:?}", special2);
}