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 | ) |