Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions crates/plotnik-lib/src/bytecode/emit/mod.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
//! Code generation from bytecode Module.
//!
//! This module provides emitters for generating code from compiled bytecode.
//! Currently supports TypeScript, with Rust planned.
//! This module re-exports from [`crate::codegen`] for backwards compatibility.
//! New code should use [`crate::codegen::typescript`] directly.

mod typescript;

pub use typescript::{
EmitConfig as TsEmitConfig, TsEmitter, emit_typescript, emit_typescript_with_config,
// Re-export from codegen module for backwards compatibility
pub use crate::codegen::typescript::{
Config as TsEmitConfig, Emitter as TsEmitter, emit as emit_typescript,
emit_with_config as emit_typescript_with_config,
};
21 changes: 21 additions & 0 deletions crates/plotnik-lib/src/codegen/mod.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
//! Code generation from bytecode Module.
//!
//! This module provides emitters for generating code from compiled bytecode.
//! Each target language has its own submodule with a `Config` struct and `emit()` function.
//!
//! # Example
//!
//! ```ignore
//! use plotnik_lib::codegen::typescript;
//! use plotnik_lib::bytecode::Module;
//!
//! let module = Module::from_bytes(bytecode)?;
//! let config = typescript::Config {
//! export: true,
//! emit_node_type: true,
//! verbose_nodes: false,
//! };
//! let output = typescript::emit_with_config(&module, config);
//! ```

pub mod typescript;
Loading