#![forbid(unsafe_op_in_unsafe_fn)]
mod app_data;
#[cfg(feature = "async")]
#[path = "async.rs"]
mod async_support;
mod buffer;
mod callback;
mod chunk;
mod compiler;
mod conversion;
mod debug;
mod error;
mod exec_raw;
#[path = "ffi_public.rs"]
pub mod ffi;
mod function;
mod gc;
mod interrupt;
mod light_userdata;
mod luau_ext;
mod memory;
mod metamethod;
mod module;
mod multi;
mod options;
mod registry;
mod scope;
#[cfg(feature = "serde")]
mod serde;
pub mod state;
mod string;
mod sync;
#[path = "ffi.rs"]
mod sys;
mod table;
mod thread;
mod traits;
#[cfg(feature = "typecheck")]
mod typecheck;
mod userdata;
mod value;
mod vector;
pub use buffer::Buffer;
pub use chunk::{Chunk, ChunkMode};
pub use compiler::Compiler;
pub use debug::{Debug, DebugWhat};
pub use error::{Error, ExternalError, ExternalResult, Result};
pub use function::{Function, FunctionInfo, LuaNativeFn};
pub use interrupt::VmState;
pub use light_userdata::LightUserData;
pub use luau_ext::TypeMetatable;
pub use metamethod::MetaMethod;
pub use multi::{MultiValue, Variadic};
pub use options::{LuaOptions, StdLib};
pub use registry::RegistryKey;
pub use scope::Scope;
pub use state::{Lua, WeakLua};
pub use string::LuaString;
pub use sync::{MaybeSend, MaybeSync};
pub use table::{Table, TablePairs, TableSequence};
pub use thread::{Thread, ThreadStatus};
pub use traits::{FromLua, FromLuaMulti, IntoLua, IntoLuaMulti};
#[cfg(feature = "typecheck")]
#[cfg_attr(docsrs, doc(cfg(feature = "typecheck")))]
pub use typecheck::{check, check_with_definitions, TypeDiagnostic};
pub use app_data::{AppDataRef, AppDataRefMut};
#[cfg(feature = "async")]
#[cfg_attr(docsrs, doc(cfg(feature = "async")))]
pub use async_support::AsyncThread;
pub use userdata::{
AnyUserData, UserData, UserDataFields, UserDataMethods, UserDataRef, UserDataRefMut,
};
pub use value::{Integer, Number, Value};
pub use vector::Vector;
pub use value::Value::Nil;
#[cfg(feature = "macros")]
pub use luaur_rt_derive::{FromLua, UserData};
#[cfg(feature = "serde")]
pub use serde::{
DeserializeOptions, Deserializer as LuaDeserializer, LuaSerdeExt, SerializableTable,
SerializableValue, SerializeOptions, Serializer as LuaSerializer,
};
pub mod prelude {
pub use crate::{
AnyUserData, Buffer, Chunk, Error, ExternalError, ExternalResult, FromLua, FromLuaMulti,
Function, IntoLua, IntoLuaMulti, Lua, LuaString, MetaMethod, MultiValue, RegistryKey,
Result, Scope, Table, Thread, ThreadStatus, UserData, UserDataFields, UserDataMethods,
Value, Variadic, Vector,
};
pub use crate::AnyUserData as LuaAnyUserData;
pub use crate::Error as LuaError;
pub use crate::Function as LuaFunction;
pub use crate::MetaMethod as LuaMetaMethod;
pub use crate::MultiValue as LuaMultiValue;
pub use crate::RegistryKey as LuaRegistryKey;
pub use crate::Result as LuaResult;
pub use crate::Table as LuaTable;
pub use crate::Thread as LuaThread;
pub use crate::ThreadStatus as LuaThreadStatus;
pub use crate::UserData as LuaUserData;
pub use crate::UserDataFields as LuaUserDataFields;
pub use crate::UserDataMethods as LuaUserDataMethods;
pub use crate::Value as LuaValue;
pub use crate::Variadic as LuaVariadic;
}
pub use luaur_vm::type_aliases::lua_state::lua_State;
#[cfg(test)]
mod tests;