]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
kluautil: table pack and unpack
authorPetr Špaček <petr.spacek@nic.cz>
Tue, 13 Oct 2020 15:53:37 +0000 (17:53 +0200)
committerTomas Krizek <tomas.krizek@nic.cz>
Mon, 26 Oct 2020 13:25:13 +0000 (14:25 +0100)
Helper functions for handling variable length arrays with nil values.

daemon/lua/kluautil.lua

index 0b6a114fb910e732f6ae212d2963a1c72fa79fe0..b96a4bad71804b3f496df3906e108772cee5360c 100644 (file)
@@ -17,6 +17,18 @@ function kluautil.kr_table_len(t)
        return len
 end
 
+-- pack varargs including nil arguments into a table
+function kluautil.kr_table_pack(...)
+       local tab = {...}
+       tab.n = select('#', ...)
+       return tab
+end
+
+-- unpack table produced by kr_table_pack and including nil values
+function kluautil.kr_table_unpack(tab)
+       return unpack(tab, 1, tab.n)
+end
+
 -- Fetch over HTTPS
 ffi.cdef([[
        typedef struct __dirstream DIR;