datasynth_generators/lib.rs
1#![deny(clippy::unwrap_used)]
2//! # synth-generators
3//!
4//! Data generators for journal entries, chart of accounts, ACDOCA event logs,
5//! master data entities, document flows, intercompany transactions, balance coherence,
6//! subledger transactions, FX rates, period close processes, anomaly injection,
7//! and data quality variations.
8
9// Allow complex types for return types that model business domain complexity
10#![allow(clippy::type_complexity)]
11// Allow functions with many arguments for domain-specific operations
12#![allow(clippy::too_many_arguments)]
13// Allow large error types as they contain useful diagnostic information
14#![allow(clippy::result_large_err)]
15
16pub mod anomaly;
17pub mod audit;
18pub mod balance;
19pub mod coa_generator;
20pub mod company_selector;
21pub mod control_generator;
22pub mod counterfactual;
23pub mod data_quality;
24pub mod disruption;
25pub mod document_flow;
26pub mod fraud;
27pub mod fx;
28pub mod industry;
29pub mod intercompany;
30pub mod je_generator;
31pub mod llm_enrichment;
32pub mod master_data;
33pub mod period_close;
34pub mod relationships;
35pub mod subledger;
36pub mod temporal;
37pub mod user_generator;
38
39// Enterprise process chain generators
40pub mod bank_reconciliation_generator;
41pub mod budget_generator;
42pub mod compliance;
43pub mod drift_event_generator;
44pub mod esg;
45pub mod hr;
46pub mod kpi_generator;
47pub mod manufacturing;
48pub mod organizational_event_generator;
49pub mod process_evolution_generator;
50pub mod project_accounting;
51pub mod sales_quote_generator;
52pub mod sourcing;
53pub mod standards;
54pub mod tax;
55pub mod treasury;
56
57// ---------------------------------------------------------------------------
58// Root-level re-exports
59//
60// Modules consumed by datasynth-runtime or internal tests from the crate root
61// keep glob re-exports so that `use datasynth_generators::SomeType;` works.
62// Modules that are only accessed via qualified paths (e.g.
63// `datasynth_generators::fraud::RedFlagGenerator`) expose their types through
64// `pub mod` above and do NOT pollute the crate root namespace.
65// ---------------------------------------------------------------------------
66
67// Core generators
68pub use coa_generator::*;
69pub use je_generator::*;
70pub use user_generator::*;
71
72// Master data generators
73pub use master_data::*;
74
75// Document flow generators
76pub use document_flow::*;
77
78// Anomaly injection
79pub use anomaly::*;
80
81// Data quality
82pub use data_quality::*;
83
84// Audit generators
85pub use audit::*;
86
87// Balance validation
88pub use balance::*;
89
90// Subledger generators
91pub use subledger::*;
92
93// Sourcing generators (S2C)
94pub use sourcing::*;
95
96// Period close / financial statements
97pub use period_close::*;
98
99// Bank reconciliation generator
100pub use bank_reconciliation_generator::*;
101
102// ESG generators
103pub use esg::*;
104
105// Intercompany generators
106pub use intercompany::*;
107
108// HR generators (payroll, time entry, expense report)
109pub use hr::*;
110
111// Manufacturing generators
112pub use manufacturing::*;
113
114// Accounting standards generators
115pub use standards::*;
116
117// Enterprise process chain generators
118pub use budget_generator::*;
119pub use drift_event_generator::*;
120pub use kpi_generator::*;
121pub use organizational_event_generator::*;
122pub use process_evolution_generator::*;
123pub use sales_quote_generator::*;
124pub use tax::*;
125
126// Control generator
127pub use control_generator::{ControlGenerator, ControlGeneratorConfig};
128
129// ---------------------------------------------------------------------------
130// Modules below are accessible via qualified paths only:
131// datasynth_generators::company_selector::WeightedCompanySelector
132// datasynth_generators::counterfactual::CounterfactualGenerator
133// datasynth_generators::disruption::DisruptionManager
134// datasynth_generators::fraud::{RedFlagGenerator, CollusionNetwork, ...}
135// datasynth_generators::fx::{FxRateService, CurrencyTranslator, ...}
136// datasynth_generators::industry::{IndustryTransactionGenerator, ...}
137// datasynth_generators::relationships::{EntityGraphGenerator, ...}
138// datasynth_generators::temporal::TemporalAttributeGenerator
139// datasynth_generators::project_accounting::{ProjectGenerator, ...}
140// datasynth_generators::treasury::{CashPositionGenerator, ...}
141// ---------------------------------------------------------------------------