1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Introduce std::string_view into wider use (#14368)

This commit is contained in:
sfan5 2024-02-17 15:35:33 +01:00 committed by GitHub
parent fa47af737f
commit 6ca214fefc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
74 changed files with 501 additions and 456 deletions

View file

@ -19,6 +19,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#pragma once
#include <string_view>
extern "C" {
#include <lua.h>
}
@ -27,23 +29,22 @@ class LuaHelper
{
protected:
/**
* Read a value using a template type T from Lua State L and index
*
* Read a value using a template type T from Lua state L at index
*
* @tparam T type to read from Lua
* @param L Lua state
* @param index Lua Index to read
* @param index Lua index to read
* @return read value from Lua
*/
template <typename T>
static T readParam(lua_State *L, int index);
/**
* Read a value using a template type T from Lua State L and index
* Read a value using a template type T from Lua state L at index
*
* @tparam T type to read from Lua
* @param L Lua state
* @param index Lua Index to read
* @param index Lua index to read
* @param default_value default value to apply if nil
* @return read value from Lua or default value if nil
*/
@ -53,3 +54,18 @@ protected:
return lua_isnoneornil(L, index) ? default_value : readParam<T>(L, index);
}
};
// (only declared for documentation purposes:)
/**
* Read a string from Lua state L at index without copying it.
*
* Note that the returned string view is only valid as long as the value is on
* the stack and has not been modified. Be careful.
*
* @param L Lua state
* @param index Lua index to read
* @return string view
*/
template <>
std::string_view LuaHelper::readParam(lua_State *L, int index);