entrenar/generative/code_gan/mod.rs
1//! Generative Adversarial Network for Code Generation
2//!
3//! Implements a GAN architecture for generating valid Rust AST candidates:
4//! - Generator: Maps latent vectors to Rust AST token sequences
5//! - Discriminator: Classifies code as real (valid) or fake (invalid)
6//!
7//! # Architecture
8//!
9//! ```text
10//! Latent Vector z ─┬─► Generator ─► AST Tokens ─┬─► Discriminator ─► Valid/Invalid
11//! │ │
12//! │ Real AST Samples ────────┘
13//! │
14//! └── (sampled from N(0, I))
15//! ```
16//!
17//! # Example
18//!
19//! ```rust
20//! use entrenar::generative::{CodeGan, CodeGanConfig};
21//!
22//! let config = CodeGanConfig::default();
23//! let mut gan = CodeGan::new(config);
24//!
25//! // Training loop would alternate between generator and discriminator updates
26//! ```
27
28mod config;
29mod discriminator;
30mod gan;
31mod generator;
32mod latent;
33
34pub use config::{CodeGanConfig, DiscriminatorConfig, GeneratorConfig};
35pub use discriminator::{sigmoid, Discriminator};
36pub use gan::{CodeGan, CodeGanStats, TrainingResult};
37pub use generator::Generator;
38pub use latent::LatentCode;