1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
//! # High-level bindings to Lua //! //! The `rlua` crate provides safe high-level bindings to the [Lua programming language]. //! //! # The `Lua` object //! //! The main type exported by this library is the [`Lua`] struct. In addition to methods for //! [executing] Lua chunks or [evaluating] Lua expressions, it provides methods for creating Lua //! values and accessing the table of [globals]. //! //! # Converting data //! //! The [`ToLua`] and [`FromLua`] traits allow conversion from Rust types to Lua values and vice //! versa. They are implemented for many data structures found in Rust's standard library. //! //! For more general conversions, the [`ToLuaMulti`] and [`FromLuaMulti`] traits allow converting //! between Rust types and *any number* of Lua values. //! //! Most code in `rlua` is generic over implementors of those traits, so in most places the normal //! Rust data structures are accepted without having to write any boilerplate. //! //! # Custom Userdata //! //! The [`UserData`] trait can be implemented by user-defined types to make them available to Lua. //! Methods and operators to be used from Lua can be added using the [`UserDataMethods`] API. //! //! [Lua programming language]: https://www.lua.org/ //! [`Lua`]: struct.Lua.html //! [executing]: struct.Lua.html#method.exec //! [evaluating]: struct.Lua.html#method.eval //! [globals]: struct.Lua.html#method.globals //! [`ToLua`]: trait.ToLua.html //! [`FromLua`]: trait.FromLua.html //! [`ToLuaMulti`]: trait.ToLuaMulti.html //! [`FromLuaMulti`]: trait.FromLuaMulti.html //! [`UserData`]: trait.UserData.html //! [`UserDataMethods`]: struct.UserDataMethods.html // Deny warnings inside doc tests / examples. When this isn't present, rustdoc doesn't show *any* // warnings at all. #![doc(test(attr(deny(warnings))))] #[cfg_attr(test, macro_use)] extern crate failure; extern crate libc; mod error; mod ffi; #[macro_use] mod macros; mod conversion; mod function; mod lua; mod multi; mod scope; mod string; mod table; mod thread; mod types; mod userdata; mod util; mod value; #[cfg(test)] mod tests; pub use error::{Error, ExternalError, ExternalResult, Result}; pub use function::Function; pub use lua::Lua; pub use multi::Variadic; pub use scope::Scope; pub use string::String; pub use table::{Table, TablePairs, TableSequence}; pub use thread::{Thread, ThreadStatus}; pub use types::{Integer, LightUserData, Number, RegistryKey}; pub use userdata::{AnyUserData, MetaMethod, UserData, UserDataMethods}; pub use value::{FromLua, FromLuaMulti, MultiValue, Nil, ToLua, ToLuaMulti, Value}; pub mod prelude;