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 |