nngn
Loading...
Searching...
No Matches
nngn::lua::detail Namespace Reference

Classes

struct  function_base
 Reference to a function on the stack. More...
 
struct  table_accessor
 Internal type used in nested table accesses. More...
 
class  table_base
 CRTP base for stack table types. More...
 
struct  table_base_tag
 Tag to relate all table_base instantiations via inheritance. More...
 
class  table_iter
 lua_next-based table iterator. More...
 
class  table_iter_base
 CRTP base for table iterators. More...
 
struct  table_proxy_tag
 Tag to relate all table_proxy instantiations via inheritance. More...
 
class  table_seq_iter
 ipairs-style table iterator. More...
 
struct  user_data_base
 Base operations which do not depend on the template type. More...
 

Concepts

concept  stack_value
 A type which can be read from / pushed onto the stack.
 
concept  stack_type
 A built-in type from this library with stack manipulation operations.
 
concept  integer
 A type which can be fully represented by a lua_Integer.
 
concept  number
 A type which can be fully represented by a lua_Number.
 

Typedefs

template<typename T >
using stored_type = std::conditional_t< std::is_abstract_v< T >, empty, T >
 Prevents forming a type with an abstract type as a member.
 

Enumerations

enum  op_mode { normal , raw , normal , raw }
 
enum  op_mode { normal , raw , normal , raw }
 

Functions

template<typename CRTP , typename T >
bool operator== (const table_iter_base< CRTP, T > &lhs, const table_iter_base< CRTP, T > &rhs)
 
template<typename R , typename T >
int push_fn_wrapper (lua_State *L, T f)
 

Variables

template<typename T >
constexpr bool can_get
 Whether this library knows how to read a T value from the stack.
 
template<typename T >
constexpr bool can_push
 Whether this library knows how to push a T value onto the stack.
 
template<typename T >
constexpr bool is_optional = false
 

Typedef Documentation

◆ stored_type

template<typename T >
using nngn::lua::detail::stored_type = typedef std::conditional_t<std::is_abstract_v<T>, empty, T>

Prevents forming a type with an abstract type as a member.

The nngn::empty member itself is purely declarative and never used.

Enumeration Type Documentation

◆ op_mode [1/2]

Enumerator
normal 
raw 
normal 
raw 

◆ op_mode [2/2]

Enumerator
normal 
raw 
normal 
raw 

Function Documentation

◆ operator==()

template<typename CRTP , typename T >
bool nngn::lua::detail::operator== ( const table_iter_base< CRTP, T > &  lhs,
const table_iter_base< CRTP, T > &  rhs 
)

◆ push_fn_wrapper()

template<typename R , typename T >
int nngn::lua::detail::push_fn_wrapper ( lua_State *  L,
T  f 
)
Here is the call graph for this function:

Variable Documentation

◆ can_get

template<typename T >
constexpr bool nngn::lua::detail::can_get
inlineconstexpr
Initial value:
= requires(lua_State *L) {
stack_get<T>::get(L, 0);
}

Whether this library knows how to read a T value from the stack.

◆ can_push

template<typename T >
constexpr bool nngn::lua::detail::can_push
inlineconstexpr
Initial value:
= requires(lua_State *L, T t) {
stack_push<T>::push(L, t);
}
#define T(f0, f1, f2)

Whether this library knows how to push a T value onto the stack.

◆ is_optional

template<typename T >
constexpr bool nngn::lua::detail::is_optional< std::optional< T > > = false
inlineconstexpr