aboutsummaryrefslogtreecommitdiffstats
path: root/src/argparser.h
diff options
context:
space:
mode:
authorMattias Andrée <maandree@operamail.com>2013-06-26 01:12:25 +0200
committerMattias Andrée <maandree@operamail.com>2013-06-26 01:12:25 +0200
commit0825f4a6ddb4226ce45576ef1893771f7d2d37a8 (patch)
treeb624cfd67b4bf21a2f564095cadb0e379d7dadcc /src/argparser.h
parentmove includes into new .h file (diff)
downloadargparser-0825f4a6ddb4226ce45576ef1893771f7d2d37a8.tar.gz
argparser-0825f4a6ddb4226ce45576ef1893771f7d2d37a8.tar.bz2
argparser-0825f4a6ddb4226ce45576ef1893771f7d2d37a8.tar.xz
move structs into .h file
Signed-off-by: Mattias Andrée <maandree@operamail.com>
Diffstat (limited to 'src/argparser.h')
-rw-r--r--src/argparser.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/argparser.h b/src/argparser.h
index 288c585..19629ce 100644
--- a/src/argparser.h
+++ b/src/argparser.h
@@ -19,3 +19,84 @@
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
+
+
+/**
+ * Option structure
+ */
+typedef struct
+{
+ /**
+ * The type of the option, either of: `ARGUMENTLESS`, `ARGUMENTED`, `VARIADIC`
+ */
+ long type;
+
+ /**
+ * Alterative option names
+ */
+ char** alternatives;
+
+ /**
+ * Number of elements in `alternatives`
+ */
+ long alternatives_count;
+
+ /**
+ * Standard option name
+ */
+ char* standard;
+
+ /**
+ * Argument name, not for argumentless options
+ */
+ char* argument;
+
+ /**
+ * Help text, multi-line
+ */
+ char* help;
+
+} args_Option;
+
+
+/**
+ * char* to void* map structure
+ */
+typedef struct
+{
+ /**
+ * Available keys
+ */
+ char** keys;
+
+ /**
+ * The number of available keys
+ */
+ long key_count;
+
+ /**
+ * Indefinite depth array with 17 elements per level, the last being the value at the position
+ */
+ void** data;
+
+} args_Map;
+
+
+/**
+ * Array with associated length
+ */
+typedef struct
+{
+ /**
+ * The values
+ */
+ void** values;
+
+ /**
+ * The length of `values`
+ */
+ long count;
+
+} args_Array;
+
+