Thu, 23 Mar 2023 18:56:32 +0000
component: Avoid adding to the global stream metatable
This allows component and client connections to be made side-by-side.
Previous to this change, loading this connection module would break the
ability to make client connections, due to overriding stream methods such as
:reopen() and :reset().
A next step would be to share the methods that the two connection modules have
in common.
483 | 1 | return { |
2 | pack = function(...) return {n = select("#", ...); ...} end; | |
3 | create = function() return {} end; | |
4 | move = function (a1, f, e, t, a2) | |
5 | a2 = a2 or a1; | |
6 | if e >= f then | |
7 | local n = (e - f) + 1; | |
8 | if t > e or t <= f or a1 ~= a2 then | |
9 | for i = 0, n-1 do | |
10 | a2[t+i] = a1[f+i]; | |
11 | end | |
12 | else | |
13 | for i = n-1, 0, -1 do | |
14 | a2[t+i] = a1[f+i]; | |
15 | end | |
16 | end | |
17 | end | |
18 | return a2; | |
19 | end; | |
20 | } |