1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//! Rust code generation from Oxur AST
//!
//! This module provides functionality to generate Rust source code from
//! Oxur's internal AST representation.
//!
//! # Overview
//!
//! The code generation process takes an Oxur `Crate` AST and produces
//! valid Rust source code as a String. The generated code maintains
//! proper indentation, formatting, and Rust syntax.
//!
//! # Example
//!
//! ```no_run
//! use oxur_ast::ast::*;
//! use oxur_ast::gen_rs::generate_rust;
//!
//! # fn example() -> anyhow::Result<()> {
//! // Given an Oxur AST crate node...
//! let crate_node: Crate = todo!();
//!
//! // Generate Rust source code
//! let rust_code = generate_rust(&crate_node)?;
//!
//! // The output is valid Rust code that can be compiled
//! println!("{}", rust_code);
//! # Ok(())
//! # }
//! ```
pub use RustCodegen;
use crateCrate;
use Result;
/// Generate Rust source code from an Oxur AST Crate node
///
/// This is the main entry point for code generation. It creates a
/// `RustCodegen` instance and uses it to generate formatted Rust code.
///
/// # Arguments
///
/// * `crate_node` - The root Crate AST node to generate code from
///
/// # Returns
///
/// Returns a `String` containing valid Rust source code, or an error
/// if code generation fails.
///
/// # Example
///
/// ```no_run
/// use oxur_ast::gen_rs::generate_rust;
/// use oxur_ast::ast::Crate;
///
/// # fn example(crate_node: Crate) -> anyhow::Result<()> {
/// let rust_code = generate_rust(&crate_node)?;
/// println!("{}", rust_code);
/// # Ok(())
/// # }
/// ```