// https://github.com/vinniefalco/LuaBridge // Copyright 2021, Stefan Frings // SPDX-License-Identifier: MIT #pragma once #include #include namespace luabridge { template struct Stack> { static void push(lua_State* L, std::optional const& optional) { if (optional) { Stack::push(L, *optional); } else { lua_pushnil(L); } } static std::optional get(lua_State* L, int index) { if (lua_isnil(L, index)) { lua_pop(L, 1); return std::nullopt; } return Stack::get(L, index); } static bool isInstance(lua_State* L, int index) { return lua_isnil(L, index) || Stack::isInstance(L, index); } }; } // namespace luabridge