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
38
39
40
41
42
43
44
45
46
47
48
//! Schema generation module for `OpenAPI`.
//!
//! This module provides functionality for converting Rust types (structs, enums)
//! into OpenAPI-compatible JSON Schema definitions.
//!
//! # Overview
//!
//! The schema module is responsible for the critical task of converting arbitrary Rust types
//! into JSON Schema representations that can be included in `OpenAPI` specs. It handles:
//! - Primitive types (String, i32, bool, etc.)
//! - Complex types (Vec, Option, `HashMap`)
//! - User-defined structs and enums
//! - Serde attribute processing (rename, `rename_all`, default, skip)
//! - Generic type parameters
//! - Circular reference detection
//!
//! # Module Structure
//!
//! - `serde_attrs` - Extract serde attributes (`rename_all`, skip, default, etc.)
//! - `generics` - Generic type parameter substitution
//! - `struct_schema` - Struct to JSON Schema conversion
//! - `enum_schema` - Enum to JSON Schema conversion
//! - `type_schema` - Type to `SchemaRef` conversion (main entry point)
//!
//! # Key Functions
//!
//! - `parse_type_to_schema_ref` - Convert any Rust type to `SchemaRef`
//! - [`parse_struct_to_schema`] - Convert struct to JSON Schema object
//! - [`parse_enum_to_schema`] - Convert enum to JSON Schema (oneOf or enum array)
//! - [`extract_rename_all`] - Extract serde `rename_all` attribute
// Re-export public API
pub use parse_enum_to_schema;
pub use ;
pub use parse_struct_to_schema;
// Re-export for internal use within the parser module. `parse_type_to_schema_ref`
// is reached directly via the `type_schema` submodule path where needed.
pub use ;