extern crate self as luau_vm;
#[doc(hidden)]
pub mod __macro_support {
pub use luau_printf::ToArg;
}
#[macro_export]
macro_rules! error {
($thread:expr, $format:expr $(,)?) => {
$thread.lua_error($format, [])
};
($thread:expr, $format:expr, $($arg:expr),+ $(,)?) => {{
#[allow(unused_imports)]
use $crate::__macro_support::ToArg as _;
let mut args = [$($arg.to_arg()),+];
$thread.lua_error($format, &mut args)
}};
}
#[macro_export]
macro_rules! run_error {
($thread:expr, $format:expr $(,)?) => {
$thread.run_error($format, [])
};
($thread:expr, $format:expr, $($arg:expr),+ $(,)?) => {{
#[allow(unused_imports)]
use $crate::__macro_support::ToArg as _;
let mut args = [$($arg.to_arg()),+];
$thread.run_error($format, &mut args)
}};
}
#[macro_export]
macro_rules! push_fstring {
($thread:expr, $format:expr $(,)?) => {
$thread.push_fstring($format, [])
};
($thread:expr, $format:expr, $($arg:expr),+ $(,)?) => {{
#[allow(unused_imports)]
use $crate::__macro_support::ToArg as _;
let mut args = [$($arg.to_arg()),+];
$thread.push_fstring($format, &mut args)
}};
}
mod buffer;
mod builtins;
mod call;
mod class;
pub mod debug;
mod error;
mod function;
mod gc;
mod handle;
pub mod internal;
mod layout;
#[allow(
clippy::missing_safety_doc,
reason = "standard-library installers use Thread's documented shared unsafe contract"
)]
mod libs;
mod load;
pub mod lua;
mod memory;
mod metamethod;
pub mod native;
mod number;
mod perf;
pub mod state;
pub mod string;
mod table;
pub mod thread;
pub mod types;
mod userdata;
mod value;
mod vm;
pub(crate) use crate::class::{Class, Object, ObjectMemberLookup};
pub use crate::debug::{LuaDebug, LuaDebugInterruptHook, LuaHook};
pub use crate::error::{VmControl, VmError, VmErrorResult, VmExit, VmResult};
pub use crate::gc::{
LUA_GC_COLLECT, LUA_GC_COUNT, LUA_GC_COUNT_B, LUA_GC_IS_PAUSED, LUA_GC_IS_RUNNING,
LUA_GC_RESTART, LUA_GC_SET_GOAL, LUA_GC_SET_STEP_MUL, LUA_GC_SET_STEP_SIZE, LUA_GC_STEP,
LUA_GC_STOP,
};
pub use crate::native::{
LuaUserdataRef, LuaUserdataRefMut, NativeArgument, NativeArguments, NativeCallContext,
NativeCallResult, NativeFunction, NativeModule, RawNativeContinuation, RawNativeFunction,
};
pub use crate::perf::clock;
pub use crate::string::LuaString;
pub(crate) use crate::table::Table;
pub use crate::thread::{LuaStringBuilder, LuaStringBuilderStorage, Thread};
pub use crate::userdata::{
LuaDestructor, LuaInlineDestructor, LuaUserdataDirectAccess, LuaUserdataDirectFieldGet,
LuaUserdataDirectNamecall, LuaUserdataMark, USERDATA_TAG_LIMIT, UserdataDirectFieldResult,
};