typub_markdown/
processing.rs1use enumset::{EnumSet, EnumSetType};
7
8#[derive(EnumSetType, Debug)]
14pub enum MarkdownProcessingRule {
15 Noop,
17}
18
19pub type MarkdownProcessingRules = EnumSet<MarkdownProcessingRule>;
21
22pub fn parse_markdown_processing_rules(names: &[&str]) -> MarkdownProcessingRules {
27 let mut rules = MarkdownProcessingRules::empty();
28 for name in names {
29 if *name == "noop" {
30 rules |= MarkdownProcessingRule::Noop;
31 }
32 }
33 rules
34}
35
36#[cfg(test)]
37mod tests {
38 use super::*;
39
40 #[test]
41 fn test_parse_noop() {
42 let rules = parse_markdown_processing_rules(&["noop"]);
43 assert!(rules.contains(MarkdownProcessingRule::Noop));
44 }
45
46 #[test]
47 fn test_parse_unknown_rule() {
48 let rules = parse_markdown_processing_rules(&["unknown_rule"]);
49 assert!(rules.is_empty());
50 }
51}