hsml 0.7.2

A pug-inspired HTML preprocessor
Documentation
use std::collections::HashSet;

use crate::parser::Span;
use crate::parser::error::{ErrorCode, HsmlError, Severity};

#[test]
fn error_codes_are_unique() {
    let mut seen = HashSet::new();
    for code in ErrorCode::ALL {
        assert!(
            seen.insert(code.code()),
            "duplicate error code: {}",
            code.code()
        );
    }
}

#[test]
fn from_code_uses_error_code_severity() {
    let span = Span::new("test");

    let result = HsmlError::from_code(span, ErrorCode::DuplicateId);
    assert_eq!(result.severity, Severity::Warning);

    let result = HsmlError::from_code(span, ErrorCode::InvalidTagName);
    assert_eq!(result.severity, Severity::Error);

    let result = HsmlError::from_code(span, ErrorCode::MixedIndentation);
    assert_eq!(result.severity, Severity::Warning);

    let result = HsmlError::from_code(span, ErrorCode::DuplicateClass);
    assert_eq!(result.severity, Severity::Warning);
}