utils: add NM_UTILS_FLAGS2STR_DEFINE() macro
Make it neater to implement a nm_utils_flags2str() function.
This commit is contained in:
@@ -203,6 +203,21 @@ typedef struct {
|
|||||||
|
|
||||||
#define NM_UTILS_FLAGS2STR(f, n) { .flag = f, .name = ""n, }
|
#define NM_UTILS_FLAGS2STR(f, n) { .flag = f, .name = ""n, }
|
||||||
|
|
||||||
|
#define NM_UTILS_FLAGS2STR_DEFINE(fcn_name, flags_type, ...) \
|
||||||
|
const char * \
|
||||||
|
fcn_name (flags_type flags, char *buf, gsize len) \
|
||||||
|
{ \
|
||||||
|
static const NMUtilsFlags2StrDesc descs[] = { \
|
||||||
|
__VA_ARGS__ \
|
||||||
|
}; \
|
||||||
|
G_STATIC_ASSERT (sizeof (flags_type) <= sizeof (unsigned)); \
|
||||||
|
return nm_utils_flags2str (descs, G_N_ELEMENTS (descs), flags, buf, len); \
|
||||||
|
};
|
||||||
|
|
||||||
|
#define NM_UTILS_FLAGS2STR_DEFINE_STATIC(fcn_name, flags_type, ...) \
|
||||||
|
static \
|
||||||
|
NM_UTILS_FLAGS2STR_DEFINE (fcn_name, flags_type, __VA_ARGS__)
|
||||||
|
|
||||||
const char *nm_utils_flags2str (const NMUtilsFlags2StrDesc *descs,
|
const char *nm_utils_flags2str (const NMUtilsFlags2StrDesc *descs,
|
||||||
gsize n_descs,
|
gsize n_descs,
|
||||||
unsigned flags,
|
unsigned flags,
|
||||||
|
Reference in New Issue
Block a user