|
GRU - Generic Reusable Utilities
|
#include <stdint.h>#include <stdbool.h>#include <string.h>#include <stdlib.h>#include <limits.h>#include <common/gru_alloc.h>Go to the source code of this file.
Data Structures | |
| struct | gru_variant_t_ |
| An abstract struct that can hold different types. More... | |
Macros | |
| #define | GRU_VARIANT_STRING_INITIALIZER(x) { .type = GRU_STRING, .variant.string = (x) } |
| Initializer for the string variant type. More... | |
| #define | GRU_VARIANT_STRING_DEFAULT_INITIALIZER GRU_VARIANT_STRING_INITIALIZER(NULL) |
| Default string initializer. More... | |
| #define | GRU_VARIANT_INTEGER_INITIALIZER(x) { .type = GRU_INTEGER, .variant.inumber = (x) } |
| Initializer for the integer variant type. More... | |
| #define | GRU_VARIANT_INTEGER_DEFAULT_INITIALIZER GRU_VARIANT_INTEGER_INITIALIZER(0) |
| Default integer initializer. More... | |
| #define | GRU_VARIANT_DOUBLE_INITIALIZER(x) { .type = GRU_DOUBLE, .variant.fnumber = (x) } |
| Initializer for the double variant type. More... | |
| #define | GRU_VARIANT_DOUBLE_DEFAULT_INITIALIZER GRU_VARIANT_DOUBLE_INITIALIZER(0.0) |
| Default double initializer. More... | |
| #define | GRU_VARIANT_BOOLEAN_INITIALIZER(x) { .type = GRU_BOOLEAN, .variant.flag = (x) } |
| Initializer for the boolean variant type. More... | |
| #define | GRU_VARIANT_BOOLEAN_DEFAULT_INITIALIZER GRU_VARIANT_BOOLEAN_INITIALIZER(false) |
| Default boolean initializer. More... | |
Typedefs | |
| typedef enum gru_variant_type_t_ | gru_variant_type_t |
| typedef struct gru_variant_t_ | gru_variant_t |
| An abstract struct that can hold different types. More... | |
Enumerations | |
| enum | gru_variant_type_t_ { GRU_STRING , GRU_INTEGER , GRU_DOUBLE , GRU_BOOLEAN } |
Functions | |
| gru_export bool | gru_variant_set_string (gru_variant_t *variant, const char *str) |
| Set the variant value to a string. More... | |
| gru_export void | gru_variant_set_integer (gru_variant_t *variant, uint64_t number) |
| Set the variant value to an integer. More... | |
| gru_export void | gru_variant_clean (gru_variant_t *variant) |
| Release the memory used by a variant (if any used at all). More... | |
| gru_export gru_variant_t | gru_variant_parse (const char *str) |
| Parses a string and sets it to the most appropriate type. More... | |
| gru_export bool | gru_variant_equals_str (gru_variant_t *variant, const char *str) |
| Simple equality check to test if the variant value matches a given string. More... | |
| #define GRU_VARIANT_BOOLEAN_DEFAULT_INITIALIZER GRU_VARIANT_BOOLEAN_INITIALIZER(false) |
Default boolean initializer.
| #define GRU_VARIANT_BOOLEAN_INITIALIZER | ( | x | ) | { .type = GRU_BOOLEAN, .variant.flag = (x) } |
Initializer for the boolean variant type.
| #define GRU_VARIANT_DOUBLE_DEFAULT_INITIALIZER GRU_VARIANT_DOUBLE_INITIALIZER(0.0) |
Default double initializer.
| #define GRU_VARIANT_DOUBLE_INITIALIZER | ( | x | ) | { .type = GRU_DOUBLE, .variant.fnumber = (x) } |
Initializer for the double variant type.
| #define GRU_VARIANT_INTEGER_DEFAULT_INITIALIZER GRU_VARIANT_INTEGER_INITIALIZER(0) |
Default integer initializer.
| #define GRU_VARIANT_INTEGER_INITIALIZER | ( | x | ) | { .type = GRU_INTEGER, .variant.inumber = (x) } |
Initializer for the integer variant type.
| #define GRU_VARIANT_STRING_DEFAULT_INITIALIZER GRU_VARIANT_STRING_INITIALIZER(NULL) |
Default string initializer.
| #define GRU_VARIANT_STRING_INITIALIZER | ( | x | ) | { .type = GRU_STRING, .variant.string = (x) } |
Initializer for the string variant type.
| typedef struct gru_variant_t_ gru_variant_t |
An abstract struct that can hold different types.
| typedef enum gru_variant_type_t_ gru_variant_type_t |
| enum gru_variant_type_t_ |
| gru_export void gru_variant_clean | ( | gru_variant_t * | variant | ) |
Release the memory used by a variant (if any used at all).
It's safe to pass any variant even if no memory is used at all
| variant | the variant to release |
| gru_export bool gru_variant_equals_str | ( | gru_variant_t * | variant, |
| const char * | str | ||
| ) |
Simple equality check to test if the variant value matches a given string.
| variant | the variant to compare with |
| str | the string to check |
| gru_export gru_variant_t gru_variant_parse | ( | const char * | str | ) |
Parses a string and sets it to the most appropriate type.
| str | the string to parse |
| gru_export void gru_variant_set_integer | ( | gru_variant_t * | variant, |
| uint64_t | number | ||
| ) |
Set the variant value to an integer.
| variant | the variant to hold the data |
| number | the number to set |
| gru_export bool gru_variant_set_string | ( | gru_variant_t * | variant, |
| const char * | str | ||
| ) |
Set the variant value to a string.
| variant | the variant hold the data |
| str | the string to set |