merman-core 0.5.2

Mermaid parser + semantic model (headless; parity-focused).
Documentation
use super::*;
use crate::{MermaidConfig, ParseMetadata};

fn meta() -> ParseMetadata {
    ParseMetadata {
        diagram_type: "classDiagram".to_string(),
        config: MermaidConfig::default(),
        effective_config: MermaidConfig::default(),
        title: None,
    }
}

#[test]
fn fast_parser_matches_lalrpop_for_basic_class_diagram() {
    let code = r#"classDiagram
class C1 {
  +String field1
  +method1()
}
C1 <|-- C2 : inherits
"#;
    let meta = meta();
    let slow = parse::parse_class_via_lalrpop(code, &meta).expect("slow parse");
    let fast = fast::parse_class_fast_db(code, &meta)
        .expect("fast parse")
        .expect("fast parser applicable")
        .into_model(&meta);
    assert_eq!(fast, slow);
}