27 lines
956 B
Rust
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);
|
|
}
|