summaryrefslogtreecommitdiffstats
path: root/lib/ccan/asearch/_info
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ccan/asearch/_info')
-rw-r--r--lib/ccan/asearch/_info58
1 files changed, 58 insertions, 0 deletions
diff --git a/lib/ccan/asearch/_info b/lib/ccan/asearch/_info
new file mode 100644
index 00000000000..857475016fb
--- /dev/null
+++ b/lib/ccan/asearch/_info
@@ -0,0 +1,58 @@
+#include <stdio.h>
+#include <string.h>
+#include "config.h"
+
+/**
+ * asearch - typesafe binary search (bsearch)
+ *
+ * An ordered array of objects can be efficiently searched using a binary
+ * search algorithm; the time taken is around log(number of elements).
+ *
+ * This version uses macros to be typesafe on platforms which support it.
+ *
+ * License: LGPL
+ * Author: Rusty Russell <rusty@rustcorp.com.au>
+ *
+ * Example:
+ * #include <ccan/asearch/asearch.h>
+ * #include <stdio.h>
+ * #include <string.h>
+ *
+ * static int cmp(const char *key, char *const *elem)
+ * {
+ * return strcmp(key, *elem);
+ * }
+ *
+ * int main(int argc, char *argv[])
+ * {
+ * char **p;
+ *
+ * if (argc < 2) {
+ * fprintf(stderr, "Usage: %s <key> <list>...\n"
+ * "Print position of key in (sorted) list\n",
+ * argv[0]);
+ * exit(1);
+ * }
+ *
+ * p = asearch(argv[1], &argv[2], argc-2, cmp);
+ * if (!p) {
+ * printf("Not found!\n");
+ * return 1;
+ * }
+ * printf("%u\n", p - &argv[2]);
+ * return 0;
+ * }
+ */
+int main(int argc, char *argv[])
+{
+ if (argc != 2)
+ return 1;
+
+ if (strcmp(argv[1], "depends") == 0) {
+ printf("ccan/typesafe_cb\n");
+ printf("ccan/array_size\n");
+ return 0;
+ }
+
+ return 1;
+}