* t: table
* f: function (c or lua)
* v: void
+ * a: ExtlAny
*/
typedef int ExtlTab;
ExtlTab t;
} ExtlL2Param;
+typedef struct{
+ char type;
+ ExtlL2Param value;
+} ExtlAny;
+
typedef bool ExtlL2CallHandler(void (*fn)(), ExtlL2Param *in,
ExtlL2Param *out);
va_list *args);
extern bool extl_table_get(ExtlTab ref, char itype, char type, ...);
+extern bool extl_table_gets_a(ExtlTab ref, const char *entry, ExtlAny *ret);
extern bool extl_table_gets_o(ExtlTab ref, const char *entry, Obj **ret);
extern bool extl_table_gets_i(ExtlTab ref, const char *entry, int *ret);
extern bool extl_table_gets_d(ExtlTab ref, const char *entry, double *ret);
extern bool extl_table_gets_t(ExtlTab ref, const char *entry, ExtlTab *ret);
extern int extl_table_get_n(ExtlTab ref);
+extern bool extl_table_geti_a(ExtlTab ref, int entry, ExtlAny *ret);
extern bool extl_table_geti_o(ExtlTab ref, int entry, Obj **ret);
extern bool extl_table_geti_i(ExtlTab ref, int entry, int *ret);
extern bool extl_table_geti_d(ExtlTab ref, int entry, double *ret);
va_list *args);
extern bool extl_table_set(ExtlTab ref, char itype, char type, ...);
+extern bool extl_table_sets_a(ExtlTab ref, const char *entry, const ExtlAny *ret);
extern bool extl_table_sets_o(ExtlTab ref, const char *entry, Obj *val);
extern bool extl_table_sets_i(ExtlTab ref, const char *entry, int val);
extern bool extl_table_sets_d(ExtlTab ref, const char *entry, double val);
extern bool extl_table_sets_f(ExtlTab ref, const char *entry, ExtlFn val);
extern bool extl_table_sets_t(ExtlTab ref, const char *entry, ExtlTab val);
+extern bool extl_table_seti_a(ExtlTab ref, int entry, const ExtlAny *ret);
extern bool extl_table_seti_o(ExtlTab ref, int entry, Obj *val);
extern bool extl_table_seti_i(ExtlTab ref, int entry, int val);
extern bool extl_table_seti_d(ExtlTab ref, int entry, double val);
extern bool extl_table_clears(ExtlTab ref, const char *entry);
extern bool extl_table_cleari(ExtlTab ref, int entry);
+/* Table/iterate */
+
+typedef bool ExtlIterFn(ExtlAny k, ExtlAny v, void *d);
+
+extern void extl_table_iter(ExtlTab ref, ExtlIterFn *fn, void *d);
+
/* Call */
extern void extl_protect(ExtlSafelist *sl);