summary refs log tree commit diff
path: root/src/libnm-glib-aux/nm-enum-utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libnm-glib-aux/nm-enum-utils.h')
-rw-r--r--src/libnm-glib-aux/nm-enum-utils.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/libnm-glib-aux/nm-enum-utils.h b/src/libnm-glib-aux/nm-enum-utils.h
new file mode 100644
index 00000000..89be54e7
--- /dev/null
+++ b/src/libnm-glib-aux/nm-enum-utils.h
@@ -0,0 +1,32 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2017 Red Hat, Inc.
+ */
+
+#ifndef __NM_ENUM_UTILS_H__
+#define __NM_ENUM_UTILS_H__
+
+/*****************************************************************************/
+
+typedef struct _NMUtilsEnumValueInfo {
+    /* currently, this is only used for _nm_utils_enum_from_str_full() to
+     * declare additional aliases for values. */
+    const char *nick;
+    int         value;
+} NMUtilsEnumValueInfo;
+
+char *   _nm_utils_enum_to_str_full(GType                       type,
+                                    int                         value,
+                                    const char *                sep,
+                                    const NMUtilsEnumValueInfo *value_infos);
+gboolean _nm_utils_enum_from_str_full(GType                       type,
+                                      const char *                str,
+                                      int *                       out_value,
+                                      char **                     err_token,
+                                      const NMUtilsEnumValueInfo *value_infos);
+
+const char **_nm_utils_enum_get_values(GType type, int from, int to);
+
+/*****************************************************************************/
+
+#endif /* __NM_ENUM_UTILS_H__ */