Skip to content

Commit 2e64745

Browse files
committed
separate get/get_all
1 parent 1294aa9 commit 2e64745

3 files changed

Lines changed: 192 additions & 46 deletions

File tree

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ has :: chunk | entity, fragment -> boolean
7878
has_all :: chunk | entity, fragment... -> boolean
7979
has_any :: chunk | entity, fragment... -> boolean
8080
81-
get :: entity, fragment... -> component...
81+
get :: entity, fragment -> component
82+
get_all :: entity, fragment... -> component...
8283
8384
set :: entity, fragment, component -> ()
8485
remove :: entity, fragment... -> ()
@@ -123,6 +124,7 @@ builder:has :: fragment -> boolean
123124
builder:has_all :: fragment... -> boolean
124125
builder:has_any :: fragment... -> boolean
125126
builder:get :: fragment -> component
127+
builder:get_all :: fragment... -> component...
126128
builder:set :: fragment, component -> builder
127129
builder:remove :: fragment -> builder
128130
builder:clear :: builder

develop/untests.lua

Lines changed: 92 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ do
117117
assert(evo.get(e, f1) == nil)
118118
assert(evo.get(e, f2) == nil)
119119

120-
local c1, c2 = evo.get(e, f1, f2)
120+
local c1, c2 = evo.get_all(e, f1, f2)
121121
assert(c1 == nil and c2 == nil)
122122
end
123123

@@ -134,7 +134,7 @@ do
134134
assert(evo.get(e, f1) == 41)
135135
assert(evo.get(e, f2) == nil)
136136

137-
local c1, c2 = evo.get(e, f1, f2)
137+
local c1, c2 = evo.get_all(e, f1, f2)
138138
assert(c1 == 41 and c2 == nil)
139139
end
140140

@@ -151,7 +151,7 @@ do
151151
assert(evo.get(e, f1) == 41)
152152
assert(evo.get(e, f2) == 42)
153153

154-
local c1, c2 = evo.get(e, f1, f2)
154+
local c1, c2 = evo.get_all(e, f1, f2)
155155
assert(c1 == 41 and c2 == 42)
156156
end
157157
end
@@ -166,7 +166,7 @@ do
166166

167167
do
168168
assert(evo.has_all(e, f1, f2))
169-
local c1, c2 = evo.get(e, f1, f2)
169+
local c1, c2 = evo.get_all(e, f1, f2)
170170
assert(c1 == 41 and c2 == 42)
171171
end
172172
end
@@ -184,7 +184,7 @@ do
184184
assert(not evo.has(e, f1))
185185
assert(evo.has(e, f2))
186186

187-
local c1, c2 = evo.get(e, f1, f2)
187+
local c1, c2 = evo.get_all(e, f1, f2)
188188
assert(c1 == nil and c2 == 42)
189189
end
190190

@@ -198,7 +198,7 @@ do
198198
assert(evo.has(e, f1))
199199
assert(not evo.has(e, f2))
200200

201-
local c1, c2 = evo.get(e, f1, f2)
201+
local c1, c2 = evo.get_all(e, f1, f2)
202202
assert(c1 == 41 and c2 == nil)
203203
end
204204

@@ -211,7 +211,7 @@ do
211211

212212
assert(not evo.has_any(e, f1, f2))
213213

214-
local c1, c2 = evo.get(e, f1, f2)
214+
local c1, c2 = evo.get_all(e, f1, f2)
215215
assert(c1 == nil and c2 == nil)
216216
end
217217
end
@@ -3066,55 +3066,55 @@ do
30663066
do
30673067
local q = qb:build()
30683068

3069-
local includes, excludes = evo.get(q, evo.INCLUDES, evo.EXCLUDES)
3069+
local includes, excludes = evo.get_all(q, evo.INCLUDES, evo.EXCLUDES)
30703070
assert(includes == nil)
30713071
assert(excludes == nil)
30723072
end
30733073

30743074
do
30753075
local q = qb:include(f1):build()
30763076

3077-
local includes, excludes = evo.get(q, evo.INCLUDES, evo.EXCLUDES)
3077+
local includes, excludes = evo.get_all(q, evo.INCLUDES, evo.EXCLUDES)
30783078
assert(#includes == 1 and includes[1] == f1)
30793079
assert(excludes == nil)
30803080
end
30813081

30823082
do
30833083
local q = qb:include(f1, f2):build()
30843084

3085-
local includes, excludes = evo.get(q, evo.INCLUDES, evo.EXCLUDES)
3085+
local includes, excludes = evo.get_all(q, evo.INCLUDES, evo.EXCLUDES)
30863086
assert(#includes == 2 and includes[1] == f1 and includes[2] == f2)
30873087
assert(excludes == nil)
30883088
end
30893089

30903090
do
30913091
local q = qb:include(f1):include(f2):build()
30923092

3093-
local includes, excludes = evo.get(q, evo.INCLUDES, evo.EXCLUDES)
3093+
local includes, excludes = evo.get_all(q, evo.INCLUDES, evo.EXCLUDES)
30943094
assert(#includes == 2 and includes[1] == f1 and includes[2] == f2)
30953095
assert(excludes == nil)
30963096
end
30973097

30983098
do
30993099
local q = qb:exclude(f1):build()
31003100

3101-
local includes, excludes = evo.get(q, evo.INCLUDES, evo.EXCLUDES)
3101+
local includes, excludes = evo.get_all(q, evo.INCLUDES, evo.EXCLUDES)
31023102
assert(includes == nil)
31033103
assert(#excludes == 1 and excludes[1] == f1)
31043104
end
31053105

31063106
do
31073107
local q = qb:exclude(f1, f2):build()
31083108

3109-
local includes, excludes = evo.get(q, evo.INCLUDES, evo.EXCLUDES)
3109+
local includes, excludes = evo.get_all(q, evo.INCLUDES, evo.EXCLUDES)
31103110
assert(includes == nil)
31113111
assert(#excludes == 2 and excludes[1] == f1 and excludes[2] == f2)
31123112
end
31133113

31143114
do
31153115
local q = qb:exclude(f1):exclude(f2):build()
31163116

3117-
local includes, excludes = evo.get(q, evo.INCLUDES, evo.EXCLUDES)
3117+
local includes, excludes = evo.get_all(q, evo.INCLUDES, evo.EXCLUDES)
31183118
assert(includes == nil)
31193119
assert(#excludes == 2 and excludes[1] == f1 and excludes[2] == f2)
31203120
end
@@ -3125,7 +3125,7 @@ do
31253125

31263126
local q = qb:build()
31273127

3128-
local includes, excludes = evo.get(q, evo.INCLUDES, evo.EXCLUDES)
3128+
local includes, excludes = evo.get_all(q, evo.INCLUDES, evo.EXCLUDES)
31293129
assert(#includes == 1 and includes[1] == f1)
31303130
assert(#excludes == 1 and excludes[1] == f2)
31313131
end
@@ -4730,31 +4730,31 @@ do
47304730
assert(c1 == 11)
47314731
end
47324732
do
4733-
local c1, c2 = evo.get(e, f1, f2)
4733+
local c1, c2 = evo.get_all(e, f1, f2)
47344734
assert(c1 == 11 and c2 == 22)
47354735
end
47364736
do
4737-
local c2, c1 = evo.get(e, f2, f1)
4737+
local c2, c1 = evo.get_all(e, f2, f1)
47384738
assert(c1 == 11 and c2 == 22)
47394739
end
47404740
do
4741-
local c1, c2, c3 = evo.get(e, f1, f2, f3)
4741+
local c1, c2, c3 = evo.get_all(e, f1, f2, f3)
47424742
assert(c1 == 11 and c2 == 22 and c3 == 33)
47434743
end
47444744
do
4745-
local c3, c2, c1 = evo.get(e, f3, f2, f1)
4745+
local c3, c2, c1 = evo.get_all(e, f3, f2, f1)
47464746
assert(c1 == 11 and c2 == 22 and c3 == 33)
47474747
end
47484748
do
4749-
local c1, c2, c3, c4 = evo.get(e, f1, f2, f3, f4)
4749+
local c1, c2, c3, c4 = evo.get_all(e, f1, f2, f3, f4)
47504750
assert(c1 == 11 and c2 == 22 and c3 == 33 and c4 == 44)
47514751
end
47524752
do
4753-
local c1, c2, c3, c4, c5 = evo.get(e, f1, f2, f3, f4, f5)
4753+
local c1, c2, c3, c4, c5 = evo.get_all(e, f1, f2, f3, f4, f5)
47544754
assert(c1 == 11 and c2 == 22 and c3 == 33 and c4 == 44 and c5 == 55)
47554755
end
47564756
do
4757-
local c5, c4, c3, c2, c1 = evo.get(e, f5, f4, f3, f2, f1)
4757+
local c5, c4, c3, c2, c1 = evo.get_all(e, f5, f4, f3, f2, f1)
47584758
assert(c1 == 11 and c2 == 22 and c3 == 33 and c4 == 44 and c5 == 55)
47594759
end
47604760
end
@@ -8699,3 +8699,73 @@ do
86998699
end
87008700
end
87018701
end
8702+
8703+
do
8704+
local f1, f2, f3, f4, f5 = evo.id(5)
8705+
8706+
do
8707+
local b = evo.builder()
8708+
8709+
do
8710+
assert(b:get_all() == nil)
8711+
end
8712+
8713+
do
8714+
local c1 = b:get_all(f1)
8715+
assert(c1 == nil)
8716+
end
8717+
8718+
do
8719+
local c1, c2 = b:get_all(f1, f2)
8720+
assert(c1 == nil and c2 == nil)
8721+
end
8722+
8723+
do
8724+
local c1, c2, c3 = b:get_all(f1, f2, f3)
8725+
assert(c1 == nil and c2 == nil and c3 == nil)
8726+
end
8727+
8728+
do
8729+
local c1, c2, c3, c4 = b:get_all(f1, f2, f3, f4)
8730+
assert(c1 == nil and c2 == nil and c3 == nil and c4 == nil)
8731+
end
8732+
8733+
do
8734+
local c1, c2, c3, c4, c5 = b:get_all(f1, f2, f3, f4, f5)
8735+
assert(c1 == nil and c2 == nil and c3 == nil and c4 == nil and c5 == nil)
8736+
end
8737+
end
8738+
8739+
do
8740+
local b = evo.builder():set(f1, 11):set(f2, 22):set(f3, 33):set(f4, 44):set(f5, 55)
8741+
8742+
do
8743+
assert(b:get_all() == nil)
8744+
end
8745+
8746+
do
8747+
local c1 = b:get_all(f1)
8748+
assert(c1 == 11)
8749+
end
8750+
8751+
do
8752+
local c1, c2 = b:get_all(f1, f2)
8753+
assert(c1 == 11 and c2 == 22)
8754+
end
8755+
8756+
do
8757+
local c1, c2, c3 = b:get_all(f1, f2, f3)
8758+
assert(c1 == 11 and c2 == 22 and c3 == 33)
8759+
end
8760+
8761+
do
8762+
local c1, c2, c3, c4 = b:get_all(f1, f2, f3, f4)
8763+
assert(c1 == 11 and c2 == 22 and c3 == 33 and c4 == 44)
8764+
end
8765+
8766+
do
8767+
local c1, c2, c3, c4, c5 = b:get_all(f1, f2, f3, f4, f5)
8768+
assert(c1 == 11 and c2 == 22 and c3 == 33 and c4 == 44 and c5 == 55)
8769+
end
8770+
end
8771+
end

0 commit comments

Comments
 (0)