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;
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// ──────────────────────────────────────────────────────────────────────────