Expand description
Procedural macro implementation for assert-struct.
This crate provides the procedural macro implementation for the assert-struct
crate.
Users should use the main assert-struct
crate which re-exports this macro.
§Architecture Overview
The macro transformation happens in three phases:
- Parse (
parse.rs
): Tokenize the macro input into a Pattern AST - Expand (
expand.rs
): Transform patterns into assertion code - Execute: Generated code runs the actual assertions
§Key Design Decisions
- Pattern enum: Unified abstraction for all pattern types (struct, tuple, slice, etc.)
- Disambiguation:
check_for_special_syntax
solvesSome(> 30)
vsSome(my_var)
- Dual-path optimization: String literal regexes compile at expansion time
- Native Rust syntax: Use match expressions for ranges, slices, and enums
See the main assert-struct
crate for documentation and examples.
Macros§
- assert_
struct - Structural assertion macro for testing complex data structures.