From f7492ce449ef120c29889104bcabd3f980243e6f Mon Sep 17 00:00:00 2001 From: MihailRis Date: Thu, 3 Oct 2024 18:23:50 +0300 Subject: [PATCH] add lua dv::bytes support --- src/logic/scripting/lua/lua_util.cpp | 13 ++++++++++++- src/util/Buffer.hpp | 8 ++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/logic/scripting/lua/lua_util.cpp b/src/logic/scripting/lua/lua_util.cpp index 09e6dca1..6152a254 100644 --- a/src/logic/scripting/lua/lua_util.cpp +++ b/src/logic/scripting/lua/lua_util.cpp @@ -51,12 +51,23 @@ int lua::pushvalue(State* L, const dv::value& value) { } break; } - case value_type::object: { + case value_type::object: createtable(L, 0, value.size()); for (const auto& [key, elem] : value.asObject()) { pushvalue(L, elem); setfield(L, key); } + break; + case value_type::bytes: { + const auto& bytes = value.asBytes(); + createtable(L, 0, bytes.size()); + size_t size = bytes.size(); + for (size_t i = 0; i < size;) { + pushinteger(L, bytes[i]); + i++; + rawseti(L, i); + } + break; } } return 1; diff --git a/src/util/Buffer.hpp b/src/util/Buffer.hpp index fbe1ade7..8b86d2bf 100644 --- a/src/util/Buffer.hpp +++ b/src/util/Buffer.hpp @@ -61,5 +61,13 @@ namespace util { void resizeFast(size_t size) { length = size; } + + const T* begin() const { + return ptr.get(); + } + + const T* end() const { + return ptr.get() + size; + } }; }