assert-struct-macros 0.4.0

Procedural macro implementation for assert-struct
Documentation

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:

  1. Parse (parse.rs): Tokenize the macro input into a Pattern AST
  2. Expand (expand.rs): Transform patterns into assertion code
  3. Execute: Generated code runs the actual assertions

Key Design Decisions

  • Pattern enum: Unified abstraction for all pattern types (struct, tuple, slice, etc.)
  • Explicit patterns: Require explicit operators (e.g., Some(== my_var) not Some(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.