diff options
Diffstat (limited to 'util/bit53.lua')
-rw-r--r-- | util/bit53.lua | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/util/bit53.lua b/util/bit53.lua new file mode 100644 index 00000000..b5c473a3 --- /dev/null +++ b/util/bit53.lua @@ -0,0 +1,33 @@ +-- Only the operators needed by net.websocket.frames are provided at this point +return { + band = function (a, b, ...) + local ret = a & b; + if ... then + for i = 1, select("#", ...) do + ret = ret & (select(i, ...)); + end + end + return ret; + end; + bor = function (a, b, ...) + local ret = a | b; + if ... then + for i = 1, select("#", ...) do + ret = ret | (select(i, ...)); + end + end + return ret; + end; + bxor = function (a, b, ...) + local ret = a ~ b; + if ... then + for i = 1, select("#", ...) do + ret = ret ~ (select(i, ...)); + end + end + return ret; + end; + rshift = function (a, n) return a >> n end; + lshift = function (a, n) return a << n end; +}; + |