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