(frontmatter_json: &str, keys: &[&str])
| 695 | } |
| 696 | |
| 697 | fn frontmatter_string(frontmatter_json: &str, keys: &[&str]) -> Option<String> { |
| 698 | let value = serde_json::from_str::<serde_json::Value>(frontmatter_json).ok()?; |
| 699 | keys.iter() |
| 700 | .find_map(|key| value.get(key).and_then(|item| item.as_str())) |
| 701 | .filter(|item| !item.is_empty()) |
| 702 | .map(String::from) |
| 703 | } |
| 704 | |
| 705 | /// Extract `labels` (array of strings) from frontmatter JSON. |
| 706 | fn frontmatter_labels(frontmatter_json: &str) -> Vec<String> { |
no test coverage detected