|
nngn
|
#include <numeric>#include <optional>#include <lua.hpp>#include "utils/concepts.h"#include "utils/fixed_string.h"#include "utils/fn.h"#include "utils/ranges.h"#include "utils/utils.h"

Go to the source code of this file.
Classes | |
| struct | nngn::lua::nil_type |
Used to push nil values onto the stack. More... | |
| struct | nngn::lua::error< T > |
"Pushing" this value causes lua_error to be called. More... | |
| struct | nngn::lua::stack_push< void > |
| Generic version of stack_push, deduces type from the argument. More... | |
| struct | nngn::lua::detail::table_base_tag |
| Tag to relate all table_base instantiations via inheritance. More... | |
| struct | nngn::lua::detail::table_proxy_tag |
| Tag to relate all table_proxy instantiations via inheritance. More... | |
Namespaces | |
| namespace | nngn |
| namespace | nngn::lua |
| namespace | nngn::lua::detail |
Concepts | |
| concept | nngn::lua::user_type |
| concept | nngn::lua::detail::stack_value |
| A type which can be read from / pushed onto the stack. | |
| concept | nngn::lua::detail::stack_type |
| A built-in type from this library with stack manipulation operations. | |
| concept | nngn::lua::detail::integer |
A type which can be fully represented by a lua_Integer. | |
| concept | nngn::lua::detail::number |
A type which can be fully represented by a lua_Number. | |
| concept | nngn::lua::stack_ref |
Macros | |
| #define | NNGN_LUA_TYPES(X) |
| #define | X(n, v) n = v, |
| #define | X(n, _) case type::n: return #n; |
Enumerations | |
| enum class | nngn::lua::type : int { nngn::lua::X , nngn::lua::none = LUA_TNONE , nngn::lua::nil = LUA_TNIL , nngn::lua::boolean = LUA_TBOOLEAN , nngn::lua::light_user_data = LUA_TLIGHTUSERDATA , nngn::lua::number = LUA_TNUMBER , nngn::lua::string = LUA_TSTRING , nngn::lua::table = LUA_TTABLE , nngn::lua::function = LUA_TFUNCTION , nngn::lua::user_data = LUA_TUSERDATA , nngn::lua::thread = LUA_TTHREAD } |
LUA_T* constants as a scoped enumeration. More... | |
| enum | nngn::lua::detail::op_mode { nngn::lua::detail::normal , nngn::lua::detail::raw } |
Functions | |
| template<typename T > | |
| nngn::lua::error (T) -> error< T > | |
| constexpr type | nngn::lua::type_from_lua (int t) |
Maps LUA_T* values to type. | |
| template<typename R , typename ... Args> | |
| R | nngn::lua::call (lua_State *L, R(*f)(Args...), int i) |
Calls the regular function f with arguments taken from the stack. | |
| template<typename R , typename T , typename ... Args> | |
| R | nngn::lua::call (lua_State *L, R(T::*f)(Args...), int i) |
Calls member function f with object/arguments taken from the stack. | |
| template<stateless_lambda T> | |
| nngn::lua::call (lua_State *L, T, int i) | |
| Calls a stateless lambda. | |
| std::string_view | nngn::lua::type_str (type t) |
| int | nngn::lua::msgh (lua_State *L) |
Default message handler for lua_pcall. | |
| void | nngn::lua::print_stack (lua_State *L) |
| Logs the current data stack. | |
| void | nngn::lua::print_traceback (lua_State *L) |
| Logs the current call stack. | |
Variables | |
| constexpr struct nngn::lua::nil_type | nngn::lua::nil |
| constexpr std::array | nngn::lua::types |
| type values as a sequential array. | |
| template<typename T > | |
| constexpr auto | nngn::lua::is_user_type = false |
| Flag which indicates that a type is to be treated as a user type. | |
| template<typename T > | |
| constexpr empty | nngn::lua::metatable_name = {} |
Key in the global table where the meta-table for T is stored. | |
| template<typename T > | |
| constexpr bool | nngn::lua::detail::can_get |
Whether this library knows how to read a T value from the stack. | |
| template<typename T > | |
| constexpr bool | nngn::lua::detail::can_push |
Whether this library knows how to push a T value onto the stack. | |
| template<typename T > | |
| constexpr bool | nngn::lua::detail::is_optional = false |
| template<typename T > | |
| constexpr bool | nngn::lua::is_stack_ref = false |
| Determines whether a type is a reference to a value on the stack. | |
| #define NNGN_LUA_TYPES | ( | X | ) |