Software / code / prosody
Comparison
util/array.lua @ 7976:2a7ef5fcaa77
util.array: Add O(n) equality check metamethod
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Thu, 16 Mar 2017 19:09:57 +0100 |
| parent | 7700:0d70410efdcf |
| child | 8017:ec7cab8e744d |
comparison
equal
deleted
inserted
replaced
| 7975:c64ddee9d671 | 7976:2a7ef5fcaa77 |
|---|---|
| 29 end | 29 end |
| 30 | 30 |
| 31 function array_mt.__add(a1, a2) | 31 function array_mt.__add(a1, a2) |
| 32 local res = new_array(); | 32 local res = new_array(); |
| 33 return res:append(a1):append(a2); | 33 return res:append(a1):append(a2); |
| 34 end | |
| 35 | |
| 36 function array_mt.__eq(a, b) | |
| 37 if #a == #b then | |
| 38 for i = 1, #a do | |
| 39 if a[i] ~= b[i] then | |
| 40 return false; | |
| 41 end | |
| 42 end | |
| 43 else | |
| 44 return false; | |
| 45 end | |
| 46 return true; | |
| 34 end | 47 end |
| 35 | 48 |
| 36 setmetatable(array, { __call = new_array }); | 49 setmetatable(array, { __call = new_array }); |
| 37 | 50 |
| 38 -- Read-only methods | 51 -- Read-only methods |