lua_vm/lib.rs
1//! Lua 5.4 virtual machine — runtime crate.
2//!
3//! Modules map to the canonical C source files per `ANALYSES/file_deps.txt`.
4//! Phase A populated each module with a faithful transliteration; Phase B is
5//! reconciling cross-module references against the `lua-types` foundation.
6
7pub mod api;
8pub mod debug;
9pub mod do_;
10pub mod dump;
11pub mod func;
12pub mod object;
13#[cfg(feature = "opcode-profile")]
14pub mod opcode_profile;
15pub mod state;
16pub mod string;
17pub mod table;
18pub mod trace_impls;
19pub mod tagmethods;
20pub mod undump;
21pub mod vm;
22pub mod zio;
23
24/// Glob-imported by every module so the Phase-B extension traits resolve
25/// without each module having to list them individually.
26///
27/// TODO(phase-b): once the canonical types in `lua-types` grow these methods
28/// natively, this prelude can shrink to just the LuaState helpers.
29pub mod prelude {
30 pub use crate::state::{
31 LuaValueExt, LuaTypeExt, StackIdxExt,
32 LuaTableRefExt, LuaUserDataRefExt, LuaStringRefExt,
33 LuaLClosureRefExt, LuaClosureExt, LuaProtoExt,
34 };
35 pub use crate::vm::{InstructionExt, OpCode};
36 pub(crate) use crate::tagmethods::TagMethod;
37}
38
39// ──────────────────────────────────────────────────────────────────────────
40// PORT STATUS
41// source: (module aggregator; see individual files for C sources)
42// target_crate: lua-vm
43// confidence: high
44// todos: 0
45// port_notes: 0
46// unsafe_blocks: 0
47// notes: Each pub mod corresponds to one C source under
48// `reference/lua-5.4.7/src/`. See `ANALYSES/file_deps.txt`.
49// ──────────────────────────────────────────────────────────────────────────