gear_mesh_generator/
lib.rs1mod branded;
7mod typescript;
8pub mod utils;
9mod validation_gen;
10
11#[cfg(test)]
12mod tests;
13
14pub use branded::BrandedTypeGenerator;
15pub use typescript::TypeScriptGenerator;
16pub use validation_gen::ValidationGenerator;
17
18pub use gear_mesh_core::{
23 DocComment, EnumRepresentation, EnumType, EnumVariant, FieldInfo, GearMeshType, GenericParam,
24 NewtypeType, PrimitiveType, SerdeFieldAttrs, StructType, TypeAttributes, TypeKind, TypeRef,
25 ValidationRule, VariantContent,
26};
27
28pub use gear_mesh_derive::GearMesh;
30
31pub trait GearMeshExport {
35 fn gear_mesh_type() -> GearMeshType;
37
38 fn type_name() -> &'static str;
40}
41
42#[derive(Debug, Clone, Default)]
48pub struct GeneratorConfig {
49 pub use_bigint: bool,
51 pub generate_branded: bool,
53 pub generate_validation: bool,
55 pub generate_zod: bool,
57 pub generate_jsdoc: bool,
59 pub indent: String,
61}
62
63impl GeneratorConfig {
64 pub fn new() -> Self {
65 Self {
66 use_bigint: true,
67 generate_branded: true,
68 generate_validation: false,
69 generate_zod: false,
70 generate_jsdoc: true,
71 indent: " ".to_string(),
72 }
73 }
74
75 pub fn with_bigint(mut self, use_bigint: bool) -> Self {
76 self.use_bigint = use_bigint;
77 self
78 }
79
80 pub fn with_branded(mut self, generate: bool) -> Self {
81 self.generate_branded = generate;
82 self
83 }
84
85 pub fn with_validation(mut self, generate: bool) -> Self {
86 self.generate_validation = generate;
87 self
88 }
89
90 pub fn with_zod(mut self, generate: bool) -> Self {
91 self.generate_zod = generate;
92 self
93 }
94
95 pub fn with_jsdoc(mut self, generate: bool) -> Self {
96 self.generate_jsdoc = generate;
97 self
98 }
99}