1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! Analysis Module
//!
//! This module contains all the analysis and data structures used to understand
//! and process struct definitions for builder generation. It's organized into
//! three main components:
//!
//! - [`struct_analysis`]: Core struct analysis with comprehensive methods
//! - [`field_analysis`]: Field information processing and utilities
//! - [`validation`]: Validation logic for ensuring correct builder generation
//!
//! # Analysis Pipeline
//!
//! The analysis process follows this pipeline:
//!
//! 1. **Parse Input** - Convert `syn::DeriveInput` into structured data
//! 2. **Extract Fields** - Separate required and optional fields
//! 3. **Analyze Generics** - Track generic parameters and lifetimes
//! 4. **Validate Configuration** - Ensure attributes are consistent
//! 5. **Prepare for Generation** - Create complete analysis context
//!
//! # Key Types
//!
//! - [`StructAnalysis`]: Complete analysis of a struct and its context
//! - [`FieldInfo`]: Information about individual fields and their attributes
//! - Validation functions for ensuring correct configurations
//!
// Re-export main types for convenience
pub use FieldInfo;
pub use StructAnalysis;
// Re-export the main analysis function
pub use analyze_struct;