// Helper method to serialize the data-blob type and flags
        public static void SerializeDataBlobTypeAndFlags(ref NativePrimitiveEncoder encoder, SerializedDataBlobKind blobType, byte flags)
        {
            // make sure that blobType fits in 2 bits and flags fits in 6 bits
            Debug.Assert(blobType < SerializedDataBlobKind.Limit);
            Debug.Assert((byte)blobType <= 2 && flags <= 0x3F ||
                         (byte)blobType == 3 && flags <= 1 ||
                         (byte)blobType > 3 && flags <= 7);
            byte encodedKindAndFlags;

            if (blobType <= (SerializedDataBlobKind)3)
            {
                encodedKindAndFlags = (byte)((byte)blobType | (flags << 2));
            }
            else
            {
                encodedKindAndFlags = (byte)(3 | (((byte)blobType - 3) << 3) | (flags << 5));
            }
            encoder.WriteByte(encodedKindAndFlags);
        }
 // Helper method to serialize the data-blob type and flags
 public void SerializeDataBlobTypeAndFlags(ref NativePrimitiveEncoder encoder, SerializedDataBlobKind blobType, byte flags)
 {
     // make sure that blobType fits in 2 bits and flags fits in 6 bits
     Debug.Assert(blobType < SerializedDataBlobKind.Limit);
     Debug.Assert((byte)blobType <= 2 && flags <= 0x3F ||
         (byte)blobType == 3 && flags <= 1 ||
         (byte)blobType > 3 && flags <= 7);
     byte encodedKindAndFlags;
     if (blobType <= (SerializedDataBlobKind)3)
     {
         encodedKindAndFlags = (byte)((byte)blobType | (flags << 2));
     }
     else
     {
         encodedKindAndFlags = (byte)(3 | (((byte)blobType - 3) << 3) | (flags << 5));
     }
     encoder.WriteByte(encodedKindAndFlags);
 }