Skip to main content

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;
13pub mod state;
14pub mod string;
15pub mod table;
16pub mod trace_impls;
17pub mod tagmethods;
18pub mod undump;
19pub mod vm;
20pub mod zio;
21
22/// Glob-imported by every module so the Phase-B extension traits resolve
23/// without each module having to list them individually.
24///
25/// TODO(phase-b): once the canonical types in `lua-types` grow these methods
26/// natively, this prelude can shrink to just the LuaState helpers.
27pub mod prelude {
28    pub use crate::state::{
29        LuaValueExt, LuaTypeExt, StackIdxExt,
30        LuaTableRefExt, LuaUserDataRefExt, LuaStringRefExt,
31        LuaLClosureRefExt, LuaClosureExt, LuaProtoExt,
32    };
33    pub use crate::vm::{InstructionExt, OpCode};
34    pub(crate) use crate::tagmethods::TagMethod;
35}
36
37// ──────────────────────────────────────────────────────────────────────────
38// PORT STATUS
39//   source:        (module aggregator; see individual files for C sources)
40//   target_crate:  lua-vm
41//   confidence:    high
42//   todos:         0
43//   port_notes:    0
44//   unsafe_blocks: 0
45//   notes:         Each pub mod corresponds to one C source under
46//                  `reference/lua-5.4.7/src/`. See `ANALYSES/file_deps.txt`.
47// ──────────────────────────────────────────────────────────────────────────