29 lines
849 B
C
29 lines
849 B
C
#ifndef KEY_VALUE_PAIR_H
|
|
#define KEY_VALUE_PAIR_H
|
|
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
|
|
// Structures
|
|
typedef struct key_value_pair{
|
|
char *key;
|
|
char *value;
|
|
struct key_value_pair *next;
|
|
char *(*toString)(struct key_value_pair *);
|
|
} key_value_pair;
|
|
|
|
// Functions
|
|
|
|
char *key_value_pair_list_to_string(key_value_pair **head);
|
|
|
|
key_value_pair *init_key_value_pair(const char *key, const char *value);
|
|
void free_key_value_pair(key_value_pair **kv);
|
|
void free_key_value_pairs(key_value_pair **head, key_value_pair **tail);
|
|
|
|
int add_key_value_pair(key_value_pair *kv, key_value_pair **head, key_value_pair **tail);
|
|
void remove_key_value_pair(key_value_pair *kv, key_value_pair **head, key_value_pair **tail);
|
|
|
|
void extract_key_value_pairs(char *red_str, key_value_pair **head, key_value_pair **tail, bool doReduce);
|
|
|
|
#endif //KEY_VALUE_PAIR_H
|