1/*===-- clang-c/CXString.h - C Index strings --------------------*- C -*-===*\ 2|* *| 3|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| 4|* Exceptions. *| 5|* See https://llvm.org/LICENSE.txt for license information. *| 6|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| 7|* *| 8|*===----------------------------------------------------------------------===*| 9|* *| 10|* This header provides the interface to C Index strings. *| 11|* *| 12\*===----------------------------------------------------------------------===*/ 13 14#ifndef LLVM_CLANG_C_CXSTRING_H 15#define LLVM_CLANG_C_CXSTRING_H 16 17#include "clang-c/ExternC.h" 18#include "clang-c/Platform.h" 19 20LLVM_CLANG_C_EXTERN_C_BEGIN 21 22/** 23 * \defgroup CINDEX_STRING String manipulation routines 24 * \ingroup CINDEX 25 * 26 * @{ 27 */ 28 29/** 30 * A character string. 31 * 32 * The \c CXString type is used to return strings from the interface when 33 * the ownership of that string might differ from one call to the next. 34 * Use \c clang_getCString() to retrieve the string data and, once finished 35 * with the string data, call \c clang_disposeString() to free the string. 36 */ 37typedef struct { 38 const void *data; 39 unsigned private_flags; 40} CXString; 41 42typedef struct { 43 CXString *Strings; 44 unsigned Count; 45} CXStringSet; 46 47/** 48 * Retrieve the character data associated with the given string. 49 */ 50CINDEX_LINKAGE const char *clang_getCString(CXString string); 51 52/** 53 * Free the given string. 54 */ 55CINDEX_LINKAGE void clang_disposeString(CXString string); 56 57/** 58 * Free the given string set. 59 */ 60CINDEX_LINKAGE void clang_disposeStringSet(CXStringSet *set); 61 62/** 63 * @} 64 */ 65 66LLVM_CLANG_C_EXTERN_C_END 67 68#endif 69 70