@@ -9,24 +9,23 @@ local pairs = pairs
9
9
--- @return boolean
10
10
--- Checks if tbl contains the given values. Only intended for simple values and unnested tables.
11
11
local function contains (tbl , value )
12
- if not next (tbl ) then return false end
13
-
14
12
if type (value ) ~= ' table' then
15
13
for _ , v in pairs (tbl ) do
16
- if v == value then
17
- return true
14
+ if v == value then
15
+ return true
18
16
end
19
17
end
20
-
18
+
21
19
return false
22
20
else
23
21
local set = {}
22
+
24
23
for _ , v in pairs (tbl ) do
25
24
set [v ] = true
26
25
end
27
26
28
27
for _ , v in pairs (value ) do
29
- if not set [v ] then
28
+ if not set [v ] then
30
29
return false
31
30
end
32
31
end
40
39
--- @return boolean
41
40
--- Compares if two values are equal, iterating over tables and matching both keys and values.
42
41
local function table_matches (t1 , t2 )
43
- local tabletype1 = table .type (t1 )
42
+ local tabletype1 = table .type (t1 )
44
43
45
44
if not tabletype1 then return t1 == t2 end
46
- if tabletype1 ~= table .type (t2 ) or (tabletype1 == ' array' and # t1 ~= # t2 ) then
47
- return false
45
+
46
+ if tabletype1 ~= table .type (t2 ) or (tabletype1 == ' array' and # t1 ~= # t2 ) then
47
+ return false
48
48
end
49
49
50
50
for k , v1 in pairs (t1 ) do
68
68
--- @return T
69
69
--- Recursively clones a table to ensure no table references.
70
70
local function table_deepclone (tbl )
71
- tbl = table .clone (tbl )
71
+ tbl = table .clone (tbl )
72
72
73
- for k , v in pairs (tbl ) do
74
- if type (v ) == ' table' then
75
- tbl [k ] = table_deepclone (v )
76
- end
77
- end
73
+ for k , v in pairs (tbl ) do
74
+ if type (v ) == ' table' then
75
+ tbl [k ] = table_deepclone (v )
76
+ end
77
+ end
78
78
79
- return tbl
79
+ return tbl
80
80
end
81
81
82
82
--- @param t1 table
@@ -91,12 +91,12 @@ local function table_merge(t1, t2, addDuplicateNumbers)
91
91
local type1 = type (v1 )
92
92
local type2 = type (v2 )
93
93
94
- if type1 == ' table' and type2 == ' table' then
94
+ if type1 == ' table' and type2 == ' table' then
95
95
table_merge (v1 , v2 , addDuplicateNumbers )
96
96
elseif addDuplicateNumbers and (type1 == ' number' and type2 == ' number' ) then
97
97
t1 [k ] = v1 + v2
98
- else
99
- t1 [k ] = v2
98
+ else
99
+ t1 [k ] = v2
100
100
end
101
101
end
102
102
0 commit comments