#include "php_qdbm.h"
#include "php_tcadb.h"
#include "php_lmdb.h"
-
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_dba_popen, 0, 0, 2)
- ZEND_ARG_INFO(0, path)
- ZEND_ARG_INFO(0, mode)
- ZEND_ARG_INFO(0, handlername)
- ZEND_ARG_VARIADIC_INFO(0, handler_parameters)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_dba_open, 0, 0, 2)
- ZEND_ARG_INFO(0, path)
- ZEND_ARG_INFO(0, mode)
- ZEND_ARG_INFO(0, handlername)
- ZEND_ARG_VARIADIC_INFO(0, handler_parameters)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_dba_close, 0)
- ZEND_ARG_INFO(0, handle)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_dba_exists, 0)
- ZEND_ARG_INFO(0, key)
- ZEND_ARG_INFO(0, handle)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_dba_fetch, 0, 0, 2)
- ZEND_ARG_INFO(0, key)
- ZEND_ARG_INFO(0, skip)
- ZEND_ARG_INFO(0, handle)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_dba_key_split, 0)
- ZEND_ARG_INFO(0, key)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_dba_firstkey, 0)
- ZEND_ARG_INFO(0, handle)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_dba_nextkey, 0)
- ZEND_ARG_INFO(0, handle)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_dba_delete, 0)
- ZEND_ARG_INFO(0, key)
- ZEND_ARG_INFO(0, handle)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_dba_insert, 0)
- ZEND_ARG_INFO(0, key)
- ZEND_ARG_INFO(0, value)
- ZEND_ARG_INFO(0, handle)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_dba_replace, 0)
- ZEND_ARG_INFO(0, key)
- ZEND_ARG_INFO(0, value)
- ZEND_ARG_INFO(0, handle)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_dba_optimize, 0)
- ZEND_ARG_INFO(0, handle)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_dba_sync, 0)
- ZEND_ARG_INFO(0, handle)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_dba_handlers, 0, 0, 0)
- ZEND_ARG_INFO(0, full_info)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_dba_list, 0)
-ZEND_END_ARG_INFO()
-
-/* }}} */
+#include "dba_arginfo.h"
/* {{{ dba_functions[]
*/
--- /dev/null
+<?php
+
+/** @return resource|false */
+function dba_popen($path, $mode, $handlername = UNKNOWN, ...$handler_parameters) {}
+
+/** @return resource|false */
+function dba_open($path, $mode, $handlername = UNKNOWN, ...$handler_parameters) {}
+
+/** @param resource $handle */
+function dba_close($handle): void {}
+
+/**
+ * @param string|array $key
+ * @param resource $handle
+ */
+function dba_exists($key, $handle): bool {}
+
+/**
+ * @param string|array $key
+ * @param int|resource $skip actually this parameter is optional, not $handle
+ * @param resource $handle
+ * @return string|false
+ */
+function dba_fetch($key, $skip, $handle = UNKOWN) {}
+
+/** @return array|false */
+function dba_key_split(string $key) {}
+
+/**
+ * @param resource $handle
+ * @return string|false
+ */
+function dba_firstkey($handle) {}
+
+/**
+ * @param resource $handle
+ * @return string|false
+ */
+function dba_nextkey($handle) {}
+
+/**
+ * @param string|array $key
+ * @param resource $handle
+ */
+function dba_delete($key, $handle): bool {}
+
+/**
+ * @param string|array $key
+ * @param resource $handle
+ */
+function dba_insert($key, string $value, $handle): bool {}
+
+/**
+ * @param string|array $key
+ * @param resource $handle
+ */
+function dba_replace($key, string $value, $handle): bool {}
+
+/** @param resource $handle */
+function dba_optimize($handle): bool {}
+
+/** @param resource $handle */
+function dba_sync($handle): bool {}
+
+function dba_handlers(bool $full_info = false): array {}
+
+function dba_list(): array {}
--- /dev/null
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dba_popen, 0, 0, 2)
+ ZEND_ARG_INFO(0, path)
+ ZEND_ARG_INFO(0, mode)
+ ZEND_ARG_INFO(0, handlername)
+ ZEND_ARG_VARIADIC_INFO(0, handler_parameters)
+ZEND_END_ARG_INFO()
+
+#define arginfo_dba_open arginfo_dba_popen
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_dba_close, 0, 1, IS_VOID, 0)
+ ZEND_ARG_INFO(0, handle)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_dba_exists, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, key)
+ ZEND_ARG_INFO(0, handle)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dba_fetch, 0, 0, 2)
+ ZEND_ARG_INFO(0, key)
+ ZEND_ARG_INFO(0, skip)
+ ZEND_ARG_INFO(0, handle)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dba_key_split, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dba_firstkey, 0, 0, 1)
+ ZEND_ARG_INFO(0, handle)
+ZEND_END_ARG_INFO()
+
+#define arginfo_dba_nextkey arginfo_dba_firstkey
+
+#define arginfo_dba_delete arginfo_dba_exists
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_dba_insert, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, key)
+ ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
+ ZEND_ARG_INFO(0, handle)
+ZEND_END_ARG_INFO()
+
+#define arginfo_dba_replace arginfo_dba_insert
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_dba_optimize, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, handle)
+ZEND_END_ARG_INFO()
+
+#define arginfo_dba_sync arginfo_dba_optimize
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_dba_handlers, 0, 0, IS_ARRAY, 0)
+ ZEND_ARG_TYPE_INFO(0, full_info, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_dba_list, 0, 0, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()