use enum for encoding tag requirement
diff --git a/inc/qcbor/qcbor_main_encode.h b/inc/qcbor/qcbor_main_encode.h
index 9b4396d..02b685f 100644
--- a/inc/qcbor/qcbor_main_encode.h
+++ b/inc/qcbor/qcbor_main_encode.h
@@ -285,19 +285,6 @@
 #define QCBOR_HEAD_BUFFER_SIZE  (sizeof(uint64_t) + 2)
 
 
-/**
- * Output the full CBOR tag. See @ref CBORTags, @ref Tag-Usage and
- * @ref Tags-Overview.
- */
-#define QCBOR_ENCODE_AS_TAG      0
-
-/**
- * Output only the 'borrowed' content format for the relevant tag.
- * See @ref CBORTags, @ref Tag-Usage and @ref Tags-Overview.
- */
-#define QCBOR_ENCODE_AS_BORROWED 1
-
-
 
 /**
  * This enum is the bit flags for configuring the encoder for things
diff --git a/inc/qcbor/qcbor_number_encode.h b/inc/qcbor/qcbor_number_encode.h
index 783b832..b3f00c8 100644
--- a/inc/qcbor/qcbor_number_encode.h
+++ b/inc/qcbor/qcbor_number_encode.h
@@ -131,18 +131,6 @@
 #define QCBOR_HEAD_BUFFER_SIZE  (sizeof(uint64_t) + 2)
 
 
-/**
- * Output the full CBOR tag. See @ref CBORTags, @ref Tag-Usage and
- * @ref Tags-Overview.
- */
-#define QCBOR_ENCODE_AS_TAG      0
-
-/**
- * Output only the 'borrowed' content format for the relevant tag.
- * See @ref CBORTags, @ref Tag-Usage and @ref Tags-Overview.
- */
-#define QCBOR_ENCODE_AS_BORROWED 1
-
 
 
 
diff --git a/inc/qcbor/qcbor_tag_encode.h b/inc/qcbor/qcbor_tag_encode.h
index a862056..adcdd4f 100644
--- a/inc/qcbor/qcbor_tag_encode.h
+++ b/inc/qcbor/qcbor_tag_encode.h
@@ -95,17 +95,21 @@
  */
 
 
-/**
- * Output the full CBOR tag. See @ref CBORTags, @ref Tag-Usage and
- * @ref Tags-Overview.
- */
-#define QCBOR_ENCODE_AS_TAG      0
+/** Enum to indicates whether a tag should be encoded as a full tag or
+ * as borrowed content. */
+enum QCBOREncodeTagReq {
+    /**
+     * Output the full CBOR tag. See @ref CBORTags, @ref Tag-Usage and
+     * @ref Tags-Overview.
+     */
+     QCBOR_ENCODE_AS_TAG =  0,
 
-/**
- * Output only the 'borrowed' content format for the relevant tag.
- * See @ref CBORTags, @ref Tag-Usage and @ref Tags-Overview.
- */
-#define QCBOR_ENCODE_AS_BORROWED 1
+    /**
+     * Output only the 'borrowed' content format for the relevant tag.
+     * See @ref CBORTags, @ref Tag-Usage and @ref Tags-Overview.
+     */
+    QCBOR_ENCODE_AS_BORROWED = 1
+};
 
 
 
@@ -171,23 +175,23 @@
  * See also QCBOREncode_AddTDaysEpoch().
  */
 static void
-QCBOREncode_AddTDateEpoch(QCBOREncodeContext *pCtx,
-                          uint8_t             uTagRequirement,
-                          int64_t             nDate);
+QCBOREncode_AddTDateEpoch(QCBOREncodeContext    *pCtx,
+                          enum QCBOREncodeTagReq uTagRequirement,
+                          int64_t                nDate);
 
 /** See QCBOREncode_AddTDateEpoch(). */
 static void
-QCBOREncode_AddTDateEpochToMapSZ(QCBOREncodeContext *pCtx,
-                                 const char         *szLabel,
-                                 uint8_t             uTagRequirement,
-                                 int64_t             nDate);
+QCBOREncode_AddTDateEpochToMapSZ(QCBOREncodeContext    *pCtx,
+                                 const char            *szLabel,
+                                 enum QCBOREncodeTagReq uTagRequirement,
+                                 int64_t                nDate);
 
 /** See QCBOREncode_AddTDateEpoch(). */
 static void
-QCBOREncode_AddTDateEpochToMapN(QCBOREncodeContext *pCtx,
-                                int64_t             nLabel,
-                                uint8_t             uTagRequirement,
-                                int64_t             nDate);
+QCBOREncode_AddTDateEpochToMapN(QCBOREncodeContext    *pCtx,
+                                int64_t                nLabel,
+                                enum QCBOREncodeTagReq uTagRequirement,
+                                int64_t                nDate);
 
 
 /**
@@ -209,23 +213,23 @@
  * See also QCBOREncode_AddTDateEpoch().
  */
 static void
-QCBOREncode_AddTDaysEpoch(QCBOREncodeContext *pCtx,
-                          uint8_t             uTagRequirement,
-                          int64_t             nDays);
+QCBOREncode_AddTDaysEpoch(QCBOREncodeContext    *pCtx,
+                          enum QCBOREncodeTagReq uTagRequirement,
+                          int64_t                nDays);
 
 /** See QCBOREncode_AddTDaysEpoch(). */
 static void
-QCBOREncode_AddTDaysEpochToMapSZ(QCBOREncodeContext *pCtx,
-                                 const char         *szLabel,
-                                 uint8_t             uTagRequirement,
-                                 int64_t             nDays);
+QCBOREncode_AddTDaysEpochToMapSZ(QCBOREncodeContext    *pCtx,
+                                 const char            *szLabel,
+                                 enum QCBOREncodeTagReq uTagRequirement,
+                                 int64_t                nDays);
 
 /** See QCBOREncode_AddTDaysEpoch(). */
 static void
-QCBOREncode_AddTDaysEpochToMapN(QCBOREncodeContext *pCtx,
-                                int64_t             nLabel,
-                                uint8_t             uTagRequirement,
-                                int64_t             nDays);
+QCBOREncode_AddTDaysEpochToMapN(QCBOREncodeContext    *pCtx,
+                                int64_t                nLabel,
+                                enum QCBOREncodeTagReq uTagRequirement,
+                                int64_t                nDays);
 
 
 /**
@@ -244,23 +248,23 @@
  * CBOR_TAG_BIN_UUID indicating the binary string is a UUID.
  */
 static void
-QCBOREncode_AddTBinaryUUID(QCBOREncodeContext *pCtx,
-                           uint8_t             uTagRequirement,
-                           UsefulBufC          Bytes);
+QCBOREncode_AddTBinaryUUID(QCBOREncodeContext    *pCtx,
+                           enum QCBOREncodeTagReq uTagRequirement,
+                           UsefulBufC             UUID);
 
 /** See QCBOREncode_AddTBinaryUUID(). */
 static void
-QCBOREncode_AddTBinaryUUIDToMapSZ(QCBOREncodeContext *pCtx,
-                                  const char         *szLabel,
-                                  uint8_t             uTagRequirement,
-                                  UsefulBufC          Bytes);
+QCBOREncode_AddTBinaryUUIDToMapSZ(QCBOREncodeContext    *pCtx,
+                                  const char            *szLabel,
+                                  enum QCBOREncodeTagReq uTagRequirement,
+                                  UsefulBufC             UUID);
 
 /** See QCBOREncode_AddTBinaryUUID(). */
 static void
-QCBOREncode_AddTBinaryUUIDToMapN(QCBOREncodeContext *pCtx,
-                                 int64_t             nLabel,
-                                 uint8_t             uTagRequirement,
-                                 UsefulBufC          Bytes);
+QCBOREncode_AddTBinaryUUIDToMapN(QCBOREncodeContext    *pCtx,
+                                 int64_t                nLabel,
+                                 enum QCBOREncodeTagReq uTagRequirement,
+                                 UsefulBufC             UUID);
 
 
 /**
@@ -283,23 +287,23 @@
  *      QCBOREncode_AddTURI(pCtx, QCBOR_ENCODE_AS_TAG, UsefulBuf_FromSZ(szURI));
  */
 static void
-QCBOREncode_AddTURI(QCBOREncodeContext *pCtx,
-                    uint8_t             uTagRequirement,
-                    UsefulBufC          URI);
+QCBOREncode_AddTURI(QCBOREncodeContext    *pCtx,
+                    enum QCBOREncodeTagReq uTagRequirement,
+                    UsefulBufC             URI);
 
 /** See QCBOREncode_AddTURI(). */
 static void
-QCBOREncode_AddTURIToMapSZ(QCBOREncodeContext *pCtx,
-                           const char         *szLabel,
-                           uint8_t             uTagRequirement,
-                           UsefulBufC          URI);
+QCBOREncode_AddTURIToMapSZ(QCBOREncodeContext    *pCtx,
+                           const char            *szLabel,
+                           enum QCBOREncodeTagReq uTagRequirement,
+                           UsefulBufC             URI);
 
 /** See QCBOREncode_AddTURI(). */
 static void
-QCBOREncode_AddTURIToMapN(QCBOREncodeContext *pCtx,
-                          int64_t             nLabel,
-                          uint8_t             uTagRequirement,
-                          UsefulBufC          URI);
+QCBOREncode_AddTURIToMapN(QCBOREncodeContext    *pCtx,
+                          int64_t                nLabel,
+                          enum QCBOREncodeTagReq uTagRequirement,
+                          UsefulBufC             URI);
 
 
 /**
@@ -317,23 +321,23 @@
  * CBOR_TAG_B64 indicating the text string is Base64 encoded.
  */
 static void
-QCBOREncode_AddTB64Text(QCBOREncodeContext *pCtx,
-                        uint8_t             uTagRequirement,
-                        UsefulBufC          B64Text);
+QCBOREncode_AddTB64Text(QCBOREncodeContext    *pCtx,
+                        enum QCBOREncodeTagReq uTagRequirement,
+                        UsefulBufC             B64Text);
 
 /** See QCBOREncode_AddTB64Text(). */
 static void
-QCBOREncode_AddTB64TextToMapSZ(QCBOREncodeContext *pCtx,
-                               const char         *szLabel,
-                               uint8_t             uTagRequirement,
-                               UsefulBufC          B64Text);
+QCBOREncode_AddTB64TextToMapSZ(QCBOREncodeContext    *pCtx,
+                               const char            *szLabel,
+                               enum QCBOREncodeTagReq uTagRequirement,
+                               UsefulBufC             B64Text);
 
 /** See QCBOREncode_AddTB64Text(). */
 static void
-QCBOREncode_AddTB64TextToMapN(QCBOREncodeContext *pCtx,
-                              int64_t nLabel,
-                              uint8_t uTagRequirement,
-                              UsefulBufC B64Text);
+QCBOREncode_AddTB64TextToMapN(QCBOREncodeContext    *pCtx,
+                              int64_t                nLabel,
+                              enum QCBOREncodeTagReq uTagRequirement,
+                              UsefulBufC             B64Text);
 
 
 /**
@@ -352,23 +356,23 @@
  * encoded.
  */
 static void
-QCBOREncode_AddTB64URLText(QCBOREncodeContext *pCtx,
-                           uint8_t             uTagRequirement,
-                           UsefulBufC          B64Text);
+QCBOREncode_AddTB64URLText(QCBOREncodeContext    *pCtx,
+                           enum QCBOREncodeTagReq uTagRequirement,
+                           UsefulBufC             B64Text);
 
 /** See QCBOREncode_AddTB64URLText(). */
 static void
-QCBOREncode_AddTB64URLTextToMapSZ(QCBOREncodeContext *pCtx,
-                                  const char         *szLabel,
-                                  uint8_t             uTagRequirement,
-                                  UsefulBufC          B64Text);
+QCBOREncode_AddTB64URLTextToMapSZ(QCBOREncodeContext    *pCtx,
+                                  const char            *szLabel,
+                                  enum QCBOREncodeTagReq uTagRequirement,
+                                  UsefulBufC             B64Text);
 
 /** See QCBOREncode_AddTB64URLText(). */
 static void
-QCBOREncode_AddTB64URLTextToMapN(QCBOREncodeContext *pCtx,
-                                 int64_t             nLabel,
-                                 uint8_t             uTagRequirement,
-                                 UsefulBufC          B64Text);
+QCBOREncode_AddTB64URLTextToMapN(QCBOREncodeContext    *pCtx,
+                                 int64_t                nLabel,
+                                 enum QCBOREncodeTagReq uTagRequirement,
+                                 UsefulBufC             B64Text);
 
 
 /**
@@ -386,23 +390,23 @@
  * CBOR_TAG_REGEX indicating the text string is a regular expression.
  */
 static void
-QCBOREncode_AddTRegex(QCBOREncodeContext *pCtx,
-                      uint8_t            uTagRequirement,
-                      UsefulBufC         Regex);
+QCBOREncode_AddTRegex(QCBOREncodeContext    *pCtx,
+                      enum QCBOREncodeTagReq uTagRequirement,
+                      UsefulBufC             Regex);
 
 /** See QCBOREncode_AddTRegex(). */
 static void
-QCBOREncode_AddTRegexToMapSZ(QCBOREncodeContext *pCtx,
-                             const char         *szLabel,
-                             uint8_t             uTagRequirement,
-                             UsefulBufC          Regex);
+QCBOREncode_AddTRegexToMapSZ(QCBOREncodeContext    *pCtx,
+                             const char            *szLabel,
+                             enum QCBOREncodeTagReq uTagRequirement,
+                             UsefulBufC             Regex);
 
 /** See QCBOREncode_AddTRegex(). */
 static void
-QCBOREncode_AddTRegexToMapN(QCBOREncodeContext *pCtx,
-                            int64_t             nLabel,
-                            uint8_t             uTagRequirement,
-                            UsefulBufC          Regex);
+QCBOREncode_AddTRegexToMapN(QCBOREncodeContext    *pCtx,
+                            int64_t                nLabel,
+                            enum QCBOREncodeTagReq uTagRequirement,
+                            UsefulBufC             Regex);
 
 
 /**
@@ -434,23 +438,23 @@
  * for a discussion of line endings in CBOR.
  */
 static void
-QCBOREncode_AddTMIMEData(QCBOREncodeContext *pCtx,
-                         uint8_t             uTagRequirement,
-                         UsefulBufC          MIMEData);
+QCBOREncode_AddTMIMEData(QCBOREncodeContext    *pCtx,
+                         enum QCBOREncodeTagReq uTagRequirement,
+                         UsefulBufC             MIMEData);
 
 /** See QCBOREncode_AddTMIMEData(). */
 static void
-QCBOREncode_AddTMIMEDataToMapSZ(QCBOREncodeContext *pCtx,
-                                const char         *szLabel,
-                                uint8_t             uTagRequirement,
-                                UsefulBufC          MIMEData);
+QCBOREncode_AddTMIMEDataToMapSZ(QCBOREncodeContext    *pCtx,
+                                const char            *szLabel,
+                                enum QCBOREncodeTagReq uTagRequirement,
+                                UsefulBufC             MIMEData);
 
 /** See QCBOREncode_AddTMIMEData(). */
 static void
-QCBOREncode_AddTMIMEDataToMapN(QCBOREncodeContext *pCtx,
-                               int64_t             nLabel,
-                               uint8_t             uTagRequirement,
-                               UsefulBufC          MIMEData);
+QCBOREncode_AddTMIMEDataToMapN(QCBOREncodeContext    *pCtx,
+                               int64_t                nLabel,
+                               enum QCBOREncodeTagReq uTagRequirement,
+                               UsefulBufC             MIMEData);
 
 
 /**
@@ -477,23 +481,23 @@
  * See also QCBOREncode_AddTDayString().
  */
 static void
-QCBOREncode_AddTDateString(QCBOREncodeContext *pCtx,
-                           uint8_t             uTagRequirement,
-                           const char         *szDate);
+QCBOREncode_AddTDateString(QCBOREncodeContext    *pCtx,
+                           enum QCBOREncodeTagReq uTagRequirement,
+                           const char            *szDate);
 
 /** See QCBOREncode_AddTDateString(). */
 static void
-QCBOREncode_AddTDateStringToMapSZ(QCBOREncodeContext *pCtx,
-                                  const char         *szLabel,
-                                  uint8_t             uTagRequirement,
-                                  const char         *szDate);
+QCBOREncode_AddTDateStringToMapSZ(QCBOREncodeContext    *pCtx,
+                                  const char            *szLabel,
+                                  enum QCBOREncodeTagReq uTagRequirement,
+                                  const char            *szDate);
 
 /** See QCBOREncode_AddTDateString(). */
 static void
-QCBOREncode_AddTDateStringToMapN(QCBOREncodeContext *pCtx,
-                                 int64_t             nLabel,
-                                 uint8_t             uTagRequirement,
-                                 const char         *szDate);
+QCBOREncode_AddTDateStringToMapN(QCBOREncodeContext    *pCtx,
+                                 int64_t                nLabel,
+                                 enum QCBOREncodeTagReq uTagRequirement,
+                                 const char            *szDate);
 
 
 /**
@@ -522,23 +526,23 @@
  * See also QCBOREncode_AddTDateString().
  */
 static void
-QCBOREncode_AddTDaysString(QCBOREncodeContext *pCtx,
-                           uint8_t             uTagRequirement,
-                           const char         *szDate);
+QCBOREncode_AddTDaysString(QCBOREncodeContext    *pCtx,
+                           enum QCBOREncodeTagReq uTagRequirement,
+                           const char            *szDate);
 
 /** See QCBOREncode_AddTDaysString(). */
 static void
-QCBOREncode_AddTDaysStringToMapSZ(QCBOREncodeContext *pCtx,
-                                  const char         *szLabel,
-                                  uint8_t             uTagRequirement,
-                                  const char         *szDate);
+QCBOREncode_AddTDaysStringToMapSZ(QCBOREncodeContext    *pCtx,
+                                  const char            *szLabel,
+                                  enum QCBOREncodeTagReq uTagRequirement,
+                                  const char            *szDate);
 
 /** See QCBOREncode_AddTDaysString(). */
 static void
-QCBOREncode_AddTDaysStringToMapN(QCBOREncodeContext *pCtx,
-                                 int64_t             nLabel,
-                                 uint8_t             uTagRequirement,
-                                 const char         *szDate);
+QCBOREncode_AddTDaysStringToMapN(QCBOREncodeContext    *pCtx,
+                                 int64_t                nLabel,
+                                 enum QCBOREncodeTagReq uTagRequirement,
+                                 const char            *szDate);
 
 
 
@@ -564,15 +568,15 @@
 
 /** @deprecated Use QCBOREncode_AddTBinaryUUID() instead. */
 static void
-QCBOREncode_AddBinaryUUID(QCBOREncodeContext *pCtx, UsefulBufC Bytes);
+QCBOREncode_AddBinaryUUID(QCBOREncodeContext *pCtx, UsefulBufC UUID);
 
 /** @deprecated Use QCBOREncode_AddTBinaryUUIDToMapSZ() instead. */
 static void
-QCBOREncode_AddBinaryUUIDToMap(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC Bytes);
+QCBOREncode_AddBinaryUUIDToMap(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC UUID);
 
 /** @deprecated Use QCBOREncode_AddTBinaryUUIDToMapN() instead. */
 static void
-QCBOREncode_AddBinaryUUIDToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, UsefulBufC Bytes);
+QCBOREncode_AddBinaryUUIDToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, UsefulBufC UUID);
 
 /** @deprecated Use QCBOREncode_AddTagNumber() instead. */
 static void
@@ -694,34 +698,34 @@
 
 
 static inline void
-QCBOREncode_AddTDateEpoch(QCBOREncodeContext *pMe,
-                          const uint8_t       uTag,
-                          const int64_t       nDate)
+QCBOREncode_AddTDateEpoch(QCBOREncodeContext          *pMe,
+                          const enum QCBOREncodeTagReq uTagRequirement,
+                          const int64_t                nDate)
 {
-   if(uTag == QCBOR_ENCODE_AS_TAG) {
+   if(uTagRequirement == QCBOR_ENCODE_AS_TAG) {
       QCBOREncode_AddTagNumber(pMe, CBOR_TAG_DATE_EPOCH);
    }
    QCBOREncode_AddInt64(pMe, nDate);
 }
 
 static inline void
-QCBOREncode_AddTDateEpochToMapSZ(QCBOREncodeContext *pMe,
-                                 const char         *szLabel,
-                                 const uint8_t       uTag,
-                                 const int64_t       nDate)
+QCBOREncode_AddTDateEpochToMapSZ(QCBOREncodeContext          *pMe,
+                                 const char                  *szLabel,
+                                 const enum QCBOREncodeTagReq uTagRequirement,
+                                 const int64_t                nDate)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
-   QCBOREncode_AddTDateEpoch(pMe, uTag, nDate);
+   QCBOREncode_AddTDateEpoch(pMe, uTagRequirement, nDate);
 }
 
 static inline void
-QCBOREncode_AddTDateEpochToMapN(QCBOREncodeContext *pMe,
-                                const int64_t       nLabel,
-                                const uint8_t       uTag,
-                                const int64_t       nDate)
+QCBOREncode_AddTDateEpochToMapN(QCBOREncodeContext          *pMe,
+                                const int64_t                nLabel,
+                                const enum QCBOREncodeTagReq uTagRequirement,
+                                const int64_t                nDate)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
-   QCBOREncode_AddTDateEpoch(pMe, uTag, nDate);
+   QCBOREncode_AddTDateEpoch(pMe, uTagRequirement, nDate);
 }
 
 static inline void
@@ -751,99 +755,99 @@
 
 
 static inline void
-QCBOREncode_AddTDaysEpoch(QCBOREncodeContext *pMe,
-                          const uint8_t       uTag,
-                          const int64_t       nDays)
+QCBOREncode_AddTDaysEpoch(QCBOREncodeContext          *pMe,
+                          const enum QCBOREncodeTagReq uTagRequirement,
+                          const int64_t                nDays)
 {
-   if(uTag == QCBOR_ENCODE_AS_TAG) {
+   if(uTagRequirement == QCBOR_ENCODE_AS_TAG) {
       QCBOREncode_AddTagNumber(pMe, CBOR_TAG_DAYS_EPOCH);
    }
    QCBOREncode_AddInt64(pMe, nDays);
 }
 
 static inline void
-QCBOREncode_AddTDaysEpochToMapSZ(QCBOREncodeContext *pMe,
-                                 const char         *szLabel,
-                                 const uint8_t       uTag,
-                                 const int64_t       nDays)
+QCBOREncode_AddTDaysEpochToMapSZ(QCBOREncodeContext          *pMe,
+                                 const char                  *szLabel,
+                                 const enum QCBOREncodeTagReq uTagRequirement,
+                                 const int64_t                nDays)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
-   QCBOREncode_AddTDaysEpoch(pMe, uTag, nDays);
+   QCBOREncode_AddTDaysEpoch(pMe, uTagRequirement, nDays);
 }
 
 static inline void
-QCBOREncode_AddTDaysEpochToMapN(QCBOREncodeContext *pMe,
-                                const int64_t       nLabel,
-                                const uint8_t       uTag,
-                                const int64_t       nDays)
+QCBOREncode_AddTDaysEpochToMapN(QCBOREncodeContext          *pMe,
+                                const int64_t                nLabel,
+                                const enum QCBOREncodeTagReq uTagRequirement,
+                                const int64_t                nDays)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
-   QCBOREncode_AddTDaysEpoch(pMe, uTag, nDays);
+   QCBOREncode_AddTDaysEpoch(pMe, uTagRequirement, nDays);
 }
 
 
 
 static inline void
-QCBOREncode_AddTBinaryUUID(QCBOREncodeContext *pMe,
-                           const uint8_t       uTagRequirement,
-                           const UsefulBufC    Bytes)
+QCBOREncode_AddTBinaryUUID(QCBOREncodeContext          *pMe,
+                           const enum QCBOREncodeTagReq uTagRequirement,
+                           const UsefulBufC             UUID)
 {
    if(uTagRequirement == QCBOR_ENCODE_AS_TAG) {
       QCBOREncode_AddTagNumber(pMe, CBOR_TAG_BIN_UUID);
    }
-   QCBOREncode_AddBytes(pMe, Bytes);
+   QCBOREncode_AddBytes(pMe, UUID);
 }
 
 static inline void
-QCBOREncode_AddTBinaryUUIDToMapSZ(QCBOREncodeContext *pMe,
-                                  const char         *szLabel,
-                                  const uint8_t       uTagRequirement,
-                                  const UsefulBufC    Bytes)
+QCBOREncode_AddTBinaryUUIDToMapSZ(QCBOREncodeContext          *pMe,
+                                  const char                  *szLabel,
+                                  const enum QCBOREncodeTagReq uTagRequirement,
+                                  const UsefulBufC             UUID)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
-   QCBOREncode_AddTBinaryUUID(pMe, uTagRequirement, Bytes);
+   QCBOREncode_AddTBinaryUUID(pMe, uTagRequirement, UUID);
 }
 
 static inline void
-QCBOREncode_AddTBinaryUUIDToMapN(QCBOREncodeContext *pMe,
-                                 const int64_t       nLabel,
-                                 const uint8_t       uTagRequirement,
-                                 const UsefulBufC    Bytes)
+QCBOREncode_AddTBinaryUUIDToMapN(QCBOREncodeContext         *pMe,
+                                 const int64_t                nLabel,
+                                 const enum QCBOREncodeTagReq uTagRequirement,
+                                 const UsefulBufC             UUID)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
-   QCBOREncode_AddTBinaryUUID(pMe, uTagRequirement, Bytes);
+   QCBOREncode_AddTBinaryUUID(pMe, uTagRequirement, UUID);
 }
 
 static inline void
-QCBOREncode_AddBinaryUUID(QCBOREncodeContext *pMe, const UsefulBufC Bytes)
+QCBOREncode_AddBinaryUUID(QCBOREncodeContext *pMe, const UsefulBufC UUID)
 {
-   QCBOREncode_AddTBinaryUUID(pMe, QCBOR_ENCODE_AS_TAG, Bytes);
+   QCBOREncode_AddTBinaryUUID(pMe, QCBOR_ENCODE_AS_TAG, UUID);
 }
 
 static inline void
 QCBOREncode_AddBinaryUUIDToMap(QCBOREncodeContext *pMe,
                                const char         *szLabel,
-                               const UsefulBufC    Bytes)
+                               const UsefulBufC    UUID)
 {
-   QCBOREncode_AddTBinaryUUIDToMapSZ(pMe, szLabel, QCBOR_ENCODE_AS_TAG, Bytes);
+   QCBOREncode_AddTBinaryUUIDToMapSZ(pMe, szLabel, QCBOR_ENCODE_AS_TAG, UUID);
 }
 
 static inline void
 QCBOREncode_AddBinaryUUIDToMapN(QCBOREncodeContext *pMe,
                                 const int64_t       nLabel,
-                                const UsefulBufC    Bytes)
+                                const UsefulBufC    UUID)
 {
    QCBOREncode_AddTBinaryUUIDToMapN(pMe,
                                     nLabel,
                                     QCBOR_ENCODE_AS_TAG,
-                                    Bytes);
+                                    UUID);
 }
 
 
 static inline void
-QCBOREncode_AddTURI(QCBOREncodeContext *pMe,
-                    const uint8_t       uTagRequirement,
-                    const UsefulBufC    URI)
+QCBOREncode_AddTURI(QCBOREncodeContext          *pMe,
+                    const enum QCBOREncodeTagReq uTagRequirement,
+                    const UsefulBufC             URI)
 {
    if(uTagRequirement == QCBOR_ENCODE_AS_TAG) {
       QCBOREncode_AddTagNumber(pMe, CBOR_TAG_URI);
@@ -852,20 +856,20 @@
 }
 
 static inline void
-QCBOREncode_AddTURIToMapSZ(QCBOREncodeContext *pMe,
-                           const char         *szLabel,
-                           const uint8_t       uTagRequirement,
-                           const UsefulBufC    URI)
+QCBOREncode_AddTURIToMapSZ(QCBOREncodeContext          *pMe,
+                           const char                  *szLabel,
+                           const enum QCBOREncodeTagReq uTagRequirement,
+                           const UsefulBufC             URI)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddTURI(pMe, uTagRequirement, URI);
 }
 
 static inline void
-QCBOREncode_AddTURIToMapN(QCBOREncodeContext *pMe,
-                          const int64_t       nLabel,
-                          const uint8_t       uTagRequirement,
-                          const UsefulBufC    URI)
+QCBOREncode_AddTURIToMapN(QCBOREncodeContext          *pMe,
+                          const int64_t                nLabel,
+                          const enum QCBOREncodeTagReq uTagRequirement,
+                          const UsefulBufC             URI)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
    QCBOREncode_AddTURI(pMe, uTagRequirement, URI);
@@ -896,9 +900,9 @@
 
 
 static inline void
-QCBOREncode_AddTB64Text(QCBOREncodeContext *pMe,
-                        const uint8_t       uTagRequirement,
-                        const UsefulBufC    B64Text)
+QCBOREncode_AddTB64Text(QCBOREncodeContext          *pMe,
+                        const enum QCBOREncodeTagReq uTagRequirement,
+                        const UsefulBufC             B64Text)
 {
    if(uTagRequirement == QCBOR_ENCODE_AS_TAG) {
       QCBOREncode_AddTagNumber(pMe, CBOR_TAG_B64);
@@ -907,20 +911,20 @@
 }
 
 static inline void
-QCBOREncode_AddTB64TextToMapSZ(QCBOREncodeContext *pMe,
-                               const char         *szLabel,
-                               const uint8_t       uTagRequirement,
-                               const UsefulBufC    B64Text)
+QCBOREncode_AddTB64TextToMapSZ(QCBOREncodeContext          *pMe,
+                               const char                  *szLabel,
+                               const enum QCBOREncodeTagReq uTagRequirement,
+                               const UsefulBufC             B64Text)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddTB64Text(pMe, uTagRequirement, B64Text);
 }
 
 static inline void
-QCBOREncode_AddTB64TextToMapN(QCBOREncodeContext *pMe,
-                              const int64_t       nLabel,
-                              const uint8_t       uTagRequirement,
-                              const UsefulBufC    B64Text)
+QCBOREncode_AddTB64TextToMapN(QCBOREncodeContext          *pMe,
+                              const int64_t                nLabel,
+                              const enum QCBOREncodeTagReq uTagRequirement,
+                              const UsefulBufC             B64Text)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
    QCBOREncode_AddTB64Text(pMe, uTagRequirement, B64Text);
@@ -951,9 +955,9 @@
 
 
 static inline void
-QCBOREncode_AddTB64URLText(QCBOREncodeContext *pMe,
-                           const uint8_t       uTagRequirement,
-                           const UsefulBufC    B64Text)
+QCBOREncode_AddTB64URLText(QCBOREncodeContext          *pMe,
+                           const enum QCBOREncodeTagReq uTagRequirement,
+                           const UsefulBufC             B64Text)
 {
    if(uTagRequirement == QCBOR_ENCODE_AS_TAG) {
       QCBOREncode_AddTagNumber(pMe, CBOR_TAG_B64URL);
@@ -962,20 +966,20 @@
 }
 
 static inline void
-QCBOREncode_AddTB64URLTextToMapSZ(QCBOREncodeContext *pMe,
-                                  const char         *szLabel,
-                                  const uint8_t       uTagRequirement,
-                                  const UsefulBufC    B64Text)
+QCBOREncode_AddTB64URLTextToMapSZ(QCBOREncodeContext          *pMe,
+                                  const char                  *szLabel,
+                                  const enum QCBOREncodeTagReq uTagRequirement,
+                                  const UsefulBufC             B64Text)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddTB64URLText(pMe, uTagRequirement, B64Text);
 }
 
 static inline void
-QCBOREncode_AddTB64URLTextToMapN(QCBOREncodeContext *pMe,
-                                 const int64_t       nLabel,
-                                 const uint8_t       uTagRequirement,
-                                 const UsefulBufC    B64Text)
+QCBOREncode_AddTB64URLTextToMapN(QCBOREncodeContext          *pMe,
+                                 const int64_t                nLabel,
+                                 const enum QCBOREncodeTagReq uTagRequirement,
+                                 const UsefulBufC             B64Text)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
    QCBOREncode_AddTB64URLText(pMe, uTagRequirement, B64Text);
@@ -1008,64 +1012,64 @@
 
 
 static inline void
-QCBOREncode_AddTRegex(QCBOREncodeContext *pMe,
-                      const uint8_t       uTagRequirement,
-                      const UsefulBufC    Bytes)
+QCBOREncode_AddTRegex(QCBOREncodeContext          *pMe,
+                      const enum QCBOREncodeTagReq uTagRequirement,
+                      const UsefulBufC             Regex)
 {
    if(uTagRequirement == QCBOR_ENCODE_AS_TAG) {
       QCBOREncode_AddTagNumber(pMe, CBOR_TAG_REGEX);
    }
-   QCBOREncode_AddText(pMe, Bytes);
+   QCBOREncode_AddText(pMe, Regex);
 }
 
 static inline void
-QCBOREncode_AddTRegexToMapSZ(QCBOREncodeContext *pMe,
-                             const char         *szLabel,
-                             const uint8_t       uTagRequirement,
-                             const UsefulBufC    Bytes)
+QCBOREncode_AddTRegexToMapSZ(QCBOREncodeContext          *pMe,
+                             const char                  *szLabel,
+                             const enum QCBOREncodeTagReq uTagRequirement,
+                             const UsefulBufC             Regex)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
-   QCBOREncode_AddTRegex(pMe, uTagRequirement, Bytes);
+   QCBOREncode_AddTRegex(pMe, uTagRequirement, Regex);
 }
 
 static inline void
-QCBOREncode_AddTRegexToMapN(QCBOREncodeContext *pMe,
-                            const int64_t       nLabel,
-                            const uint8_t       uTagRequirement,
-                            const UsefulBufC    Bytes)
+QCBOREncode_AddTRegexToMapN(QCBOREncodeContext          *pMe,
+                            const int64_t                nLabel,
+                            const enum QCBOREncodeTagReq uTagRequirement,
+                            const UsefulBufC             Regex)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
-   QCBOREncode_AddTRegex(pMe, uTagRequirement, Bytes);
+   QCBOREncode_AddTRegex(pMe, uTagRequirement, Regex);
 }
 
 static inline void
-QCBOREncode_AddRegex(QCBOREncodeContext *pMe, const UsefulBufC Bytes)
+QCBOREncode_AddRegex(QCBOREncodeContext *pMe, const UsefulBufC Regex)
 {
-   QCBOREncode_AddTRegex(pMe, QCBOR_ENCODE_AS_TAG, Bytes);
+   QCBOREncode_AddTRegex(pMe, QCBOR_ENCODE_AS_TAG, Regex);
 }
 
 static inline void
 QCBOREncode_AddRegexToMap(QCBOREncodeContext *pMe,
                           const char         *szLabel,
-                          const UsefulBufC    Bytes)
+                          const UsefulBufC    Regex)
 {
-   QCBOREncode_AddTRegexToMapSZ(pMe, szLabel, QCBOR_ENCODE_AS_TAG, Bytes);
+   QCBOREncode_AddTRegexToMapSZ(pMe, szLabel, QCBOR_ENCODE_AS_TAG, Regex);
 }
 
 static inline void
 QCBOREncode_AddRegexToMapN(QCBOREncodeContext *pMe,
                            const int64_t       nLabel,
-                           const UsefulBufC    Bytes)
+                           const UsefulBufC    Regex)
 {
-   QCBOREncode_AddTRegexToMapN(pMe, nLabel, QCBOR_ENCODE_AS_TAG, Bytes);
+   QCBOREncode_AddTRegexToMapN(pMe, nLabel, QCBOR_ENCODE_AS_TAG, Regex);
 
 }
 
 
 static inline void
-QCBOREncode_AddTMIMEData(QCBOREncodeContext *pMe,
-                         const uint8_t       uTagRequirement,
-                         const UsefulBufC    MIMEData)
+QCBOREncode_AddTMIMEData(QCBOREncodeContext          *pMe,
+                         const enum QCBOREncodeTagReq uTagRequirement,
+                         const UsefulBufC             MIMEData)
 {
    if(uTagRequirement == QCBOR_ENCODE_AS_TAG) {
       QCBOREncode_AddTagNumber(pMe, CBOR_TAG_BINARY_MIME);
@@ -1074,20 +1078,20 @@
 }
 
 static inline void
-QCBOREncode_AddTMIMEDataToMapSZ(QCBOREncodeContext *pMe,
-                                const char         *szLabel,
-                                const uint8_t       uTagRequirement,
-                                const UsefulBufC    MIMEData)
+QCBOREncode_AddTMIMEDataToMapSZ(QCBOREncodeContext          *pMe,
+                                const char                  *szLabel,
+                                const enum QCBOREncodeTagReq uTagRequirement,
+                                const UsefulBufC             MIMEData)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddTMIMEData(pMe, uTagRequirement, MIMEData);
 }
 
 static inline void
-QCBOREncode_AddTMIMEDataToMapN(QCBOREncodeContext *pMe,
-                               const int64_t       nLabel,
-                               const uint8_t       uTagRequirement,
-                               const UsefulBufC    MIMEData)
+QCBOREncode_AddTMIMEDataToMapN(QCBOREncodeContext          *pMe,
+                               const int64_t                nLabel,
+                               const enum QCBOREncodeTagReq uTagRequirement,
+                               const UsefulBufC             MIMEData)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
    QCBOREncode_AddTMIMEData(pMe, uTagRequirement, MIMEData);
@@ -1117,9 +1121,9 @@
 
 
 static inline void
-QCBOREncode_AddTDateString(QCBOREncodeContext *pMe,
-                           const uint8_t       uTagRequirement,
-                           const char         *szDate)
+QCBOREncode_AddTDateString(QCBOREncodeContext          *pMe,
+                           const enum QCBOREncodeTagReq uTagRequirement,
+                           const char                  *szDate)
 {
    if(uTagRequirement == QCBOR_ENCODE_AS_TAG) {
       QCBOREncode_AddTagNumber(pMe, CBOR_TAG_DATE_STRING);
@@ -1128,20 +1132,20 @@
 }
 
 static inline void
-QCBOREncode_AddTDateStringToMapSZ(QCBOREncodeContext *pMe,
-                                  const char         *szLabel,
-                                  const uint8_t       uTagRequirement,
-                                  const char         *szDate)
+QCBOREncode_AddTDateStringToMapSZ(QCBOREncodeContext          *pMe,
+                                  const char                  *szLabel,
+                                  const enum QCBOREncodeTagReq uTagRequirement,
+                                  const char                  *szDate)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddTDateString(pMe, uTagRequirement, szDate);
 }
 
 static inline void
-QCBOREncode_AddTDateStringToMapN(QCBOREncodeContext *pMe,
-                                 const int64_t       nLabel,
-                                 const uint8_t       uTagRequirement,
-                                 const char         *szDate)
+QCBOREncode_AddTDateStringToMapN(QCBOREncodeContext          *pMe,
+                                 const int64_t                nLabel,
+                                 const enum QCBOREncodeTagReq uTagRequirement,
+                                 const char                  *szDate)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
    QCBOREncode_AddTDateString(pMe, uTagRequirement, szDate);
@@ -1171,9 +1175,9 @@
 
 
 static inline void
-QCBOREncode_AddTDaysString(QCBOREncodeContext *pMe,
-                           const uint8_t       uTagRequirement,
-                           const char         *szDate)
+QCBOREncode_AddTDaysString(QCBOREncodeContext          *pMe,
+                           const enum QCBOREncodeTagReq uTagRequirement,
+                           const char                  *szDate)
 {
    if(uTagRequirement == QCBOR_ENCODE_AS_TAG) {
       QCBOREncode_AddTagNumber(pMe, CBOR_TAG_DAYS_STRING);
@@ -1182,20 +1186,20 @@
 }
 
 static inline void
-QCBOREncode_AddTDaysStringToMapSZ(QCBOREncodeContext *pMe,
-                                  const char         *szLabel,
-                                  const uint8_t       uTagRequirement,
-                                  const char         *szDate)
+QCBOREncode_AddTDaysStringToMapSZ(QCBOREncodeContext          *pMe,
+                                  const char                  *szLabel,
+                                  const enum QCBOREncodeTagReq uTagRequirement,
+                                  const char                  *szDate)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddTDaysString(pMe, uTagRequirement, szDate);
 }
 
 static inline void
-QCBOREncode_AddTDaysStringToMapN(QCBOREncodeContext *pMe,
-                                 const int64_t       nLabel,
-                                 const uint8_t       uTagRequirement,
-                                 const char         *szDate)
+QCBOREncode_AddTDaysStringToMapN(QCBOREncodeContext          *pMe,
+                                 const int64_t                nLabel,
+                                 const enum QCBOREncodeTagReq uTagRequirement,
+                                 const char                  *szDate)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
    QCBOREncode_AddTDaysString(pMe, uTagRequirement, szDate);