mirror of
https://github.com/Ukendio/jecs.git
synced 2025-04-25 09:30:03 +00:00
Properly type EmptyQuery
This commit is contained in:
parent
150afc46e4
commit
48cc4dc7d5
1 changed files with 31 additions and 19 deletions
|
@ -662,31 +662,43 @@ local function world_get(world: World, entityId: i53, a: i53, b: i53?, c: i53?,
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function noop()
|
type Item = () -> (number, ...any)
|
||||||
return nil
|
export type Query = typeof({
|
||||||
end
|
__iter = function(): Item
|
||||||
|
return function()
|
||||||
local EmptyQuery = {
|
return 1
|
||||||
__iter = function()
|
|
||||||
return noop
|
|
||||||
end,
|
|
||||||
next = noop,
|
|
||||||
replace = noop,
|
|
||||||
without = function(self)
|
|
||||||
return self
|
|
||||||
end
|
end
|
||||||
|
end,
|
||||||
|
}) & {
|
||||||
|
next: Item,
|
||||||
|
replace: (Query, ...any) -> (),
|
||||||
|
without: (Query) -> Query
|
||||||
}
|
}
|
||||||
|
|
||||||
setmetatable(EmptyQuery, EmptyQuery)
|
|
||||||
|
|
||||||
export type Query = typeof(EmptyQuery)
|
|
||||||
|
|
||||||
type CompatibleArchetype = { archetype: Archetype, indices: { number } }
|
type CompatibleArchetype = { archetype: Archetype, indices: { number } }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
local world_query: (World, ...i53) -> Query
|
local world_query: (World, ...i53) -> Query
|
||||||
do
|
do
|
||||||
|
|
||||||
|
local noop: Item = function()
|
||||||
|
return nil :: any
|
||||||
|
end
|
||||||
|
|
||||||
|
local EmptyQuery: Query = {
|
||||||
|
__iter = function(): Item
|
||||||
|
return function()
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
next = noop :: Item,
|
||||||
|
replace = noop :: (Query, ...any) -> (),
|
||||||
|
without = function(self: Query, ...)
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
setmetatable(EmptyQuery, EmptyQuery)
|
||||||
|
|
||||||
local indices: { { number } }
|
local indices: { { number } }
|
||||||
local compatibleArchetypes: { Archetype }
|
local compatibleArchetypes: { Archetype }
|
||||||
local length
|
local length
|
||||||
|
|
Loading…
Reference in a new issue