Просмотр исходного кода

ncd: NCDVal: add NCDVal_IdStringId()

ambrop7 13 лет назад
Родитель
Сommit
fa7c214684
2 измененных файлов с 15 добавлено и 0 удалено
  1. 8 0
      ncd/NCDVal.c
  2. 7 0
      ncd/NCDVal.h

+ 8 - 0
ncd/NCDVal.c

@@ -683,6 +683,14 @@ void NCDVal_IdStringGet (NCDValRef idstring, NCD_string_id_t *out_string_id,
     *out_string_index = ids_e->string_index;
     *out_string_index = ids_e->string_index;
 }
 }
 
 
+NCD_string_id_t NCDVal_IdStringId (NCDValRef idstring)
+{
+    ASSERT(NCDVal_IsIdString(idstring))
+    
+    struct NCDVal__idstring *ids_e = NCDValMem__BufAt(idstring.mem, idstring.idx);
+    return ids_e->string_id;
+}
+
 int NCDVal_StringHasNulls (NCDValRef string)
 int NCDVal_StringHasNulls (NCDValRef string)
 {
 {
     ASSERT(NCDVal_IsString(string))
     ASSERT(NCDVal_IsString(string))

+ 7 - 0
ncd/NCDVal.h

@@ -361,6 +361,13 @@ size_t NCDVal_StringLength (NCDValRef string);
 void NCDVal_IdStringGet (NCDValRef idstring, NCD_string_id_t *out_string_id,
 void NCDVal_IdStringGet (NCDValRef idstring, NCD_string_id_t *out_string_id,
                          NCDStringIndex **out_string_index);
                          NCDStringIndex **out_string_index);
 
 
+/**
+ * Returns the string ID of an ID-string.
+ * The value given must be an ID-string value (which can be determined via
+ * {@link NCDVal_IsIdString}).
+ */
+NCD_string_id_t NCDVal_IdStringId (NCDValRef idstring);
+
 /**
 /**
  * Determines if the string value has any null bytes in its contents,
  * Determines if the string value has any null bytes in its contents,
  * i.e. that length > strlen().
  * i.e. that length > strlen().