aboutsummaryrefslogtreecommitdiff
path: root/src/format.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/format.h')
-rw-r--r--src/format.h28
1 files changed, 5 insertions, 23 deletions
diff --git a/src/format.h b/src/format.h
index bceff0c..69d9fa8 100644
--- a/src/format.h
+++ b/src/format.h
@@ -6,36 +6,18 @@
typedef struct {
char **parts;
+ uint8_t *marks;
size_t length;
} format_t;
-typedef enum {
- FORMAT_SUCCESS,
- FORMAT_NESTED,
- FORMAT_UNKNOWN,
- FORMAT_UNTERMINATED,
-} format_status_t;
-
-typedef enum {
- FORMAT_NONE,
- FORMAT_STRING,
- FORMAT_BYTE,
- FORMAT_FUNCTION,
-} format_action_t;
-
-typedef char *(*format_function_t)(const char *key);
-
typedef struct {
- format_action_t action;
const char *key;
- union {
- const char *value;
- uint8_t byte;
- format_function_t fn;
- };
+ uint8_t mark;
} format_pair_t;
-format_status_t format_init(format_t *format, const char *string, char delim, const format_pair_t *pairs);
+bool format_init(format_t *format, const char *string, char delim);
+
+bool format_remark(format_t *format, const char *label, const format_pair_t *pairs);
void format_free(format_t *format);