waddling-errors-macros 0.7.3

Procedural macros for structured error codes with compile-time validation and taxonomy enforcement
Documentation
//! Test: Invalid sequence name should fail compilation
//!
//! This test verifies that diag! with strict(sequence) validation
//! catches references to non-existent sequence constants.

use waddling_errors_macros::{diag, sequence, setup};

// Set up path resolution so __wd_paths module is created
setup! {
    components = crate::components,
    primaries = crate::primaries,
    sequences = crate::sequences,
}

// Define dummy components and primaries for setup! macro
pub mod components {
    use waddling_errors_macros::component;

    component! {
        pub enum Component {
            Auth {
                docs: "Authentication",
            },
        }
    }
}

pub mod primaries {
    use waddling_errors_macros::primary;

    primary! {
        pub enum Primary {
            Token {
                docs: "Token errors",
            },
        }
    }
}

// Define valid sequences
pub mod sequences {
    use waddling_errors_macros::sequence;

    sequence! {
        MISSING(1) {
            description: "Required parameter missing",
            typical_severity: "Error",
        },
        INVALID(3) {
            description: "Validation failed",
            typical_severity: "Error",
        },
    }
}

// This should FAIL because NONEXISTENT is not defined
diag! {
    strict(sequence),

    E.Auth.Token.NONEXISTENT: {
        message: "This should fail - NONEXISTENT sequence doesn't exist",
    },
}

fn main() {}