add lua dv::bytes support
This commit is contained in:
parent
9e8a33c411
commit
f7492ce449
@ -51,12 +51,23 @@ int lua::pushvalue(State* L, const dv::value& value) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case value_type::object: {
|
case value_type::object:
|
||||||
createtable(L, 0, value.size());
|
createtable(L, 0, value.size());
|
||||||
for (const auto& [key, elem] : value.asObject()) {
|
for (const auto& [key, elem] : value.asObject()) {
|
||||||
pushvalue(L, elem);
|
pushvalue(L, elem);
|
||||||
setfield(L, key);
|
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;
|
return 1;
|
||||||
|
|||||||
@ -61,5 +61,13 @@ namespace util {
|
|||||||
void resizeFast(size_t size) {
|
void resizeFast(size_t size) {
|
||||||
length = size;
|
length = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const T* begin() const {
|
||||||
|
return ptr.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
const T* end() const {
|
||||||
|
return ptr.get() + size;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user