| /*===-- clang-c/CXString.h - C Index strings --------------------*- C -*-===*\ |
| |* *| |
| |* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| |
| |* Exceptions. *| |
| |* See https://llvm.org/LICENSE.txt for license information. *| |
| |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |
| |* *| |
| |*===----------------------------------------------------------------------===*| |
| |* *| |
| |* This header provides the interface to C Index strings. *| |
| |* *| |
| \*===----------------------------------------------------------------------===*/ |
| |
| #ifndef LLVM_CLANG_C_CXSTRING_H |
| #define LLVM_CLANG_C_CXSTRING_H |
| |
| #include "clang-c/Platform.h" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /** |
| * \defgroup CINDEX_STRING String manipulation routines |
| * \ingroup CINDEX |
| * |
| * @{ |
| */ |
| |
| /** |
| * A character string. |
| * |
| * The \c CXString type is used to return strings from the interface when |
| * the ownership of that string might differ from one call to the next. |
| * Use \c clang_getCString() to retrieve the string data and, once finished |
| * with the string data, call \c clang_disposeString() to free the string. |
| */ |
| typedef struct { |
| const void *data; |
| unsigned private_flags; |
| } CXString; |
| |
| typedef struct { |
| CXString *Strings; |
| unsigned Count; |
| } CXStringSet; |
| |
| /** |
| * Retrieve the character data associated with the given string. |
| */ |
| CINDEX_LINKAGE const char *clang_getCString(CXString string); |
| |
| /** |
| * Free the given string. |
| */ |
| CINDEX_LINKAGE void clang_disposeString(CXString string); |
| |
| /** |
| * Free the given string set. |
| */ |
| CINDEX_LINKAGE void clang_disposeStringSet(CXStringSet *set); |
| |
| /** |
| * @} |
| */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif |
| |