Skip to main content

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 drift_event_generator;
43pub mod esg;
44pub mod hr;
45pub mod kpi_generator;
46pub mod manufacturing;
47pub mod organizational_event_generator;
48pub mod process_evolution_generator;
49pub mod project_accounting;
50pub mod sales_quote_generator;
51pub mod sourcing;
52pub mod standards;
53pub mod tax;
54pub mod treasury;
55
56// ---------------------------------------------------------------------------
57// Root-level re-exports
58//
59// Modules consumed by datasynth-runtime or internal tests from the crate root
60// keep glob re-exports so that `use datasynth_generators::SomeType;` works.
61// Modules that are only accessed via qualified paths (e.g.
62// `datasynth_generators::fraud::RedFlagGenerator`) expose their types through
63// `pub mod` above and do NOT pollute the crate root namespace.
64// ---------------------------------------------------------------------------
65
66// Core generators
67pub use coa_generator::*;
68pub use je_generator::*;
69pub use user_generator::*;
70
71// Master data generators
72pub use master_data::*;
73
74// Document flow generators
75pub use document_flow::*;
76
77// Anomaly injection
78pub use anomaly::*;
79
80// Data quality
81pub use data_quality::*;
82
83// Audit generators
84pub use audit::*;
85
86// Balance validation
87pub use balance::*;
88
89// Subledger generators
90pub use subledger::*;
91
92// Sourcing generators (S2C)
93pub use sourcing::*;
94
95// Period close / financial statements
96pub use period_close::*;
97
98// Bank reconciliation generator
99pub use bank_reconciliation_generator::*;
100
101// ESG generators
102pub use esg::*;
103
104// Intercompany generators
105pub use intercompany::*;
106
107// HR generators (payroll, time entry, expense report)
108pub use hr::*;
109
110// Manufacturing generators
111pub use manufacturing::*;
112
113// Accounting standards generators
114pub use standards::*;
115
116// Enterprise process chain generators
117pub use budget_generator::*;
118pub use drift_event_generator::*;
119pub use kpi_generator::*;
120pub use organizational_event_generator::*;
121pub use process_evolution_generator::*;
122pub use sales_quote_generator::*;
123pub use tax::*;
124
125// Control generator
126pub use control_generator::{ControlGenerator, ControlGeneratorConfig};
127
128// ---------------------------------------------------------------------------
129// Modules below are accessible via qualified paths only:
130//   datasynth_generators::company_selector::WeightedCompanySelector
131//   datasynth_generators::counterfactual::CounterfactualGenerator
132//   datasynth_generators::disruption::DisruptionManager
133//   datasynth_generators::fraud::{RedFlagGenerator, CollusionNetwork, ...}
134//   datasynth_generators::fx::{FxRateService, CurrencyTranslator, ...}
135//   datasynth_generators::industry::{IndustryTransactionGenerator, ...}
136//   datasynth_generators::relationships::{EntityGraphGenerator, ...}
137//   datasynth_generators::temporal::TemporalAttributeGenerator
138//   datasynth_generators::project_accounting::{ProjectGenerator, ...}
139//   datasynth_generators::treasury::{CashPositionGenerator, ...}
140// ---------------------------------------------------------------------------