Nilorea Library
C utilities for networking, threading, graphics
Loading...
Searching...
No Matches
ENUMERATIONS: quick and clean enum macro set

Macros

#define __N_ENUM_DECLARE_ENUM(MACRO_DEFINITION, enum_name)
 macro for ENUM declaration
 
#define __N_ENUM_DECLARE_FUNCTION(__N_ENUM_FUNCTION, enum_name)   __N_ENUM_FUNCTION(enum_name);
 create a getter function
 
#define __N_ENUM_DEFINE_FUNCTION_FROMSTRING(MACRO_DEFINITION, enum_name)
 create getter functions fromString
 
#define __N_ENUM_DEFINE_FUNCTION_FROMSTRING_EX(MACRO_DEFINITION, enum_name)
 create getter functions fromStringEx
 
#define __N_ENUM_DEFINE_FUNCTION_ISSTRINGVALID(MACRO_DEFINITION, enum_name)
 create getter for function isStringValue
 
#define __N_ENUM_DEFINE_FUNCTION_ISVALID(MACRO_DEFINITION, enum_name)
 create getter functions is_valid
 
#define __N_ENUM_DEFINE_FUNCTION_TOSTRING(MACRO_DEFINITION, enum_name)
 create getter functions toString
 
#define __N_ENUM_FUNCTION_FROMSTRING(enum_name)    enum_name N_ENUM_ENTRY(enum_name, fromString)(const char* str_value)
 create a value from string function
 
#define __N_ENUM_FUNCTION_FROMSTRING_EX(enum_name)    enum_name N_ENUM_ENTRY(enum_name, fromStringEx)(const char* str_value, int index)
 create a value from string function
 
#define __N_ENUM_FUNCTION_ISSTRINGVALID(enum_name)    bool N_ENUM_ENTRY(enum_name, isStringValid)(const char* str_value)
 create a is string valid function
 
#define __N_ENUM_FUNCTION_ISVALID(enum_name)    bool N_ENUM_ENTRY(enum_name, isValid)(enum_name value)
 create a test function
 
#define __N_ENUM_FUNCTION_TOSTRING(enum_name)    const char* N_ENUM_ENTRY(enum_name, toString)(enum_name value)
 create a to string function
 
#define __N_ENUM_MACRO_ENTRY_CASE(element_name)   case element_name:
 utils macro case value
 
#define __N_ENUM_MACRO_ENTRY_COMPARE(element_name)   if (!strcmp(#element_name, str_value))
 utils macros string compare
 
#define __N_ENUM_MACRO_ENTRY_COMPARE_EX(element_name)   if (!strcmp(#element_name + index, str_value))
 utils macros string ex compare
 
#define __N_ENUM_MACRO_ENTRY_TO_ENUM_ELEMENT(element_name, element_value)    element_name = element_value,
 macro to convert N_ENUMS entry to a real ENUM element
 
#define __N_ENUM_MACRO_ENTRY_TO_FROMSTRING_COMPARE(element_name, element_value)
 macro to convert string to N_ENUMS value
 
#define __N_ENUM_MACRO_ENTRY_TO_FROMSTRING_COMPARE_EX(element_name, element_value)
 macro to convert string to N_ENUMS value
 
#define __N_ENUM_MACRO_ENTRY_TO_ISSTRINGVALID_COMPARE(element_name, element_value)
 macro to test if the string is a valid enum entry
 
#define __N_ENUM_MACRO_ENTRY_TO_ISVALID_CASE(element_name, element_value)
 macro to test N_ENUMS entry
 
#define __N_ENUM_MACRO_ENTRY_TO_TOSTRING_CASE(element_name, element_value)
 macro to convert N_ENUMS entry to a string element
 
#define __N_ENUM_MACRO_ENTRY_UNKNOWN_VALUE(enum_name)   __##enum_name##_UNKNOWN_VALUE__
 utils macros unknown value
 
#define N_ENUM_DECLARE(MACRO_DEFINITION, enum_name)
 Macro to declare a N_ENUM.
 
#define N_ENUM_DEFINE(MACRO_DEFINITION, enum_name)
 Macro to define an N_ENUM.
 
#define N_ENUM_ENTRY(class, method)   class##__##method
 helper to build an N_ENUM
 

Detailed Description

Macro Definition Documentation

◆ __N_ENUM_DECLARE_ENUM

#define __N_ENUM_DECLARE_ENUM (   MACRO_DEFINITION,
  enum_name 
)
Value:
typedef enum enum_name { \
__N_ENUM_MACRO_ENTRY_UNKNOWN_VALUE(enum_name) \
} enum_name;
#define __N_ENUM_MACRO_ENTRY_TO_ENUM_ELEMENT(element_name, element_value)
macro to convert N_ENUMS entry to a real ENUM element
Definition n_enum.h:39

macro for ENUM declaration

Definition at line 65 of file n_enum.h.

◆ __N_ENUM_DECLARE_FUNCTION

#define __N_ENUM_DECLARE_FUNCTION (   __N_ENUM_FUNCTION,
  enum_name 
)    __N_ENUM_FUNCTION(enum_name);

create a getter function

Definition at line 74 of file n_enum.h.

◆ __N_ENUM_DEFINE_FUNCTION_FROMSTRING

#define __N_ENUM_DEFINE_FUNCTION_FROMSTRING (   MACRO_DEFINITION,
  enum_name 
)
Value:
}
#define __N_ENUM_FUNCTION_FROMSTRING(enum_name)
create a value from string function
Definition n_enum.h:85
#define __N_ENUM_MACRO_ENTRY_TO_FROMSTRING_COMPARE(element_name, element_value)
macro to convert string to N_ENUMS value
Definition n_enum.h:50
#define __N_ENUM_MACRO_ENTRY_UNKNOWN_VALUE(enum_name)
utils macros unknown value
Definition n_enum.h:36

create getter functions fromString

Definition at line 118 of file n_enum.h.

◆ __N_ENUM_DEFINE_FUNCTION_FROMSTRING_EX

#define __N_ENUM_DEFINE_FUNCTION_FROMSTRING_EX (   MACRO_DEFINITION,
  enum_name 
)
Value:
}
#define __N_ENUM_MACRO_ENTRY_TO_FROMSTRING_COMPARE_EX(element_name, element_value)
macro to convert string to N_ENUMS value
Definition n_enum.h:54
#define __N_ENUM_FUNCTION_FROMSTRING_EX(enum_name)
create a value from string function
Definition n_enum.h:88

create getter functions fromStringEx

Definition at line 124 of file n_enum.h.

◆ __N_ENUM_DEFINE_FUNCTION_ISSTRINGVALID

#define __N_ENUM_DEFINE_FUNCTION_ISSTRINGVALID (   MACRO_DEFINITION,
  enum_name 
)
Value:
return false; \
}
#define __N_ENUM_FUNCTION_ISSTRINGVALID(enum_name)
create a is string valid function
Definition n_enum.h:82
#define __N_ENUM_MACRO_ENTRY_TO_ISSTRINGVALID_COMPARE(element_name, element_value)
macro to test if the string is a valid enum entry
Definition n_enum.h:58

create getter for function isStringValue

Definition at line 112 of file n_enum.h.

◆ __N_ENUM_DEFINE_FUNCTION_ISVALID

#define __N_ENUM_DEFINE_FUNCTION_ISVALID (   MACRO_DEFINITION,
  enum_name 
)
Value:
switch (value) { \
default: \
return false; \
} \
}
#define __N_ENUM_FUNCTION_ISVALID(enum_name)
create a test function
Definition n_enum.h:76
#define __N_ENUM_MACRO_ENTRY_TO_ISVALID_CASE(element_name, element_value)
macro to test N_ENUMS entry
Definition n_enum.h:42

create getter functions is_valid

Definition at line 94 of file n_enum.h.

◆ __N_ENUM_DEFINE_FUNCTION_TOSTRING

#define __N_ENUM_DEFINE_FUNCTION_TOSTRING (   MACRO_DEFINITION,
  enum_name 
)
Value:
switch (value) { \
default: \
return 0; \
} \
}
#define __N_ENUM_MACRO_ENTRY_TO_TOSTRING_CASE(element_name, element_value)
macro to convert N_ENUMS entry to a string element
Definition n_enum.h:46
#define __N_ENUM_FUNCTION_TOSTRING(enum_name)
create a to string function
Definition n_enum.h:79

create getter functions toString

Definition at line 103 of file n_enum.h.

◆ __N_ENUM_FUNCTION_FROMSTRING

#define __N_ENUM_FUNCTION_FROMSTRING (   enum_name)     enum_name N_ENUM_ENTRY(enum_name, fromString)(const char* str_value)

create a value from string function

Definition at line 85 of file n_enum.h.

◆ __N_ENUM_FUNCTION_FROMSTRING_EX

#define __N_ENUM_FUNCTION_FROMSTRING_EX (   enum_name)     enum_name N_ENUM_ENTRY(enum_name, fromStringEx)(const char* str_value, int index)

create a value from string function

Definition at line 88 of file n_enum.h.

◆ __N_ENUM_FUNCTION_ISSTRINGVALID

#define __N_ENUM_FUNCTION_ISSTRINGVALID (   enum_name)     bool N_ENUM_ENTRY(enum_name, isStringValid)(const char* str_value)

create a is string valid function

Definition at line 82 of file n_enum.h.

◆ __N_ENUM_FUNCTION_ISVALID

#define __N_ENUM_FUNCTION_ISVALID (   enum_name)     bool N_ENUM_ENTRY(enum_name, isValid)(enum_name value)

create a test function

Definition at line 76 of file n_enum.h.

◆ __N_ENUM_FUNCTION_TOSTRING

#define __N_ENUM_FUNCTION_TOSTRING (   enum_name)     const char* N_ENUM_ENTRY(enum_name, toString)(enum_name value)

create a to string function

Definition at line 79 of file n_enum.h.

◆ __N_ENUM_MACRO_ENTRY_CASE

#define __N_ENUM_MACRO_ENTRY_CASE (   element_name)    case element_name:

utils macro case value

Definition at line 30 of file n_enum.h.

◆ __N_ENUM_MACRO_ENTRY_COMPARE

#define __N_ENUM_MACRO_ENTRY_COMPARE (   element_name)    if (!strcmp(#element_name, str_value))

utils macros string compare

Definition at line 32 of file n_enum.h.

◆ __N_ENUM_MACRO_ENTRY_COMPARE_EX

#define __N_ENUM_MACRO_ENTRY_COMPARE_EX (   element_name)    if (!strcmp(#element_name + index, str_value))

utils macros string ex compare

Definition at line 34 of file n_enum.h.

◆ __N_ENUM_MACRO_ENTRY_TO_ENUM_ELEMENT

#define __N_ENUM_MACRO_ENTRY_TO_ENUM_ELEMENT (   element_name,
  element_value 
)     element_name = element_value,

macro to convert N_ENUMS entry to a real ENUM element

Definition at line 39 of file n_enum.h.

◆ __N_ENUM_MACRO_ENTRY_TO_FROMSTRING_COMPARE

#define __N_ENUM_MACRO_ENTRY_TO_FROMSTRING_COMPARE (   element_name,
  element_value 
)
Value:
return element_name;
#define __N_ENUM_MACRO_ENTRY_COMPARE(element_name)
utils macros string compare
Definition n_enum.h:32

macro to convert string to N_ENUMS value

Definition at line 50 of file n_enum.h.

◆ __N_ENUM_MACRO_ENTRY_TO_FROMSTRING_COMPARE_EX

#define __N_ENUM_MACRO_ENTRY_TO_FROMSTRING_COMPARE_EX (   element_name,
  element_value 
)
Value:
return element_name;
#define __N_ENUM_MACRO_ENTRY_COMPARE_EX(element_name)
utils macros string ex compare
Definition n_enum.h:34

macro to convert string to N_ENUMS value

Definition at line 54 of file n_enum.h.

◆ __N_ENUM_MACRO_ENTRY_TO_ISSTRINGVALID_COMPARE

#define __N_ENUM_MACRO_ENTRY_TO_ISSTRINGVALID_COMPARE (   element_name,
  element_value 
)
Value:
return true;

macro to test if the string is a valid enum entry

Definition at line 58 of file n_enum.h.

◆ __N_ENUM_MACRO_ENTRY_TO_ISVALID_CASE

#define __N_ENUM_MACRO_ENTRY_TO_ISVALID_CASE (   element_name,
  element_value 
)
Value:
__N_ENUM_MACRO_ENTRY_CASE(element_name) \
return true;
#define __N_ENUM_MACRO_ENTRY_CASE(element_name)
utils macro case value
Definition n_enum.h:30

macro to test N_ENUMS entry

Definition at line 42 of file n_enum.h.

◆ __N_ENUM_MACRO_ENTRY_TO_TOSTRING_CASE

#define __N_ENUM_MACRO_ENTRY_TO_TOSTRING_CASE (   element_name,
  element_value 
)
Value:
__N_ENUM_MACRO_ENTRY_CASE(element_name) \
return #element_name;

macro to convert N_ENUMS entry to a string element

Definition at line 46 of file n_enum.h.

◆ __N_ENUM_MACRO_ENTRY_UNKNOWN_VALUE

#define __N_ENUM_MACRO_ENTRY_UNKNOWN_VALUE (   enum_name)    __##enum_name##_UNKNOWN_VALUE__

utils macros unknown value

Definition at line 36 of file n_enum.h.

◆ N_ENUM_DECLARE

#define N_ENUM_DECLARE (   MACRO_DEFINITION,
  enum_name 
)
Value:
__N_ENUM_DECLARE_ENUM(MACRO_DEFINITION, enum_name) \
__N_ENUM_DECLARE_FUNCTION(__N_ENUM_FUNCTION_ISVALID, enum_name) \
__N_ENUM_DECLARE_FUNCTION(__N_ENUM_FUNCTION_ISSTRINGVALID, enum_name) \
__N_ENUM_DECLARE_FUNCTION(__N_ENUM_FUNCTION_TOSTRING, enum_name) \
__N_ENUM_DECLARE_FUNCTION(__N_ENUM_FUNCTION_FROMSTRING, enum_name) \
__N_ENUM_DECLARE_FUNCTION(__N_ENUM_FUNCTION_FROMSTRING_EX, enum_name)
#define __N_ENUM_DECLARE_ENUM(MACRO_DEFINITION, enum_name)
macro for ENUM declaration
Definition n_enum.h:65

Macro to declare a N_ENUM.

Definition at line 133 of file n_enum.h.

◆ N_ENUM_DEFINE

#define N_ENUM_DEFINE (   MACRO_DEFINITION,
  enum_name 
)
Value:
__N_ENUM_DEFINE_FUNCTION_ISVALID(MACRO_DEFINITION, enum_name) \
__N_ENUM_DEFINE_FUNCTION_ISSTRINGVALID(MACRO_DEFINITION, enum_name) \
__N_ENUM_DEFINE_FUNCTION_TOSTRING(MACRO_DEFINITION, enum_name) \
__N_ENUM_DEFINE_FUNCTION_FROMSTRING(MACRO_DEFINITION, enum_name) \
__N_ENUM_DEFINE_FUNCTION_FROMSTRING_EX(MACRO_DEFINITION, enum_name)
#define __N_ENUM_DEFINE_FUNCTION_ISVALID(MACRO_DEFINITION, enum_name)
create getter functions is_valid
Definition n_enum.h:94

Macro to define an N_ENUM.

Definition at line 144 of file n_enum.h.

◆ N_ENUM_ENTRY

#define N_ENUM_ENTRY (   class,
  method 
)    class##__##method

helper to build an N_ENUM

Definition at line 27 of file n_enum.h.