batch-multi-api declarations (not impl)

This commit is contained in:
BlackMATov
2025-01-18 03:09:01 +07:00
parent 684e934117
commit 27eed30b13
2 changed files with 118 additions and 2 deletions

View File

@@ -73,6 +73,11 @@ batch_remove :: query, fragment... -> integer, boolean
batch_clear :: query -> integer, boolean batch_clear :: query -> integer, boolean
batch_destroy :: query -> integer, boolean batch_destroy :: query -> integer, boolean
batch_multi_set :: query, fragment[], component[]? -> integer, boolean
batch_multi_assign :: query, fragment[], component[]? -> integer, boolean
batch_multi_insert :: query, fragment[], component[]? -> integer, boolean
batch_multi_remove :: query, fragment[] -> integer, boolean
chunk :: fragment... -> chunk?, entity[]? chunk :: fragment... -> chunk?, entity[]?
select :: chunk, fragment... -> component[]... select :: chunk, fragment... -> component[]...

View File

@@ -1573,8 +1573,13 @@ local __defer_op = {
batch_clear = 15, batch_clear = 15,
batch_destroy = 16, batch_destroy = 16,
spawn_entity_at = 17, batch_multi_set = 17,
spawn_entity_with = 18, batch_multi_assign = 18,
batch_multi_insert = 19,
batch_multi_remove = 20,
spawn_entity_at = 21,
spawn_entity_with = 22,
} }
---@type table<evolved.defer_op, fun(bytes: any[], index: integer): integer> ---@type table<evolved.defer_op, fun(bytes: any[], index: integer): integer>
@@ -1687,6 +1692,18 @@ local __defer_ops = {
evolved.batch_destroy(query) evolved.batch_destroy(query)
return 1 return 1
end, end,
[__defer_op.batch_multi_set] = function(bytes, index)
error('not implemented yet', 2)
end,
[__defer_op.batch_multi_assign] = function(bytes, index)
error('not implemented yet', 2)
end,
[__defer_op.batch_multi_insert] = function(bytes, index)
error('not implemented yet', 2)
end,
[__defer_op.batch_multi_remove] = function(bytes, index)
error('not implemented yet', 2)
end,
[__defer_op.spawn_entity_at] = function(bytes, index) [__defer_op.spawn_entity_at] = function(bytes, index)
local entity = bytes[index + 0] local entity = bytes[index + 0]
local chunk = bytes[index + 1] local chunk = bytes[index + 1]
@@ -2043,6 +2060,33 @@ local function __defer_batch_destroy(query)
__defer_length = length + 2 __defer_length = length + 2
end end
---@param query evolved.query
---@param fragments evolved.fragment[]
---@param components evolved.component[]
local function __defer_batch_multi_set(query, fragments, components)
error('not implemented yet', 2)
end
---@param query evolved.query
---@param fragments evolved.fragment[]
---@param components evolved.component[]
local function __defer_batch_multi_assign(query, fragments, components)
error('not implemented yet', 2)
end
---@param query evolved.query
---@param fragments evolved.fragment[]
---@param components evolved.component[]
local function __defer_batch_multi_insert(query, fragments, components)
error('not implemented yet', 2)
end
---@param query evolved.query
---@param fragments evolved.fragment[]
local function __defer_batch_multi_remove(query, fragments)
error('not implemented yet', 2)
end
---@param entity evolved.entity ---@param entity evolved.entity
---@param chunk evolved.chunk ---@param chunk evolved.chunk
---@param fragments evolved.fragment[] ---@param fragments evolved.fragment[]
@@ -3480,6 +3524,73 @@ function evolved.batch_destroy(query)
return destroyed_count, false return destroyed_count, false
end end
---@param query evolved.query
---@param fragments evolved.fragment[]
---@param components? evolved.component[]
---@return integer set_count
---@return boolean is_deferred
function evolved.batch_multi_set(query, fragments, components)
if not components then
components = __EMPTY_COMPONENT_LIST
end
if __defer_depth > 0 then
__defer_batch_multi_set(query, fragments, components)
return 0, true
end
error('not implemented yet', 2)
end
---@param query evolved.query
---@param fragments evolved.fragment[]
---@param components? evolved.component[]
---@return integer assigned_count
---@return boolean is_deferred
function evolved.batch_multi_assign(query, fragments, components)
if not components then
components = __EMPTY_COMPONENT_LIST
end
if __defer_depth > 0 then
__defer_batch_multi_assign(query, fragments, components)
return 0, true
end
error('not implemented yet', 2)
end
---@param query evolved.query
---@param fragments evolved.fragment[]
---@param components? evolved.component[]
---@return integer inserted_count
---@return boolean is_deferred
function evolved.batch_multi_insert(query, fragments, components)
if not components then
components = __EMPTY_COMPONENT_LIST
end
if __defer_depth > 0 then
__defer_batch_multi_insert(query, fragments, components)
return 0, true
end
error('not implemented yet', 2)
end
---@param query evolved.query
---@param fragments evolved.fragment[]
---@return integer removed_count
---@return boolean is_deferred
function evolved.batch_multi_remove(query, fragments)
if __defer_depth > 0 then
__defer_batch_multi_remove(query, fragments)
return 0, true
end
error('not implemented yet', 2)
end
--- ---
--- ---
--- ---