16cdb10c1Sopenharmony_ci// SPDX-License-Identifier: Apache-2.0
26cdb10c1Sopenharmony_ci
36cdb10c1Sopenharmony_ci//! Rust bindings for `libclang`.
46cdb10c1Sopenharmony_ci//!
56cdb10c1Sopenharmony_ci//! ## [Documentation](https://docs.rs/clang-sys)
66cdb10c1Sopenharmony_ci//!
76cdb10c1Sopenharmony_ci//! Note that the documentation on https://docs.rs for this crate assumes usage
86cdb10c1Sopenharmony_ci//! of the `runtime` Cargo feature as well as the Cargo feature for the latest
96cdb10c1Sopenharmony_ci//! supported version of `libclang` (e.g., `clang_11_0`), neither of which are
106cdb10c1Sopenharmony_ci//! enabled by default.
116cdb10c1Sopenharmony_ci//!
126cdb10c1Sopenharmony_ci//! Due to the usage of the `runtime` Cargo feature, this documentation will
136cdb10c1Sopenharmony_ci//! contain some additional types and functions to manage a dynamically loaded
146cdb10c1Sopenharmony_ci//! `libclang` instance at runtime.
156cdb10c1Sopenharmony_ci//!
166cdb10c1Sopenharmony_ci//! Due to the usage of the Cargo feature for the latest supported version of
176cdb10c1Sopenharmony_ci//! `libclang`, this documentation will contain constants and functions that are
186cdb10c1Sopenharmony_ci//! not available in the oldest supported version of `libclang` (3.5). All of
196cdb10c1Sopenharmony_ci//! these types and functions have a documentation comment which specifies the
206cdb10c1Sopenharmony_ci//! minimum `libclang` version required to use the item.
216cdb10c1Sopenharmony_ci
226cdb10c1Sopenharmony_ci#![allow(non_camel_case_types, non_snake_case, non_upper_case_globals)]
236cdb10c1Sopenharmony_ci#![cfg_attr(feature = "cargo-clippy", allow(clippy::unreadable_literal))]
246cdb10c1Sopenharmony_ci
256cdb10c1Sopenharmony_ciextern crate glob;
266cdb10c1Sopenharmony_ciextern crate libc;
276cdb10c1Sopenharmony_ci#[cfg(feature = "runtime")]
286cdb10c1Sopenharmony_ciextern crate libloading;
296cdb10c1Sopenharmony_ci
306cdb10c1Sopenharmony_cipub mod support;
316cdb10c1Sopenharmony_ci
326cdb10c1Sopenharmony_ci#[macro_use]
336cdb10c1Sopenharmony_cimod link;
346cdb10c1Sopenharmony_ci
356cdb10c1Sopenharmony_ciuse std::mem;
366cdb10c1Sopenharmony_ci
376cdb10c1Sopenharmony_ciuse libc::*;
386cdb10c1Sopenharmony_ci
396cdb10c1Sopenharmony_cipub type CXClientData = *mut c_void;
406cdb10c1Sopenharmony_cipub type CXCursorVisitor = extern "C" fn(CXCursor, CXCursor, CXClientData) -> CXChildVisitResult;
416cdb10c1Sopenharmony_ci#[cfg(feature = "clang_3_7")]
426cdb10c1Sopenharmony_cipub type CXFieldVisitor = extern "C" fn(CXCursor, CXClientData) -> CXVisitorResult;
436cdb10c1Sopenharmony_cipub type CXInclusionVisitor = extern "C" fn(CXFile, *mut CXSourceLocation, c_uint, CXClientData);
446cdb10c1Sopenharmony_ci
456cdb10c1Sopenharmony_ci//================================================
466cdb10c1Sopenharmony_ci// Macros
476cdb10c1Sopenharmony_ci//================================================
486cdb10c1Sopenharmony_ci
496cdb10c1Sopenharmony_ci/// Defines a C enum as a series of constants.
506cdb10c1Sopenharmony_cimacro_rules! cenum {
516cdb10c1Sopenharmony_ci    ($(#[$meta:meta])* enum $name:ident {
526cdb10c1Sopenharmony_ci        $($(#[$vmeta:meta])* const $variant:ident = $value:expr), +,
536cdb10c1Sopenharmony_ci    }) => (
546cdb10c1Sopenharmony_ci        pub type $name = c_int;
556cdb10c1Sopenharmony_ci
566cdb10c1Sopenharmony_ci        $($(#[$vmeta])* pub const $variant: $name = $value;)+
576cdb10c1Sopenharmony_ci    );
586cdb10c1Sopenharmony_ci    ($(#[$meta:meta])* enum $name:ident {
596cdb10c1Sopenharmony_ci        $($(#[$vmeta:meta])* const $variant:ident = $value:expr); +;
606cdb10c1Sopenharmony_ci    }) => (
616cdb10c1Sopenharmony_ci        pub type $name = c_int;
626cdb10c1Sopenharmony_ci
636cdb10c1Sopenharmony_ci        $($(#[$vmeta])* pub const $variant: $name = $value;)+
646cdb10c1Sopenharmony_ci    );
656cdb10c1Sopenharmony_ci}
666cdb10c1Sopenharmony_ci
676cdb10c1Sopenharmony_ci/// Implements a zeroing implementation of `Default` for the supplied type.
686cdb10c1Sopenharmony_cimacro_rules! default {
696cdb10c1Sopenharmony_ci    (#[$meta:meta] $ty:ty) => {
706cdb10c1Sopenharmony_ci        #[$meta]
716cdb10c1Sopenharmony_ci        impl Default for $ty {
726cdb10c1Sopenharmony_ci            fn default() -> $ty {
736cdb10c1Sopenharmony_ci                unsafe { mem::zeroed() }
746cdb10c1Sopenharmony_ci            }
756cdb10c1Sopenharmony_ci        }
766cdb10c1Sopenharmony_ci    };
776cdb10c1Sopenharmony_ci
786cdb10c1Sopenharmony_ci    ($ty:ty) => {
796cdb10c1Sopenharmony_ci        impl Default for $ty {
806cdb10c1Sopenharmony_ci            fn default() -> $ty {
816cdb10c1Sopenharmony_ci                unsafe { mem::zeroed() }
826cdb10c1Sopenharmony_ci            }
836cdb10c1Sopenharmony_ci        }
846cdb10c1Sopenharmony_ci    };
856cdb10c1Sopenharmony_ci}
866cdb10c1Sopenharmony_ci
876cdb10c1Sopenharmony_ci//================================================
886cdb10c1Sopenharmony_ci// Enums
896cdb10c1Sopenharmony_ci//================================================
906cdb10c1Sopenharmony_ci
916cdb10c1Sopenharmony_cicenum! {
926cdb10c1Sopenharmony_ci    enum CXAvailabilityKind {
936cdb10c1Sopenharmony_ci        const CXAvailability_Available = 0,
946cdb10c1Sopenharmony_ci        const CXAvailability_Deprecated = 1,
956cdb10c1Sopenharmony_ci        const CXAvailability_NotAvailable = 2,
966cdb10c1Sopenharmony_ci        const CXAvailability_NotAccessible = 3,
976cdb10c1Sopenharmony_ci    }
986cdb10c1Sopenharmony_ci}
996cdb10c1Sopenharmony_ci
1006cdb10c1Sopenharmony_cicenum! {
1016cdb10c1Sopenharmony_ci    enum CXCallingConv {
1026cdb10c1Sopenharmony_ci        const CXCallingConv_Default = 0,
1036cdb10c1Sopenharmony_ci        const CXCallingConv_C = 1,
1046cdb10c1Sopenharmony_ci        const CXCallingConv_X86StdCall = 2,
1056cdb10c1Sopenharmony_ci        const CXCallingConv_X86FastCall = 3,
1066cdb10c1Sopenharmony_ci        const CXCallingConv_X86ThisCall = 4,
1076cdb10c1Sopenharmony_ci        const CXCallingConv_X86Pascal = 5,
1086cdb10c1Sopenharmony_ci        const CXCallingConv_AAPCS = 6,
1096cdb10c1Sopenharmony_ci        const CXCallingConv_AAPCS_VFP = 7,
1106cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 4.0 and later.
1116cdb10c1Sopenharmony_ci        const CXCallingConv_X86RegCall = 8,
1126cdb10c1Sopenharmony_ci        const CXCallingConv_IntelOclBicc = 9,
1136cdb10c1Sopenharmony_ci        const CXCallingConv_Win64 = 10,
1146cdb10c1Sopenharmony_ci        const CXCallingConv_X86_64Win64 = 10,
1156cdb10c1Sopenharmony_ci        const CXCallingConv_X86_64SysV = 11,
1166cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.6 and later.
1176cdb10c1Sopenharmony_ci        const CXCallingConv_X86VectorCall = 12,
1186cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
1196cdb10c1Sopenharmony_ci        const CXCallingConv_Swift = 13,
1206cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
1216cdb10c1Sopenharmony_ci        const CXCallingConv_PreserveMost = 14,
1226cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
1236cdb10c1Sopenharmony_ci        const CXCallingConv_PreserveAll = 15,
1246cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
1256cdb10c1Sopenharmony_ci        const CXCallingConv_AArch64VectorCall = 16,
1266cdb10c1Sopenharmony_ci        const CXCallingConv_Invalid = 100,
1276cdb10c1Sopenharmony_ci        const CXCallingConv_Unexposed = 200,
1286cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 13.0 and later.
1296cdb10c1Sopenharmony_ci        const CXCallingConv_SwiftAsync = 17,
1306cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
1316cdb10c1Sopenharmony_ci        const CXCallingConv_AArch64SVEPCS = 18,
1326cdb10c1Sopenharmony_ci    }
1336cdb10c1Sopenharmony_ci}
1346cdb10c1Sopenharmony_ci
1356cdb10c1Sopenharmony_cicenum! {
1366cdb10c1Sopenharmony_ci    enum CXChildVisitResult {
1376cdb10c1Sopenharmony_ci        const CXChildVisit_Break = 0,
1386cdb10c1Sopenharmony_ci        const CXChildVisit_Continue = 1,
1396cdb10c1Sopenharmony_ci        const CXChildVisit_Recurse = 2,
1406cdb10c1Sopenharmony_ci    }
1416cdb10c1Sopenharmony_ci}
1426cdb10c1Sopenharmony_ci
1436cdb10c1Sopenharmony_cicenum! {
1446cdb10c1Sopenharmony_ci    enum CXCommentInlineCommandRenderKind {
1456cdb10c1Sopenharmony_ci        const CXCommentInlineCommandRenderKind_Normal = 0,
1466cdb10c1Sopenharmony_ci        const CXCommentInlineCommandRenderKind_Bold = 1,
1476cdb10c1Sopenharmony_ci        const CXCommentInlineCommandRenderKind_Monospaced = 2,
1486cdb10c1Sopenharmony_ci        const CXCommentInlineCommandRenderKind_Emphasized = 3,
1496cdb10c1Sopenharmony_ci    }
1506cdb10c1Sopenharmony_ci}
1516cdb10c1Sopenharmony_ci
1526cdb10c1Sopenharmony_cicenum! {
1536cdb10c1Sopenharmony_ci    enum CXCommentKind {
1546cdb10c1Sopenharmony_ci        const CXComment_Null = 0,
1556cdb10c1Sopenharmony_ci        const CXComment_Text = 1,
1566cdb10c1Sopenharmony_ci        const CXComment_InlineCommand = 2,
1576cdb10c1Sopenharmony_ci        const CXComment_HTMLStartTag = 3,
1586cdb10c1Sopenharmony_ci        const CXComment_HTMLEndTag = 4,
1596cdb10c1Sopenharmony_ci        const CXComment_Paragraph = 5,
1606cdb10c1Sopenharmony_ci        const CXComment_BlockCommand = 6,
1616cdb10c1Sopenharmony_ci        const CXComment_ParamCommand = 7,
1626cdb10c1Sopenharmony_ci        const CXComment_TParamCommand = 8,
1636cdb10c1Sopenharmony_ci        const CXComment_VerbatimBlockCommand = 9,
1646cdb10c1Sopenharmony_ci        const CXComment_VerbatimBlockLine = 10,
1656cdb10c1Sopenharmony_ci        const CXComment_VerbatimLine = 11,
1666cdb10c1Sopenharmony_ci        const CXComment_FullComment = 12,
1676cdb10c1Sopenharmony_ci    }
1686cdb10c1Sopenharmony_ci}
1696cdb10c1Sopenharmony_ci
1706cdb10c1Sopenharmony_cicenum! {
1716cdb10c1Sopenharmony_ci    enum CXCommentParamPassDirection {
1726cdb10c1Sopenharmony_ci        const CXCommentParamPassDirection_In = 0,
1736cdb10c1Sopenharmony_ci        const CXCommentParamPassDirection_Out = 1,
1746cdb10c1Sopenharmony_ci        const CXCommentParamPassDirection_InOut = 2,
1756cdb10c1Sopenharmony_ci    }
1766cdb10c1Sopenharmony_ci}
1776cdb10c1Sopenharmony_ci
1786cdb10c1Sopenharmony_cicenum! {
1796cdb10c1Sopenharmony_ci    enum CXCompilationDatabase_Error {
1806cdb10c1Sopenharmony_ci        const CXCompilationDatabase_NoError = 0,
1816cdb10c1Sopenharmony_ci        const CXCompilationDatabase_CanNotLoadDatabase = 1,
1826cdb10c1Sopenharmony_ci    }
1836cdb10c1Sopenharmony_ci}
1846cdb10c1Sopenharmony_ci
1856cdb10c1Sopenharmony_cicenum! {
1866cdb10c1Sopenharmony_ci    enum CXCompletionChunkKind {
1876cdb10c1Sopenharmony_ci        const CXCompletionChunk_Optional = 0,
1886cdb10c1Sopenharmony_ci        const CXCompletionChunk_TypedText = 1,
1896cdb10c1Sopenharmony_ci        const CXCompletionChunk_Text = 2,
1906cdb10c1Sopenharmony_ci        const CXCompletionChunk_Placeholder = 3,
1916cdb10c1Sopenharmony_ci        const CXCompletionChunk_Informative = 4,
1926cdb10c1Sopenharmony_ci        const CXCompletionChunk_CurrentParameter = 5,
1936cdb10c1Sopenharmony_ci        const CXCompletionChunk_LeftParen = 6,
1946cdb10c1Sopenharmony_ci        const CXCompletionChunk_RightParen = 7,
1956cdb10c1Sopenharmony_ci        const CXCompletionChunk_LeftBracket = 8,
1966cdb10c1Sopenharmony_ci        const CXCompletionChunk_RightBracket = 9,
1976cdb10c1Sopenharmony_ci        const CXCompletionChunk_LeftBrace = 10,
1986cdb10c1Sopenharmony_ci        const CXCompletionChunk_RightBrace = 11,
1996cdb10c1Sopenharmony_ci        const CXCompletionChunk_LeftAngle = 12,
2006cdb10c1Sopenharmony_ci        const CXCompletionChunk_RightAngle = 13,
2016cdb10c1Sopenharmony_ci        const CXCompletionChunk_Comma = 14,
2026cdb10c1Sopenharmony_ci        const CXCompletionChunk_ResultType = 15,
2036cdb10c1Sopenharmony_ci        const CXCompletionChunk_Colon = 16,
2046cdb10c1Sopenharmony_ci        const CXCompletionChunk_SemiColon = 17,
2056cdb10c1Sopenharmony_ci        const CXCompletionChunk_Equal = 18,
2066cdb10c1Sopenharmony_ci        const CXCompletionChunk_HorizontalSpace = 19,
2076cdb10c1Sopenharmony_ci        const CXCompletionChunk_VerticalSpace = 20,
2086cdb10c1Sopenharmony_ci    }
2096cdb10c1Sopenharmony_ci}
2106cdb10c1Sopenharmony_ci
2116cdb10c1Sopenharmony_cicenum! {
2126cdb10c1Sopenharmony_ci    enum CXCursorKind {
2136cdb10c1Sopenharmony_ci        const CXCursor_UnexposedDecl = 1,
2146cdb10c1Sopenharmony_ci        const CXCursor_StructDecl = 2,
2156cdb10c1Sopenharmony_ci        const CXCursor_UnionDecl = 3,
2166cdb10c1Sopenharmony_ci        const CXCursor_ClassDecl = 4,
2176cdb10c1Sopenharmony_ci        const CXCursor_EnumDecl = 5,
2186cdb10c1Sopenharmony_ci        const CXCursor_FieldDecl = 6,
2196cdb10c1Sopenharmony_ci        const CXCursor_EnumConstantDecl = 7,
2206cdb10c1Sopenharmony_ci        const CXCursor_FunctionDecl = 8,
2216cdb10c1Sopenharmony_ci        const CXCursor_VarDecl = 9,
2226cdb10c1Sopenharmony_ci        const CXCursor_ParmDecl = 10,
2236cdb10c1Sopenharmony_ci        const CXCursor_ObjCInterfaceDecl = 11,
2246cdb10c1Sopenharmony_ci        const CXCursor_ObjCCategoryDecl = 12,
2256cdb10c1Sopenharmony_ci        const CXCursor_ObjCProtocolDecl = 13,
2266cdb10c1Sopenharmony_ci        const CXCursor_ObjCPropertyDecl = 14,
2276cdb10c1Sopenharmony_ci        const CXCursor_ObjCIvarDecl = 15,
2286cdb10c1Sopenharmony_ci        const CXCursor_ObjCInstanceMethodDecl = 16,
2296cdb10c1Sopenharmony_ci        const CXCursor_ObjCClassMethodDecl = 17,
2306cdb10c1Sopenharmony_ci        const CXCursor_ObjCImplementationDecl = 18,
2316cdb10c1Sopenharmony_ci        const CXCursor_ObjCCategoryImplDecl = 19,
2326cdb10c1Sopenharmony_ci        const CXCursor_TypedefDecl = 20,
2336cdb10c1Sopenharmony_ci        const CXCursor_CXXMethod = 21,
2346cdb10c1Sopenharmony_ci        const CXCursor_Namespace = 22,
2356cdb10c1Sopenharmony_ci        const CXCursor_LinkageSpec = 23,
2366cdb10c1Sopenharmony_ci        const CXCursor_Constructor = 24,
2376cdb10c1Sopenharmony_ci        const CXCursor_Destructor = 25,
2386cdb10c1Sopenharmony_ci        const CXCursor_ConversionFunction = 26,
2396cdb10c1Sopenharmony_ci        const CXCursor_TemplateTypeParameter = 27,
2406cdb10c1Sopenharmony_ci        const CXCursor_NonTypeTemplateParameter = 28,
2416cdb10c1Sopenharmony_ci        const CXCursor_TemplateTemplateParameter = 29,
2426cdb10c1Sopenharmony_ci        const CXCursor_FunctionTemplate = 30,
2436cdb10c1Sopenharmony_ci        const CXCursor_ClassTemplate = 31,
2446cdb10c1Sopenharmony_ci        const CXCursor_ClassTemplatePartialSpecialization = 32,
2456cdb10c1Sopenharmony_ci        const CXCursor_NamespaceAlias = 33,
2466cdb10c1Sopenharmony_ci        const CXCursor_UsingDirective = 34,
2476cdb10c1Sopenharmony_ci        const CXCursor_UsingDeclaration = 35,
2486cdb10c1Sopenharmony_ci        const CXCursor_TypeAliasDecl = 36,
2496cdb10c1Sopenharmony_ci        const CXCursor_ObjCSynthesizeDecl = 37,
2506cdb10c1Sopenharmony_ci        const CXCursor_ObjCDynamicDecl = 38,
2516cdb10c1Sopenharmony_ci        const CXCursor_CXXAccessSpecifier = 39,
2526cdb10c1Sopenharmony_ci        const CXCursor_ObjCSuperClassRef = 40,
2536cdb10c1Sopenharmony_ci        const CXCursor_ObjCProtocolRef = 41,
2546cdb10c1Sopenharmony_ci        const CXCursor_ObjCClassRef = 42,
2556cdb10c1Sopenharmony_ci        const CXCursor_TypeRef = 43,
2566cdb10c1Sopenharmony_ci        const CXCursor_CXXBaseSpecifier = 44,
2576cdb10c1Sopenharmony_ci        const CXCursor_TemplateRef = 45,
2586cdb10c1Sopenharmony_ci        const CXCursor_NamespaceRef = 46,
2596cdb10c1Sopenharmony_ci        const CXCursor_MemberRef = 47,
2606cdb10c1Sopenharmony_ci        const CXCursor_LabelRef = 48,
2616cdb10c1Sopenharmony_ci        const CXCursor_OverloadedDeclRef = 49,
2626cdb10c1Sopenharmony_ci        const CXCursor_VariableRef = 50,
2636cdb10c1Sopenharmony_ci        const CXCursor_InvalidFile = 70,
2646cdb10c1Sopenharmony_ci        const CXCursor_NoDeclFound = 71,
2656cdb10c1Sopenharmony_ci        const CXCursor_NotImplemented = 72,
2666cdb10c1Sopenharmony_ci        const CXCursor_InvalidCode = 73,
2676cdb10c1Sopenharmony_ci        const CXCursor_UnexposedExpr = 100,
2686cdb10c1Sopenharmony_ci        const CXCursor_DeclRefExpr = 101,
2696cdb10c1Sopenharmony_ci        const CXCursor_MemberRefExpr = 102,
2706cdb10c1Sopenharmony_ci        const CXCursor_CallExpr = 103,
2716cdb10c1Sopenharmony_ci        const CXCursor_ObjCMessageExpr = 104,
2726cdb10c1Sopenharmony_ci        const CXCursor_BlockExpr = 105,
2736cdb10c1Sopenharmony_ci        const CXCursor_IntegerLiteral = 106,
2746cdb10c1Sopenharmony_ci        const CXCursor_FloatingLiteral = 107,
2756cdb10c1Sopenharmony_ci        const CXCursor_ImaginaryLiteral = 108,
2766cdb10c1Sopenharmony_ci        const CXCursor_StringLiteral = 109,
2776cdb10c1Sopenharmony_ci        const CXCursor_CharacterLiteral = 110,
2786cdb10c1Sopenharmony_ci        const CXCursor_ParenExpr = 111,
2796cdb10c1Sopenharmony_ci        const CXCursor_UnaryOperator = 112,
2806cdb10c1Sopenharmony_ci        const CXCursor_ArraySubscriptExpr = 113,
2816cdb10c1Sopenharmony_ci        const CXCursor_BinaryOperator = 114,
2826cdb10c1Sopenharmony_ci        const CXCursor_CompoundAssignOperator = 115,
2836cdb10c1Sopenharmony_ci        const CXCursor_ConditionalOperator = 116,
2846cdb10c1Sopenharmony_ci        const CXCursor_CStyleCastExpr = 117,
2856cdb10c1Sopenharmony_ci        const CXCursor_CompoundLiteralExpr = 118,
2866cdb10c1Sopenharmony_ci        const CXCursor_InitListExpr = 119,
2876cdb10c1Sopenharmony_ci        const CXCursor_AddrLabelExpr = 120,
2886cdb10c1Sopenharmony_ci        const CXCursor_StmtExpr = 121,
2896cdb10c1Sopenharmony_ci        const CXCursor_GenericSelectionExpr = 122,
2906cdb10c1Sopenharmony_ci        const CXCursor_GNUNullExpr = 123,
2916cdb10c1Sopenharmony_ci        const CXCursor_CXXStaticCastExpr = 124,
2926cdb10c1Sopenharmony_ci        const CXCursor_CXXDynamicCastExpr = 125,
2936cdb10c1Sopenharmony_ci        const CXCursor_CXXReinterpretCastExpr = 126,
2946cdb10c1Sopenharmony_ci        const CXCursor_CXXConstCastExpr = 127,
2956cdb10c1Sopenharmony_ci        const CXCursor_CXXFunctionalCastExpr = 128,
2966cdb10c1Sopenharmony_ci        const CXCursor_CXXTypeidExpr = 129,
2976cdb10c1Sopenharmony_ci        const CXCursor_CXXBoolLiteralExpr = 130,
2986cdb10c1Sopenharmony_ci        const CXCursor_CXXNullPtrLiteralExpr = 131,
2996cdb10c1Sopenharmony_ci        const CXCursor_CXXThisExpr = 132,
3006cdb10c1Sopenharmony_ci        const CXCursor_CXXThrowExpr = 133,
3016cdb10c1Sopenharmony_ci        const CXCursor_CXXNewExpr = 134,
3026cdb10c1Sopenharmony_ci        const CXCursor_CXXDeleteExpr = 135,
3036cdb10c1Sopenharmony_ci        const CXCursor_UnaryExpr = 136,
3046cdb10c1Sopenharmony_ci        const CXCursor_ObjCStringLiteral = 137,
3056cdb10c1Sopenharmony_ci        const CXCursor_ObjCEncodeExpr = 138,
3066cdb10c1Sopenharmony_ci        const CXCursor_ObjCSelectorExpr = 139,
3076cdb10c1Sopenharmony_ci        const CXCursor_ObjCProtocolExpr = 140,
3086cdb10c1Sopenharmony_ci        const CXCursor_ObjCBridgedCastExpr = 141,
3096cdb10c1Sopenharmony_ci        const CXCursor_PackExpansionExpr = 142,
3106cdb10c1Sopenharmony_ci        const CXCursor_SizeOfPackExpr = 143,
3116cdb10c1Sopenharmony_ci        const CXCursor_LambdaExpr = 144,
3126cdb10c1Sopenharmony_ci        const CXCursor_ObjCBoolLiteralExpr = 145,
3136cdb10c1Sopenharmony_ci        const CXCursor_ObjCSelfExpr = 146,
3146cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.8 and later.
3156cdb10c1Sopenharmony_ci        const CXCursor_OMPArraySectionExpr = 147,
3166cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
3176cdb10c1Sopenharmony_ci        const CXCursor_ObjCAvailabilityCheckExpr = 148,
3186cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 7.0 and later.
3196cdb10c1Sopenharmony_ci        const CXCursor_FixedPointLiteral = 149,
3206cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 12.0 and later.
3216cdb10c1Sopenharmony_ci        const CXCursor_OMPArrayShapingExpr = 150,
3226cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 12.0 and later.
3236cdb10c1Sopenharmony_ci        const CXCursor_OMPIteratorExpr = 151,
3246cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 12.0 and later.
3256cdb10c1Sopenharmony_ci        const CXCursor_CXXAddrspaceCastExpr = 152,
3266cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
3276cdb10c1Sopenharmony_ci        const CXCursor_ConceptSpecializationExpr = 153,
3286cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
3296cdb10c1Sopenharmony_ci        const CXCursor_RequiresExpr = 154,
3306cdb10c1Sopenharmony_ci        const CXCursor_UnexposedStmt = 200,
3316cdb10c1Sopenharmony_ci        const CXCursor_LabelStmt = 201,
3326cdb10c1Sopenharmony_ci        const CXCursor_CompoundStmt = 202,
3336cdb10c1Sopenharmony_ci        const CXCursor_CaseStmt = 203,
3346cdb10c1Sopenharmony_ci        const CXCursor_DefaultStmt = 204,
3356cdb10c1Sopenharmony_ci        const CXCursor_IfStmt = 205,
3366cdb10c1Sopenharmony_ci        const CXCursor_SwitchStmt = 206,
3376cdb10c1Sopenharmony_ci        const CXCursor_WhileStmt = 207,
3386cdb10c1Sopenharmony_ci        const CXCursor_DoStmt = 208,
3396cdb10c1Sopenharmony_ci        const CXCursor_ForStmt = 209,
3406cdb10c1Sopenharmony_ci        const CXCursor_GotoStmt = 210,
3416cdb10c1Sopenharmony_ci        const CXCursor_IndirectGotoStmt = 211,
3426cdb10c1Sopenharmony_ci        const CXCursor_ContinueStmt = 212,
3436cdb10c1Sopenharmony_ci        const CXCursor_BreakStmt = 213,
3446cdb10c1Sopenharmony_ci        const CXCursor_ReturnStmt = 214,
3456cdb10c1Sopenharmony_ci        /// Duplicate of `CXCursor_GccAsmStmt`.
3466cdb10c1Sopenharmony_ci        const CXCursor_AsmStmt = 215,
3476cdb10c1Sopenharmony_ci        const CXCursor_ObjCAtTryStmt = 216,
3486cdb10c1Sopenharmony_ci        const CXCursor_ObjCAtCatchStmt = 217,
3496cdb10c1Sopenharmony_ci        const CXCursor_ObjCAtFinallyStmt = 218,
3506cdb10c1Sopenharmony_ci        const CXCursor_ObjCAtThrowStmt = 219,
3516cdb10c1Sopenharmony_ci        const CXCursor_ObjCAtSynchronizedStmt = 220,
3526cdb10c1Sopenharmony_ci        const CXCursor_ObjCAutoreleasePoolStmt = 221,
3536cdb10c1Sopenharmony_ci        const CXCursor_ObjCForCollectionStmt = 222,
3546cdb10c1Sopenharmony_ci        const CXCursor_CXXCatchStmt = 223,
3556cdb10c1Sopenharmony_ci        const CXCursor_CXXTryStmt = 224,
3566cdb10c1Sopenharmony_ci        const CXCursor_CXXForRangeStmt = 225,
3576cdb10c1Sopenharmony_ci        const CXCursor_SEHTryStmt = 226,
3586cdb10c1Sopenharmony_ci        const CXCursor_SEHExceptStmt = 227,
3596cdb10c1Sopenharmony_ci        const CXCursor_SEHFinallyStmt = 228,
3606cdb10c1Sopenharmony_ci        const CXCursor_MSAsmStmt = 229,
3616cdb10c1Sopenharmony_ci        const CXCursor_NullStmt = 230,
3626cdb10c1Sopenharmony_ci        const CXCursor_DeclStmt = 231,
3636cdb10c1Sopenharmony_ci        const CXCursor_OMPParallelDirective = 232,
3646cdb10c1Sopenharmony_ci        const CXCursor_OMPSimdDirective = 233,
3656cdb10c1Sopenharmony_ci        const CXCursor_OMPForDirective = 234,
3666cdb10c1Sopenharmony_ci        const CXCursor_OMPSectionsDirective = 235,
3676cdb10c1Sopenharmony_ci        const CXCursor_OMPSectionDirective = 236,
3686cdb10c1Sopenharmony_ci        const CXCursor_OMPSingleDirective = 237,
3696cdb10c1Sopenharmony_ci        const CXCursor_OMPParallelForDirective = 238,
3706cdb10c1Sopenharmony_ci        const CXCursor_OMPParallelSectionsDirective = 239,
3716cdb10c1Sopenharmony_ci        const CXCursor_OMPTaskDirective = 240,
3726cdb10c1Sopenharmony_ci        const CXCursor_OMPMasterDirective = 241,
3736cdb10c1Sopenharmony_ci        const CXCursor_OMPCriticalDirective = 242,
3746cdb10c1Sopenharmony_ci        const CXCursor_OMPTaskyieldDirective = 243,
3756cdb10c1Sopenharmony_ci        const CXCursor_OMPBarrierDirective = 244,
3766cdb10c1Sopenharmony_ci        const CXCursor_OMPTaskwaitDirective = 245,
3776cdb10c1Sopenharmony_ci        const CXCursor_OMPFlushDirective = 246,
3786cdb10c1Sopenharmony_ci        const CXCursor_SEHLeaveStmt = 247,
3796cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.6 and later.
3806cdb10c1Sopenharmony_ci        const CXCursor_OMPOrderedDirective = 248,
3816cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.6 and later.
3826cdb10c1Sopenharmony_ci        const CXCursor_OMPAtomicDirective = 249,
3836cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.6 and later.
3846cdb10c1Sopenharmony_ci        const CXCursor_OMPForSimdDirective = 250,
3856cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.6 and later.
3866cdb10c1Sopenharmony_ci        const CXCursor_OMPParallelForSimdDirective = 251,
3876cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.6 and later.
3886cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetDirective = 252,
3896cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.6 and later.
3906cdb10c1Sopenharmony_ci        const CXCursor_OMPTeamsDirective = 253,
3916cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.7 and later.
3926cdb10c1Sopenharmony_ci        const CXCursor_OMPTaskgroupDirective = 254,
3936cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.7 and later.
3946cdb10c1Sopenharmony_ci        const CXCursor_OMPCancellationPointDirective = 255,
3956cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.7 and later.
3966cdb10c1Sopenharmony_ci        const CXCursor_OMPCancelDirective = 256,
3976cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.8 and later.
3986cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetDataDirective = 257,
3996cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.8 and later.
4006cdb10c1Sopenharmony_ci        const CXCursor_OMPTaskLoopDirective = 258,
4016cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.8 and later.
4026cdb10c1Sopenharmony_ci        const CXCursor_OMPTaskLoopSimdDirective = 259,
4036cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.8 and later.
4046cdb10c1Sopenharmony_ci        const CXCursor_OMPDistributeDirective = 260,
4056cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
4066cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetEnterDataDirective = 261,
4076cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
4086cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetExitDataDirective = 262,
4096cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
4106cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetParallelDirective = 263,
4116cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
4126cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetParallelForDirective = 264,
4136cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
4146cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetUpdateDirective = 265,
4156cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
4166cdb10c1Sopenharmony_ci        const CXCursor_OMPDistributeParallelForDirective = 266,
4176cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
4186cdb10c1Sopenharmony_ci        const CXCursor_OMPDistributeParallelForSimdDirective = 267,
4196cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
4206cdb10c1Sopenharmony_ci        const CXCursor_OMPDistributeSimdDirective = 268,
4216cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
4226cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetParallelForSimdDirective = 269,
4236cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 4.0 and later.
4246cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetSimdDirective = 270,
4256cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 4.0 and later.
4266cdb10c1Sopenharmony_ci        const CXCursor_OMPTeamsDistributeDirective = 271,
4276cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 4.0 and later.
4286cdb10c1Sopenharmony_ci        const CXCursor_OMPTeamsDistributeSimdDirective = 272,
4296cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 4.0 and later.
4306cdb10c1Sopenharmony_ci        const CXCursor_OMPTeamsDistributeParallelForSimdDirective = 273,
4316cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 4.0 and later.
4326cdb10c1Sopenharmony_ci        const CXCursor_OMPTeamsDistributeParallelForDirective = 274,
4336cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 4.0 and later.
4346cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetTeamsDirective = 275,
4356cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 4.0 and later.
4366cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetTeamsDistributeDirective = 276,
4376cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 4.0 and later.
4386cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetTeamsDistributeParallelForDirective = 277,
4396cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 4.0 and later.
4406cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetTeamsDistributeParallelForSimdDirective = 278,
4416cdb10c1Sopenharmony_ci        /// Only producer by `libclang` 4.0 and later.
4426cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetTeamsDistributeSimdDirective = 279,
4436cdb10c1Sopenharmony_ci        /// Only produced by 'libclang' 9.0 and later.
4446cdb10c1Sopenharmony_ci        const CXCursor_BuiltinBitCastExpr = 280,
4456cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 10.0 and later.
4466cdb10c1Sopenharmony_ci        const CXCursor_OMPMasterTaskLoopDirective = 281,
4476cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 10.0 and later.
4486cdb10c1Sopenharmony_ci        const CXCursor_OMPParallelMasterTaskLoopDirective = 282,
4496cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 10.0 and later.
4506cdb10c1Sopenharmony_ci        const CXCursor_OMPMasterTaskLoopSimdDirective = 283,
4516cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 10.0 and later.
4526cdb10c1Sopenharmony_ci        const CXCursor_OMPParallelMasterTaskLoopSimdDirective = 284,
4536cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 10.0 and later.
4546cdb10c1Sopenharmony_ci        const CXCursor_OMPParallelMasterDirective = 285,
4556cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 11.0 and later.
4566cdb10c1Sopenharmony_ci        const CXCursor_OMPDepobjDirective = 286,
4576cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 11.0 and later.
4586cdb10c1Sopenharmony_ci        const CXCursor_OMPScanDirective = 287,
4596cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 13.0 and later.
4606cdb10c1Sopenharmony_ci        const CXCursor_OMPTileDirective = 288,
4616cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 13.0 and later.
4626cdb10c1Sopenharmony_ci        const CXCursor_OMPCanonicalLoop = 289,
4636cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 13.0 and later.
4646cdb10c1Sopenharmony_ci        const CXCursor_OMPInteropDirective = 290,
4656cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 13.0 and later.
4666cdb10c1Sopenharmony_ci        const CXCursor_OMPDispatchDirective = 291,
4676cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 13.0 and later.
4686cdb10c1Sopenharmony_ci        const CXCursor_OMPMaskedDirective = 292,
4696cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 13.0 and later.
4706cdb10c1Sopenharmony_ci        const CXCursor_OMPUnrollDirective = 293,
4716cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 14.0 and later.
4726cdb10c1Sopenharmony_ci        const CXCursor_OMPMetaDirective = 294,
4736cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 14.0 and later.
4746cdb10c1Sopenharmony_ci        const CXCursor_OMPGenericLoopDirective = 295,
4756cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
4766cdb10c1Sopenharmony_ci        const CXCursor_OMPTeamsGenericLoopDirective = 296,
4776cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
4786cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetTeamsGenericLoopDirective = 297,
4796cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
4806cdb10c1Sopenharmony_ci        const CXCursor_OMPParallelGenericLoopDirective = 298,
4816cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
4826cdb10c1Sopenharmony_ci        const CXCursor_OMPTargetParallelGenericLoopDirective = 299,
4836cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
4846cdb10c1Sopenharmony_ci        const CXCursor_OMPParallelMaskedDirective = 300,
4856cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
4866cdb10c1Sopenharmony_ci        const CXCursor_OMPMaskedTaskLoopDirective = 301,
4876cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
4886cdb10c1Sopenharmony_ci        const CXCursor_OMPMaskedTaskLoopSimdDirective = 302,
4896cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
4906cdb10c1Sopenharmony_ci        const CXCursor_OMPParallelMaskedTaskLoopDirective = 303,
4916cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
4926cdb10c1Sopenharmony_ci        const CXCursor_OMPParallelMaskedTaskLoopSimdDirective = 304,
4936cdb10c1Sopenharmony_ci        #[cfg(not(feature="clang_15_0"))]
4946cdb10c1Sopenharmony_ci        const CXCursor_TranslationUnit = 300,
4956cdb10c1Sopenharmony_ci        #[cfg(feature="clang_15_0")]
4966cdb10c1Sopenharmony_ci        const CXCursor_TranslationUnit = 350,
4976cdb10c1Sopenharmony_ci        const CXCursor_UnexposedAttr = 400,
4986cdb10c1Sopenharmony_ci        const CXCursor_IBActionAttr = 401,
4996cdb10c1Sopenharmony_ci        const CXCursor_IBOutletAttr = 402,
5006cdb10c1Sopenharmony_ci        const CXCursor_IBOutletCollectionAttr = 403,
5016cdb10c1Sopenharmony_ci        const CXCursor_CXXFinalAttr = 404,
5026cdb10c1Sopenharmony_ci        const CXCursor_CXXOverrideAttr = 405,
5036cdb10c1Sopenharmony_ci        const CXCursor_AnnotateAttr = 406,
5046cdb10c1Sopenharmony_ci        const CXCursor_AsmLabelAttr = 407,
5056cdb10c1Sopenharmony_ci        const CXCursor_PackedAttr = 408,
5066cdb10c1Sopenharmony_ci        const CXCursor_PureAttr = 409,
5076cdb10c1Sopenharmony_ci        const CXCursor_ConstAttr = 410,
5086cdb10c1Sopenharmony_ci        const CXCursor_NoDuplicateAttr = 411,
5096cdb10c1Sopenharmony_ci        const CXCursor_CUDAConstantAttr = 412,
5106cdb10c1Sopenharmony_ci        const CXCursor_CUDADeviceAttr = 413,
5116cdb10c1Sopenharmony_ci        const CXCursor_CUDAGlobalAttr = 414,
5126cdb10c1Sopenharmony_ci        const CXCursor_CUDAHostAttr = 415,
5136cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.6 and later.
5146cdb10c1Sopenharmony_ci        const CXCursor_CUDASharedAttr = 416,
5156cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.8 and later.
5166cdb10c1Sopenharmony_ci        const CXCursor_VisibilityAttr = 417,
5176cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.8 and later.
5186cdb10c1Sopenharmony_ci        const CXCursor_DLLExport = 418,
5196cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.8 and later.
5206cdb10c1Sopenharmony_ci        const CXCursor_DLLImport = 419,
5216cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5226cdb10c1Sopenharmony_ci        const CXCursor_NSReturnsRetained = 420,
5236cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5246cdb10c1Sopenharmony_ci        const CXCursor_NSReturnsNotRetained = 421,
5256cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5266cdb10c1Sopenharmony_ci        const CXCursor_NSReturnsAutoreleased = 422,
5276cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5286cdb10c1Sopenharmony_ci        const CXCursor_NSConsumesSelf = 423,
5296cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5306cdb10c1Sopenharmony_ci        const CXCursor_NSConsumed = 424,
5316cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5326cdb10c1Sopenharmony_ci        const CXCursor_ObjCException = 425,
5336cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5346cdb10c1Sopenharmony_ci        const CXCursor_ObjCNSObject = 426,
5356cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5366cdb10c1Sopenharmony_ci        const CXCursor_ObjCIndependentClass = 427,
5376cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5386cdb10c1Sopenharmony_ci        const CXCursor_ObjCPreciseLifetime = 428,
5396cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5406cdb10c1Sopenharmony_ci        const CXCursor_ObjCReturnsInnerPointer = 429,
5416cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5426cdb10c1Sopenharmony_ci        const CXCursor_ObjCRequiresSuper = 430,
5436cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5446cdb10c1Sopenharmony_ci        const CXCursor_ObjCRootClass = 431,
5456cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5466cdb10c1Sopenharmony_ci        const CXCursor_ObjCSubclassingRestricted = 432,
5476cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5486cdb10c1Sopenharmony_ci        const CXCursor_ObjCExplicitProtocolImpl = 433,
5496cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5506cdb10c1Sopenharmony_ci        const CXCursor_ObjCDesignatedInitializer = 434,
5516cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5526cdb10c1Sopenharmony_ci        const CXCursor_ObjCRuntimeVisible = 435,
5536cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5546cdb10c1Sopenharmony_ci        const CXCursor_ObjCBoxable = 436,
5556cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
5566cdb10c1Sopenharmony_ci        const CXCursor_FlagEnum = 437,
5576cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 9.0 and later.
5586cdb10c1Sopenharmony_ci        const CXCursor_ConvergentAttr  = 438,
5596cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 9.0 and later.
5606cdb10c1Sopenharmony_ci        const CXCursor_WarnUnusedAttr = 439,
5616cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 9.0 and later.
5626cdb10c1Sopenharmony_ci        const CXCursor_WarnUnusedResultAttr = 440,
5636cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 9.0 and later.
5646cdb10c1Sopenharmony_ci        const CXCursor_AlignedAttr = 441,
5656cdb10c1Sopenharmony_ci        const CXCursor_PreprocessingDirective = 500,
5666cdb10c1Sopenharmony_ci        const CXCursor_MacroDefinition = 501,
5676cdb10c1Sopenharmony_ci        /// Duplicate of `CXCursor_MacroInstantiation`.
5686cdb10c1Sopenharmony_ci        const CXCursor_MacroExpansion = 502,
5696cdb10c1Sopenharmony_ci        const CXCursor_InclusionDirective = 503,
5706cdb10c1Sopenharmony_ci        const CXCursor_ModuleImportDecl = 600,
5716cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.8 and later.
5726cdb10c1Sopenharmony_ci        const CXCursor_TypeAliasTemplateDecl = 601,
5736cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
5746cdb10c1Sopenharmony_ci        const CXCursor_StaticAssert = 602,
5756cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 4.0 and later.
5766cdb10c1Sopenharmony_ci        const CXCursor_FriendDecl = 603,
5776cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
5786cdb10c1Sopenharmony_ci        const CXCursor_ConceptDecl = 604,
5796cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.7 and later.
5806cdb10c1Sopenharmony_ci        const CXCursor_OverloadCandidate = 700,
5816cdb10c1Sopenharmony_ci    }
5826cdb10c1Sopenharmony_ci}
5836cdb10c1Sopenharmony_ci
5846cdb10c1Sopenharmony_cicenum! {
5856cdb10c1Sopenharmony_ci    /// Only available on `libclang` 5.0 and later.
5866cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_5_0")]
5876cdb10c1Sopenharmony_ci    enum CXCursor_ExceptionSpecificationKind {
5886cdb10c1Sopenharmony_ci        const CXCursor_ExceptionSpecificationKind_None = 0,
5896cdb10c1Sopenharmony_ci        const CXCursor_ExceptionSpecificationKind_DynamicNone = 1,
5906cdb10c1Sopenharmony_ci        const CXCursor_ExceptionSpecificationKind_Dynamic = 2,
5916cdb10c1Sopenharmony_ci        const CXCursor_ExceptionSpecificationKind_MSAny = 3,
5926cdb10c1Sopenharmony_ci        const CXCursor_ExceptionSpecificationKind_BasicNoexcept = 4,
5936cdb10c1Sopenharmony_ci        const CXCursor_ExceptionSpecificationKind_ComputedNoexcept = 5,
5946cdb10c1Sopenharmony_ci        const CXCursor_ExceptionSpecificationKind_Unevaluated = 6,
5956cdb10c1Sopenharmony_ci        const CXCursor_ExceptionSpecificationKind_Uninstantiated = 7,
5966cdb10c1Sopenharmony_ci        const CXCursor_ExceptionSpecificationKind_Unparsed = 8,
5976cdb10c1Sopenharmony_ci        /// Only available on `libclang` 9.0 and later.
5986cdb10c1Sopenharmony_ci        #[cfg(feature = "clang_9_0")]
5996cdb10c1Sopenharmony_ci        const CXCursor_ExceptionSpecificationKind_NoThrow = 9,
6006cdb10c1Sopenharmony_ci    }
6016cdb10c1Sopenharmony_ci}
6026cdb10c1Sopenharmony_ci
6036cdb10c1Sopenharmony_cicenum! {
6046cdb10c1Sopenharmony_ci    enum CXDiagnosticSeverity {
6056cdb10c1Sopenharmony_ci        const CXDiagnostic_Ignored = 0,
6066cdb10c1Sopenharmony_ci        const CXDiagnostic_Note = 1,
6076cdb10c1Sopenharmony_ci        const CXDiagnostic_Warning = 2,
6086cdb10c1Sopenharmony_ci        const CXDiagnostic_Error = 3,
6096cdb10c1Sopenharmony_ci        const CXDiagnostic_Fatal = 4,
6106cdb10c1Sopenharmony_ci    }
6116cdb10c1Sopenharmony_ci}
6126cdb10c1Sopenharmony_ci
6136cdb10c1Sopenharmony_cicenum! {
6146cdb10c1Sopenharmony_ci    enum CXErrorCode {
6156cdb10c1Sopenharmony_ci        const CXError_Success = 0,
6166cdb10c1Sopenharmony_ci        const CXError_Failure = 1,
6176cdb10c1Sopenharmony_ci        const CXError_Crashed = 2,
6186cdb10c1Sopenharmony_ci        const CXError_InvalidArguments = 3,
6196cdb10c1Sopenharmony_ci        const CXError_ASTReadError = 4,
6206cdb10c1Sopenharmony_ci    }
6216cdb10c1Sopenharmony_ci}
6226cdb10c1Sopenharmony_ci
6236cdb10c1Sopenharmony_cicenum! {
6246cdb10c1Sopenharmony_ci    enum CXEvalResultKind {
6256cdb10c1Sopenharmony_ci        const CXEval_UnExposed = 0,
6266cdb10c1Sopenharmony_ci        const CXEval_Int = 1 ,
6276cdb10c1Sopenharmony_ci        const CXEval_Float = 2,
6286cdb10c1Sopenharmony_ci        const CXEval_ObjCStrLiteral = 3,
6296cdb10c1Sopenharmony_ci        const CXEval_StrLiteral = 4,
6306cdb10c1Sopenharmony_ci        const CXEval_CFStr = 5,
6316cdb10c1Sopenharmony_ci        const CXEval_Other = 6,
6326cdb10c1Sopenharmony_ci    }
6336cdb10c1Sopenharmony_ci}
6346cdb10c1Sopenharmony_ci
6356cdb10c1Sopenharmony_cicenum! {
6366cdb10c1Sopenharmony_ci    enum CXIdxAttrKind {
6376cdb10c1Sopenharmony_ci        const CXIdxAttr_Unexposed = 0,
6386cdb10c1Sopenharmony_ci        const CXIdxAttr_IBAction = 1,
6396cdb10c1Sopenharmony_ci        const CXIdxAttr_IBOutlet = 2,
6406cdb10c1Sopenharmony_ci        const CXIdxAttr_IBOutletCollection = 3,
6416cdb10c1Sopenharmony_ci    }
6426cdb10c1Sopenharmony_ci}
6436cdb10c1Sopenharmony_ci
6446cdb10c1Sopenharmony_cicenum! {
6456cdb10c1Sopenharmony_ci    enum CXIdxEntityCXXTemplateKind {
6466cdb10c1Sopenharmony_ci        const CXIdxEntity_NonTemplate = 0,
6476cdb10c1Sopenharmony_ci        const CXIdxEntity_Template = 1,
6486cdb10c1Sopenharmony_ci        const CXIdxEntity_TemplatePartialSpecialization = 2,
6496cdb10c1Sopenharmony_ci        const CXIdxEntity_TemplateSpecialization = 3,
6506cdb10c1Sopenharmony_ci    }
6516cdb10c1Sopenharmony_ci}
6526cdb10c1Sopenharmony_ci
6536cdb10c1Sopenharmony_cicenum! {
6546cdb10c1Sopenharmony_ci    enum CXIdxEntityKind {
6556cdb10c1Sopenharmony_ci        const CXIdxEntity_Unexposed = 0,
6566cdb10c1Sopenharmony_ci        const CXIdxEntity_Typedef = 1,
6576cdb10c1Sopenharmony_ci        const CXIdxEntity_Function = 2,
6586cdb10c1Sopenharmony_ci        const CXIdxEntity_Variable = 3,
6596cdb10c1Sopenharmony_ci        const CXIdxEntity_Field = 4,
6606cdb10c1Sopenharmony_ci        const CXIdxEntity_EnumConstant = 5,
6616cdb10c1Sopenharmony_ci        const CXIdxEntity_ObjCClass = 6,
6626cdb10c1Sopenharmony_ci        const CXIdxEntity_ObjCProtocol = 7,
6636cdb10c1Sopenharmony_ci        const CXIdxEntity_ObjCCategory = 8,
6646cdb10c1Sopenharmony_ci        const CXIdxEntity_ObjCInstanceMethod = 9,
6656cdb10c1Sopenharmony_ci        const CXIdxEntity_ObjCClassMethod = 10,
6666cdb10c1Sopenharmony_ci        const CXIdxEntity_ObjCProperty = 11,
6676cdb10c1Sopenharmony_ci        const CXIdxEntity_ObjCIvar = 12,
6686cdb10c1Sopenharmony_ci        const CXIdxEntity_Enum = 13,
6696cdb10c1Sopenharmony_ci        const CXIdxEntity_Struct = 14,
6706cdb10c1Sopenharmony_ci        const CXIdxEntity_Union = 15,
6716cdb10c1Sopenharmony_ci        const CXIdxEntity_CXXClass = 16,
6726cdb10c1Sopenharmony_ci        const CXIdxEntity_CXXNamespace = 17,
6736cdb10c1Sopenharmony_ci        const CXIdxEntity_CXXNamespaceAlias = 18,
6746cdb10c1Sopenharmony_ci        const CXIdxEntity_CXXStaticVariable = 19,
6756cdb10c1Sopenharmony_ci        const CXIdxEntity_CXXStaticMethod = 20,
6766cdb10c1Sopenharmony_ci        const CXIdxEntity_CXXInstanceMethod = 21,
6776cdb10c1Sopenharmony_ci        const CXIdxEntity_CXXConstructor = 22,
6786cdb10c1Sopenharmony_ci        const CXIdxEntity_CXXDestructor = 23,
6796cdb10c1Sopenharmony_ci        const CXIdxEntity_CXXConversionFunction = 24,
6806cdb10c1Sopenharmony_ci        const CXIdxEntity_CXXTypeAlias = 25,
6816cdb10c1Sopenharmony_ci        const CXIdxEntity_CXXInterface = 26,
6826cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
6836cdb10c1Sopenharmony_ci        const CXIdxEntity_CXXConcept = 27,
6846cdb10c1Sopenharmony_ci    }
6856cdb10c1Sopenharmony_ci}
6866cdb10c1Sopenharmony_ci
6876cdb10c1Sopenharmony_cicenum! {
6886cdb10c1Sopenharmony_ci    enum CXIdxEntityLanguage {
6896cdb10c1Sopenharmony_ci        const CXIdxEntityLang_None = 0,
6906cdb10c1Sopenharmony_ci        const CXIdxEntityLang_C = 1,
6916cdb10c1Sopenharmony_ci        const CXIdxEntityLang_ObjC = 2,
6926cdb10c1Sopenharmony_ci        const CXIdxEntityLang_CXX = 3,
6936cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
6946cdb10c1Sopenharmony_ci        const CXIdxEntityLang_Swift = 4,
6956cdb10c1Sopenharmony_ci    }
6966cdb10c1Sopenharmony_ci}
6976cdb10c1Sopenharmony_ci
6986cdb10c1Sopenharmony_cicenum! {
6996cdb10c1Sopenharmony_ci    enum CXIdxEntityRefKind {
7006cdb10c1Sopenharmony_ci        const CXIdxEntityRef_Direct = 1,
7016cdb10c1Sopenharmony_ci        const CXIdxEntityRef_Implicit = 2,
7026cdb10c1Sopenharmony_ci    }
7036cdb10c1Sopenharmony_ci}
7046cdb10c1Sopenharmony_ci
7056cdb10c1Sopenharmony_cicenum! {
7066cdb10c1Sopenharmony_ci    enum CXIdxObjCContainerKind {
7076cdb10c1Sopenharmony_ci        const CXIdxObjCContainer_ForwardRef = 0,
7086cdb10c1Sopenharmony_ci        const CXIdxObjCContainer_Interface = 1,
7096cdb10c1Sopenharmony_ci        const CXIdxObjCContainer_Implementation = 2,
7106cdb10c1Sopenharmony_ci    }
7116cdb10c1Sopenharmony_ci}
7126cdb10c1Sopenharmony_ci
7136cdb10c1Sopenharmony_cicenum! {
7146cdb10c1Sopenharmony_ci    enum CXLanguageKind {
7156cdb10c1Sopenharmony_ci        const CXLanguage_Invalid = 0,
7166cdb10c1Sopenharmony_ci        const CXLanguage_C = 1,
7176cdb10c1Sopenharmony_ci        const CXLanguage_ObjC = 2,
7186cdb10c1Sopenharmony_ci        const CXLanguage_CPlusPlus = 3,
7196cdb10c1Sopenharmony_ci    }
7206cdb10c1Sopenharmony_ci}
7216cdb10c1Sopenharmony_ci
7226cdb10c1Sopenharmony_cicenum! {
7236cdb10c1Sopenharmony_ci    enum CXLinkageKind {
7246cdb10c1Sopenharmony_ci        const CXLinkage_Invalid = 0,
7256cdb10c1Sopenharmony_ci        const CXLinkage_NoLinkage = 1,
7266cdb10c1Sopenharmony_ci        const CXLinkage_Internal = 2,
7276cdb10c1Sopenharmony_ci        const CXLinkage_UniqueExternal = 3,
7286cdb10c1Sopenharmony_ci        const CXLinkage_External = 4,
7296cdb10c1Sopenharmony_ci    }
7306cdb10c1Sopenharmony_ci}
7316cdb10c1Sopenharmony_ci
7326cdb10c1Sopenharmony_cicenum! {
7336cdb10c1Sopenharmony_ci    enum CXLoadDiag_Error {
7346cdb10c1Sopenharmony_ci        const CXLoadDiag_None = 0,
7356cdb10c1Sopenharmony_ci        const CXLoadDiag_Unknown = 1,
7366cdb10c1Sopenharmony_ci        const CXLoadDiag_CannotLoad = 2,
7376cdb10c1Sopenharmony_ci        const CXLoadDiag_InvalidFile = 3,
7386cdb10c1Sopenharmony_ci    }
7396cdb10c1Sopenharmony_ci}
7406cdb10c1Sopenharmony_ci
7416cdb10c1Sopenharmony_cicenum! {
7426cdb10c1Sopenharmony_ci    /// Only available on `libclang` 7.0 and later.
7436cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_7_0")]
7446cdb10c1Sopenharmony_ci    enum CXPrintingPolicyProperty {
7456cdb10c1Sopenharmony_ci        const CXPrintingPolicy_Indentation = 0,
7466cdb10c1Sopenharmony_ci        const CXPrintingPolicy_SuppressSpecifiers = 1,
7476cdb10c1Sopenharmony_ci        const CXPrintingPolicy_SuppressTagKeyword = 2,
7486cdb10c1Sopenharmony_ci        const CXPrintingPolicy_IncludeTagDefinition = 3,
7496cdb10c1Sopenharmony_ci        const CXPrintingPolicy_SuppressScope = 4,
7506cdb10c1Sopenharmony_ci        const CXPrintingPolicy_SuppressUnwrittenScope = 5,
7516cdb10c1Sopenharmony_ci        const CXPrintingPolicy_SuppressInitializers = 6,
7526cdb10c1Sopenharmony_ci        const CXPrintingPolicy_ConstantArraySizeAsWritten = 7,
7536cdb10c1Sopenharmony_ci        const CXPrintingPolicy_AnonymousTagLocations = 8,
7546cdb10c1Sopenharmony_ci        const CXPrintingPolicy_SuppressStrongLifetime = 9,
7556cdb10c1Sopenharmony_ci        const CXPrintingPolicy_SuppressLifetimeQualifiers = 10,
7566cdb10c1Sopenharmony_ci        const CXPrintingPolicy_SuppressTemplateArgsInCXXConstructors = 11,
7576cdb10c1Sopenharmony_ci        const CXPrintingPolicy_Bool = 12,
7586cdb10c1Sopenharmony_ci        const CXPrintingPolicy_Restrict = 13,
7596cdb10c1Sopenharmony_ci        const CXPrintingPolicy_Alignof = 14,
7606cdb10c1Sopenharmony_ci        const CXPrintingPolicy_UnderscoreAlignof = 15,
7616cdb10c1Sopenharmony_ci        const CXPrintingPolicy_UseVoidForZeroParams = 16,
7626cdb10c1Sopenharmony_ci        const CXPrintingPolicy_TerseOutput = 17,
7636cdb10c1Sopenharmony_ci        const CXPrintingPolicy_PolishForDeclaration = 18,
7646cdb10c1Sopenharmony_ci        const CXPrintingPolicy_Half = 19,
7656cdb10c1Sopenharmony_ci        const CXPrintingPolicy_MSWChar = 20,
7666cdb10c1Sopenharmony_ci        const CXPrintingPolicy_IncludeNewlines = 21,
7676cdb10c1Sopenharmony_ci        const CXPrintingPolicy_MSVCFormatting = 22,
7686cdb10c1Sopenharmony_ci        const CXPrintingPolicy_ConstantsAsWritten = 23,
7696cdb10c1Sopenharmony_ci        const CXPrintingPolicy_SuppressImplicitBase = 24,
7706cdb10c1Sopenharmony_ci        const CXPrintingPolicy_FullyQualifiedName = 25,
7716cdb10c1Sopenharmony_ci    }
7726cdb10c1Sopenharmony_ci}
7736cdb10c1Sopenharmony_ci
7746cdb10c1Sopenharmony_cicenum! {
7756cdb10c1Sopenharmony_ci    enum CXRefQualifierKind {
7766cdb10c1Sopenharmony_ci        const CXRefQualifier_None = 0,
7776cdb10c1Sopenharmony_ci        const CXRefQualifier_LValue = 1,
7786cdb10c1Sopenharmony_ci        const CXRefQualifier_RValue = 2,
7796cdb10c1Sopenharmony_ci    }
7806cdb10c1Sopenharmony_ci}
7816cdb10c1Sopenharmony_ci
7826cdb10c1Sopenharmony_cicenum! {
7836cdb10c1Sopenharmony_ci    enum CXResult {
7846cdb10c1Sopenharmony_ci        const CXResult_Success = 0,
7856cdb10c1Sopenharmony_ci        const CXResult_Invalid = 1,
7866cdb10c1Sopenharmony_ci        const CXResult_VisitBreak = 2,
7876cdb10c1Sopenharmony_ci    }
7886cdb10c1Sopenharmony_ci}
7896cdb10c1Sopenharmony_ci
7906cdb10c1Sopenharmony_cicenum! {
7916cdb10c1Sopenharmony_ci    enum CXSaveError {
7926cdb10c1Sopenharmony_ci        const CXSaveError_None = 0,
7936cdb10c1Sopenharmony_ci        const CXSaveError_Unknown = 1,
7946cdb10c1Sopenharmony_ci        const CXSaveError_TranslationErrors = 2,
7956cdb10c1Sopenharmony_ci        const CXSaveError_InvalidTU = 3,
7966cdb10c1Sopenharmony_ci    }
7976cdb10c1Sopenharmony_ci}
7986cdb10c1Sopenharmony_ci
7996cdb10c1Sopenharmony_cicenum! {
8006cdb10c1Sopenharmony_ci    /// Only available on `libclang` 6.0 and later.
8016cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_6_0")]
8026cdb10c1Sopenharmony_ci    enum CXTLSKind {
8036cdb10c1Sopenharmony_ci        const CXTLS_None = 0,
8046cdb10c1Sopenharmony_ci        const CXTLS_Dynamic = 1,
8056cdb10c1Sopenharmony_ci        const CXTLS_Static = 2,
8066cdb10c1Sopenharmony_ci    }
8076cdb10c1Sopenharmony_ci}
8086cdb10c1Sopenharmony_ci
8096cdb10c1Sopenharmony_cicenum! {
8106cdb10c1Sopenharmony_ci    enum CXTUResourceUsageKind {
8116cdb10c1Sopenharmony_ci        const CXTUResourceUsage_AST = 1,
8126cdb10c1Sopenharmony_ci        const CXTUResourceUsage_Identifiers = 2,
8136cdb10c1Sopenharmony_ci        const CXTUResourceUsage_Selectors = 3,
8146cdb10c1Sopenharmony_ci        const CXTUResourceUsage_GlobalCompletionResults = 4,
8156cdb10c1Sopenharmony_ci        const CXTUResourceUsage_SourceManagerContentCache = 5,
8166cdb10c1Sopenharmony_ci        const CXTUResourceUsage_AST_SideTables = 6,
8176cdb10c1Sopenharmony_ci        const CXTUResourceUsage_SourceManager_Membuffer_Malloc = 7,
8186cdb10c1Sopenharmony_ci        const CXTUResourceUsage_SourceManager_Membuffer_MMap = 8,
8196cdb10c1Sopenharmony_ci        const CXTUResourceUsage_ExternalASTSource_Membuffer_Malloc = 9,
8206cdb10c1Sopenharmony_ci        const CXTUResourceUsage_ExternalASTSource_Membuffer_MMap = 10,
8216cdb10c1Sopenharmony_ci        const CXTUResourceUsage_Preprocessor = 11,
8226cdb10c1Sopenharmony_ci        const CXTUResourceUsage_PreprocessingRecord = 12,
8236cdb10c1Sopenharmony_ci        const CXTUResourceUsage_SourceManager_DataStructures = 13,
8246cdb10c1Sopenharmony_ci        const CXTUResourceUsage_Preprocessor_HeaderSearch = 14,
8256cdb10c1Sopenharmony_ci    }
8266cdb10c1Sopenharmony_ci}
8276cdb10c1Sopenharmony_ci
8286cdb10c1Sopenharmony_cicenum! {
8296cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.6 and later.
8306cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_6")]
8316cdb10c1Sopenharmony_ci    enum CXTemplateArgumentKind {
8326cdb10c1Sopenharmony_ci        const CXTemplateArgumentKind_Null = 0,
8336cdb10c1Sopenharmony_ci        const CXTemplateArgumentKind_Type = 1,
8346cdb10c1Sopenharmony_ci        const CXTemplateArgumentKind_Declaration = 2,
8356cdb10c1Sopenharmony_ci        const CXTemplateArgumentKind_NullPtr = 3,
8366cdb10c1Sopenharmony_ci        const CXTemplateArgumentKind_Integral = 4,
8376cdb10c1Sopenharmony_ci        const CXTemplateArgumentKind_Template = 5,
8386cdb10c1Sopenharmony_ci        const CXTemplateArgumentKind_TemplateExpansion = 6,
8396cdb10c1Sopenharmony_ci        const CXTemplateArgumentKind_Expression = 7,
8406cdb10c1Sopenharmony_ci        const CXTemplateArgumentKind_Pack = 8,
8416cdb10c1Sopenharmony_ci        const CXTemplateArgumentKind_Invalid = 9,
8426cdb10c1Sopenharmony_ci    }
8436cdb10c1Sopenharmony_ci}
8446cdb10c1Sopenharmony_ci
8456cdb10c1Sopenharmony_cicenum! {
8466cdb10c1Sopenharmony_ci    enum CXTokenKind {
8476cdb10c1Sopenharmony_ci        const CXToken_Punctuation = 0,
8486cdb10c1Sopenharmony_ci        const CXToken_Keyword = 1,
8496cdb10c1Sopenharmony_ci        const CXToken_Identifier = 2,
8506cdb10c1Sopenharmony_ci        const CXToken_Literal = 3,
8516cdb10c1Sopenharmony_ci        const CXToken_Comment = 4,
8526cdb10c1Sopenharmony_ci    }
8536cdb10c1Sopenharmony_ci}
8546cdb10c1Sopenharmony_ci
8556cdb10c1Sopenharmony_cicenum! {
8566cdb10c1Sopenharmony_ci    enum CXTypeKind {
8576cdb10c1Sopenharmony_ci        const CXType_Invalid = 0,
8586cdb10c1Sopenharmony_ci        const CXType_Unexposed = 1,
8596cdb10c1Sopenharmony_ci        const CXType_Void = 2,
8606cdb10c1Sopenharmony_ci        const CXType_Bool = 3,
8616cdb10c1Sopenharmony_ci        const CXType_Char_U = 4,
8626cdb10c1Sopenharmony_ci        const CXType_UChar = 5,
8636cdb10c1Sopenharmony_ci        const CXType_Char16 = 6,
8646cdb10c1Sopenharmony_ci        const CXType_Char32 = 7,
8656cdb10c1Sopenharmony_ci        const CXType_UShort = 8,
8666cdb10c1Sopenharmony_ci        const CXType_UInt = 9,
8676cdb10c1Sopenharmony_ci        const CXType_ULong = 10,
8686cdb10c1Sopenharmony_ci        const CXType_ULongLong = 11,
8696cdb10c1Sopenharmony_ci        const CXType_UInt128 = 12,
8706cdb10c1Sopenharmony_ci        const CXType_Char_S = 13,
8716cdb10c1Sopenharmony_ci        const CXType_SChar = 14,
8726cdb10c1Sopenharmony_ci        const CXType_WChar = 15,
8736cdb10c1Sopenharmony_ci        const CXType_Short = 16,
8746cdb10c1Sopenharmony_ci        const CXType_Int = 17,
8756cdb10c1Sopenharmony_ci        const CXType_Long = 18,
8766cdb10c1Sopenharmony_ci        const CXType_LongLong = 19,
8776cdb10c1Sopenharmony_ci        const CXType_Int128 = 20,
8786cdb10c1Sopenharmony_ci        const CXType_Float = 21,
8796cdb10c1Sopenharmony_ci        const CXType_Double = 22,
8806cdb10c1Sopenharmony_ci        const CXType_LongDouble = 23,
8816cdb10c1Sopenharmony_ci        const CXType_NullPtr = 24,
8826cdb10c1Sopenharmony_ci        const CXType_Overload = 25,
8836cdb10c1Sopenharmony_ci        const CXType_Dependent = 26,
8846cdb10c1Sopenharmony_ci        const CXType_ObjCId = 27,
8856cdb10c1Sopenharmony_ci        const CXType_ObjCClass = 28,
8866cdb10c1Sopenharmony_ci        const CXType_ObjCSel = 29,
8876cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
8886cdb10c1Sopenharmony_ci        const CXType_Float128 = 30,
8896cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
8906cdb10c1Sopenharmony_ci        const CXType_Half = 31,
8916cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 6.0 and later.
8926cdb10c1Sopenharmony_ci        const CXType_Float16 = 32,
8936cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 7.0 and later.
8946cdb10c1Sopenharmony_ci        const CXType_ShortAccum = 33,
8956cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 7.0 and later.
8966cdb10c1Sopenharmony_ci        const CXType_Accum = 34,
8976cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 7.0 and later.
8986cdb10c1Sopenharmony_ci        const CXType_LongAccum = 35,
8996cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 7.0 and later.
9006cdb10c1Sopenharmony_ci        const CXType_UShortAccum = 36,
9016cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 7.0 and later.
9026cdb10c1Sopenharmony_ci        const CXType_UAccum = 37,
9036cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 7.0 and later.
9046cdb10c1Sopenharmony_ci        const CXType_ULongAccum = 38,
9056cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 11.0 and later.
9066cdb10c1Sopenharmony_ci        const CXType_BFloat16 = 39,
9076cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 14.0 and later.
9086cdb10c1Sopenharmony_ci        const CXType_Ibm128 = 40,
9096cdb10c1Sopenharmony_ci        const CXType_Complex = 100,
9106cdb10c1Sopenharmony_ci        const CXType_Pointer = 101,
9116cdb10c1Sopenharmony_ci        const CXType_BlockPointer = 102,
9126cdb10c1Sopenharmony_ci        const CXType_LValueReference = 103,
9136cdb10c1Sopenharmony_ci        const CXType_RValueReference = 104,
9146cdb10c1Sopenharmony_ci        const CXType_Record = 105,
9156cdb10c1Sopenharmony_ci        const CXType_Enum = 106,
9166cdb10c1Sopenharmony_ci        const CXType_Typedef = 107,
9176cdb10c1Sopenharmony_ci        const CXType_ObjCInterface = 108,
9186cdb10c1Sopenharmony_ci        const CXType_ObjCObjectPointer = 109,
9196cdb10c1Sopenharmony_ci        const CXType_FunctionNoProto = 110,
9206cdb10c1Sopenharmony_ci        const CXType_FunctionProto = 111,
9216cdb10c1Sopenharmony_ci        const CXType_ConstantArray = 112,
9226cdb10c1Sopenharmony_ci        const CXType_Vector = 113,
9236cdb10c1Sopenharmony_ci        const CXType_IncompleteArray = 114,
9246cdb10c1Sopenharmony_ci        const CXType_VariableArray = 115,
9256cdb10c1Sopenharmony_ci        const CXType_DependentSizedArray = 116,
9266cdb10c1Sopenharmony_ci        const CXType_MemberPointer = 117,
9276cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.8 and later.
9286cdb10c1Sopenharmony_ci        const CXType_Auto = 118,
9296cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 3.9 and later.
9306cdb10c1Sopenharmony_ci        const CXType_Elaborated = 119,
9316cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9326cdb10c1Sopenharmony_ci        const CXType_Pipe = 120,
9336cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9346cdb10c1Sopenharmony_ci        const CXType_OCLImage1dRO = 121,
9356cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9366cdb10c1Sopenharmony_ci        const CXType_OCLImage1dArrayRO = 122,
9376cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9386cdb10c1Sopenharmony_ci        const CXType_OCLImage1dBufferRO = 123,
9396cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9406cdb10c1Sopenharmony_ci        const CXType_OCLImage2dRO = 124,
9416cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9426cdb10c1Sopenharmony_ci        const CXType_OCLImage2dArrayRO = 125,
9436cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9446cdb10c1Sopenharmony_ci        const CXType_OCLImage2dDepthRO = 126,
9456cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9466cdb10c1Sopenharmony_ci        const CXType_OCLImage2dArrayDepthRO = 127,
9476cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9486cdb10c1Sopenharmony_ci        const CXType_OCLImage2dMSAARO = 128,
9496cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9506cdb10c1Sopenharmony_ci        const CXType_OCLImage2dArrayMSAARO = 129,
9516cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9526cdb10c1Sopenharmony_ci        const CXType_OCLImage2dMSAADepthRO = 130,
9536cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9546cdb10c1Sopenharmony_ci        const CXType_OCLImage2dArrayMSAADepthRO = 131,
9556cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9566cdb10c1Sopenharmony_ci        const CXType_OCLImage3dRO = 132,
9576cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9586cdb10c1Sopenharmony_ci        const CXType_OCLImage1dWO = 133,
9596cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9606cdb10c1Sopenharmony_ci        const CXType_OCLImage1dArrayWO = 134,
9616cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9626cdb10c1Sopenharmony_ci        const CXType_OCLImage1dBufferWO = 135,
9636cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9646cdb10c1Sopenharmony_ci        const CXType_OCLImage2dWO = 136,
9656cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9666cdb10c1Sopenharmony_ci        const CXType_OCLImage2dArrayWO = 137,
9676cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9686cdb10c1Sopenharmony_ci        const CXType_OCLImage2dDepthWO = 138,
9696cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9706cdb10c1Sopenharmony_ci        const CXType_OCLImage2dArrayDepthWO = 139,
9716cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9726cdb10c1Sopenharmony_ci        const CXType_OCLImage2dMSAAWO = 140,
9736cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9746cdb10c1Sopenharmony_ci        const CXType_OCLImage2dArrayMSAAWO = 141,
9756cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9766cdb10c1Sopenharmony_ci        const CXType_OCLImage2dMSAADepthWO = 142,
9776cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9786cdb10c1Sopenharmony_ci        const CXType_OCLImage2dArrayMSAADepthWO = 143,
9796cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9806cdb10c1Sopenharmony_ci        const CXType_OCLImage3dWO = 144,
9816cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9826cdb10c1Sopenharmony_ci        const CXType_OCLImage1dRW = 145,
9836cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9846cdb10c1Sopenharmony_ci        const CXType_OCLImage1dArrayRW = 146,
9856cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9866cdb10c1Sopenharmony_ci        const CXType_OCLImage1dBufferRW = 147,
9876cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9886cdb10c1Sopenharmony_ci        const CXType_OCLImage2dRW = 148,
9896cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9906cdb10c1Sopenharmony_ci        const CXType_OCLImage2dArrayRW = 149,
9916cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9926cdb10c1Sopenharmony_ci        const CXType_OCLImage2dDepthRW = 150,
9936cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9946cdb10c1Sopenharmony_ci        const CXType_OCLImage2dArrayDepthRW = 151,
9956cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9966cdb10c1Sopenharmony_ci        const CXType_OCLImage2dMSAARW = 152,
9976cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
9986cdb10c1Sopenharmony_ci        const CXType_OCLImage2dArrayMSAARW = 153,
9996cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
10006cdb10c1Sopenharmony_ci        const CXType_OCLImage2dMSAADepthRW = 154,
10016cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
10026cdb10c1Sopenharmony_ci        const CXType_OCLImage2dArrayMSAADepthRW = 155,
10036cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
10046cdb10c1Sopenharmony_ci        const CXType_OCLImage3dRW = 156,
10056cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
10066cdb10c1Sopenharmony_ci        const CXType_OCLSampler = 157,
10076cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
10086cdb10c1Sopenharmony_ci        const CXType_OCLEvent = 158,
10096cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
10106cdb10c1Sopenharmony_ci        const CXType_OCLQueue = 159,
10116cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 5.0 and later.
10126cdb10c1Sopenharmony_ci        const CXType_OCLReserveID = 160,
10136cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10146cdb10c1Sopenharmony_ci        const CXType_ObjCObject = 161,
10156cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10166cdb10c1Sopenharmony_ci        const CXType_ObjCTypeParam = 162,
10176cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10186cdb10c1Sopenharmony_ci        const CXType_Attributed = 163,
10196cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10206cdb10c1Sopenharmony_ci        const CXType_OCLIntelSubgroupAVCMcePayload = 164,
10216cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10226cdb10c1Sopenharmony_ci        const CXType_OCLIntelSubgroupAVCImePayload = 165,
10236cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10246cdb10c1Sopenharmony_ci        const CXType_OCLIntelSubgroupAVCRefPayload = 166,
10256cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10266cdb10c1Sopenharmony_ci        const CXType_OCLIntelSubgroupAVCSicPayload = 167,
10276cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10286cdb10c1Sopenharmony_ci        const CXType_OCLIntelSubgroupAVCMceResult = 168,
10296cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10306cdb10c1Sopenharmony_ci        const CXType_OCLIntelSubgroupAVCImeResult = 169,
10316cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10326cdb10c1Sopenharmony_ci        const CXType_OCLIntelSubgroupAVCRefResult = 170,
10336cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10346cdb10c1Sopenharmony_ci        const CXType_OCLIntelSubgroupAVCSicResult = 171,
10356cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10366cdb10c1Sopenharmony_ci        const CXType_OCLIntelSubgroupAVCImeResultSingleRefStreamout = 172,
10376cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10386cdb10c1Sopenharmony_ci        const CXType_OCLIntelSubgroupAVCImeResultDualRefStreamout = 173,
10396cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10406cdb10c1Sopenharmony_ci        const CXType_OCLIntelSubgroupAVCImeSingleRefStreamin = 174,
10416cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 8.0 and later.
10426cdb10c1Sopenharmony_ci        const CXType_OCLIntelSubgroupAVCImeDualRefStreamin = 175,
10436cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 9.0 and later.
10446cdb10c1Sopenharmony_ci        const CXType_ExtVector = 176,
10456cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 11.0 and later.
10466cdb10c1Sopenharmony_ci        const CXType_Atomic = 177,
10476cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 15.0 and later.
10486cdb10c1Sopenharmony_ci        const CXType_BTFTagAttributed = 178,
10496cdb10c1Sopenharmony_ci    }
10506cdb10c1Sopenharmony_ci}
10516cdb10c1Sopenharmony_ci
10526cdb10c1Sopenharmony_cicenum! {
10536cdb10c1Sopenharmony_ci    enum CXTypeLayoutError {
10546cdb10c1Sopenharmony_ci        const CXTypeLayoutError_Invalid = -1,
10556cdb10c1Sopenharmony_ci        const CXTypeLayoutError_Incomplete = -2,
10566cdb10c1Sopenharmony_ci        const CXTypeLayoutError_Dependent = -3,
10576cdb10c1Sopenharmony_ci        const CXTypeLayoutError_NotConstantSize = -4,
10586cdb10c1Sopenharmony_ci        const CXTypeLayoutError_InvalidFieldName = -5,
10596cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 9.0 and later.
10606cdb10c1Sopenharmony_ci        const CXTypeLayoutError_Undeduced = -6,
10616cdb10c1Sopenharmony_ci    }
10626cdb10c1Sopenharmony_ci}
10636cdb10c1Sopenharmony_ci
10646cdb10c1Sopenharmony_cicenum! {
10656cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.8 and later.
10666cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_8")]
10676cdb10c1Sopenharmony_ci    enum CXVisibilityKind {
10686cdb10c1Sopenharmony_ci        const CXVisibility_Invalid = 0,
10696cdb10c1Sopenharmony_ci        const CXVisibility_Hidden = 1,
10706cdb10c1Sopenharmony_ci        const CXVisibility_Protected = 2,
10716cdb10c1Sopenharmony_ci        const CXVisibility_Default = 3,
10726cdb10c1Sopenharmony_ci    }
10736cdb10c1Sopenharmony_ci}
10746cdb10c1Sopenharmony_ci
10756cdb10c1Sopenharmony_cicenum! {
10766cdb10c1Sopenharmony_ci    /// Only available on `libclang` 8.0 and later.
10776cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_8_0")]
10786cdb10c1Sopenharmony_ci    enum CXTypeNullabilityKind {
10796cdb10c1Sopenharmony_ci        const CXTypeNullability_NonNull = 0,
10806cdb10c1Sopenharmony_ci        const CXTypeNullability_Nullable = 1,
10816cdb10c1Sopenharmony_ci        const CXTypeNullability_Unspecified = 2,
10826cdb10c1Sopenharmony_ci        const CXTypeNullability_Invalid = 3,
10836cdb10c1Sopenharmony_ci        /// Only produced by `libclang` 12.0 and later.
10846cdb10c1Sopenharmony_ci        const CXTypeNullability_NullableResult = 4,
10856cdb10c1Sopenharmony_ci    }
10866cdb10c1Sopenharmony_ci}
10876cdb10c1Sopenharmony_ci
10886cdb10c1Sopenharmony_cicenum! {
10896cdb10c1Sopenharmony_ci    enum CXVisitorResult {
10906cdb10c1Sopenharmony_ci        const CXVisit_Break = 0,
10916cdb10c1Sopenharmony_ci        const CXVisit_Continue = 1,
10926cdb10c1Sopenharmony_ci    }
10936cdb10c1Sopenharmony_ci}
10946cdb10c1Sopenharmony_ci
10956cdb10c1Sopenharmony_cicenum! {
10966cdb10c1Sopenharmony_ci    enum CX_CXXAccessSpecifier {
10976cdb10c1Sopenharmony_ci        const CX_CXXInvalidAccessSpecifier = 0,
10986cdb10c1Sopenharmony_ci        const CX_CXXPublic = 1,
10996cdb10c1Sopenharmony_ci        const CX_CXXProtected = 2,
11006cdb10c1Sopenharmony_ci        const CX_CXXPrivate = 3,
11016cdb10c1Sopenharmony_ci    }
11026cdb10c1Sopenharmony_ci}
11036cdb10c1Sopenharmony_ci
11046cdb10c1Sopenharmony_cicenum! {
11056cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.6 and later.
11066cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_6")]
11076cdb10c1Sopenharmony_ci    enum CX_StorageClass {
11086cdb10c1Sopenharmony_ci        const CX_SC_Invalid = 0,
11096cdb10c1Sopenharmony_ci        const CX_SC_None = 1,
11106cdb10c1Sopenharmony_ci        const CX_SC_Extern = 2,
11116cdb10c1Sopenharmony_ci        const CX_SC_Static = 3,
11126cdb10c1Sopenharmony_ci        const CX_SC_PrivateExtern = 4,
11136cdb10c1Sopenharmony_ci        const CX_SC_OpenCLWorkGroupLocal = 5,
11146cdb10c1Sopenharmony_ci        const CX_SC_Auto = 6,
11156cdb10c1Sopenharmony_ci        const CX_SC_Register = 7,
11166cdb10c1Sopenharmony_ci    }
11176cdb10c1Sopenharmony_ci}
11186cdb10c1Sopenharmony_ci
11196cdb10c1Sopenharmony_ci//================================================
11206cdb10c1Sopenharmony_ci// Flags
11216cdb10c1Sopenharmony_ci//================================================
11226cdb10c1Sopenharmony_ci
11236cdb10c1Sopenharmony_cicenum! {
11246cdb10c1Sopenharmony_ci    enum CXCodeComplete_Flags {
11256cdb10c1Sopenharmony_ci        const CXCodeComplete_IncludeMacros = 1;
11266cdb10c1Sopenharmony_ci        const CXCodeComplete_IncludeCodePatterns = 2;
11276cdb10c1Sopenharmony_ci        const CXCodeComplete_IncludeBriefComments = 4;
11286cdb10c1Sopenharmony_ci        const CXCodeComplete_SkipPreamble = 8;
11296cdb10c1Sopenharmony_ci        const CXCodeComplete_IncludeCompletionsWithFixIts = 16;
11306cdb10c1Sopenharmony_ci    }
11316cdb10c1Sopenharmony_ci}
11326cdb10c1Sopenharmony_ci
11336cdb10c1Sopenharmony_cicenum! {
11346cdb10c1Sopenharmony_ci    enum CXCompletionContext {
11356cdb10c1Sopenharmony_ci        const CXCompletionContext_Unexposed = 0;
11366cdb10c1Sopenharmony_ci        const CXCompletionContext_AnyType = 1;
11376cdb10c1Sopenharmony_ci        const CXCompletionContext_AnyValue = 2;
11386cdb10c1Sopenharmony_ci        const CXCompletionContext_ObjCObjectValue = 4;
11396cdb10c1Sopenharmony_ci        const CXCompletionContext_ObjCSelectorValue = 8;
11406cdb10c1Sopenharmony_ci        const CXCompletionContext_CXXClassTypeValue = 16;
11416cdb10c1Sopenharmony_ci        const CXCompletionContext_DotMemberAccess = 32;
11426cdb10c1Sopenharmony_ci        const CXCompletionContext_ArrowMemberAccess = 64;
11436cdb10c1Sopenharmony_ci        const CXCompletionContext_ObjCPropertyAccess = 128;
11446cdb10c1Sopenharmony_ci        const CXCompletionContext_EnumTag = 256;
11456cdb10c1Sopenharmony_ci        const CXCompletionContext_UnionTag = 512;
11466cdb10c1Sopenharmony_ci        const CXCompletionContext_StructTag = 1024;
11476cdb10c1Sopenharmony_ci        const CXCompletionContext_ClassTag = 2048;
11486cdb10c1Sopenharmony_ci        const CXCompletionContext_Namespace = 4096;
11496cdb10c1Sopenharmony_ci        const CXCompletionContext_NestedNameSpecifier = 8192;
11506cdb10c1Sopenharmony_ci        const CXCompletionContext_ObjCInterface = 16384;
11516cdb10c1Sopenharmony_ci        const CXCompletionContext_ObjCProtocol = 32768;
11526cdb10c1Sopenharmony_ci        const CXCompletionContext_ObjCCategory = 65536;
11536cdb10c1Sopenharmony_ci        const CXCompletionContext_ObjCInstanceMessage = 131072;
11546cdb10c1Sopenharmony_ci        const CXCompletionContext_ObjCClassMessage = 262144;
11556cdb10c1Sopenharmony_ci        const CXCompletionContext_ObjCSelectorName = 524288;
11566cdb10c1Sopenharmony_ci        const CXCompletionContext_MacroName = 1048576;
11576cdb10c1Sopenharmony_ci        const CXCompletionContext_NaturalLanguage = 2097152;
11586cdb10c1Sopenharmony_ci        const CXCompletionContext_IncludedFile = 4194304;
11596cdb10c1Sopenharmony_ci        const CXCompletionContext_Unknown = 8388607;
11606cdb10c1Sopenharmony_ci    }
11616cdb10c1Sopenharmony_ci}
11626cdb10c1Sopenharmony_ci
11636cdb10c1Sopenharmony_cicenum! {
11646cdb10c1Sopenharmony_ci    enum CXDiagnosticDisplayOptions {
11656cdb10c1Sopenharmony_ci        const CXDiagnostic_DisplaySourceLocation = 1;
11666cdb10c1Sopenharmony_ci        const CXDiagnostic_DisplayColumn = 2;
11676cdb10c1Sopenharmony_ci        const CXDiagnostic_DisplaySourceRanges = 4;
11686cdb10c1Sopenharmony_ci        const CXDiagnostic_DisplayOption = 8;
11696cdb10c1Sopenharmony_ci        const CXDiagnostic_DisplayCategoryId = 16;
11706cdb10c1Sopenharmony_ci        const CXDiagnostic_DisplayCategoryName = 32;
11716cdb10c1Sopenharmony_ci    }
11726cdb10c1Sopenharmony_ci}
11736cdb10c1Sopenharmony_ci
11746cdb10c1Sopenharmony_cicenum! {
11756cdb10c1Sopenharmony_ci    enum CXGlobalOptFlags {
11766cdb10c1Sopenharmony_ci        const CXGlobalOpt_None = 0;
11776cdb10c1Sopenharmony_ci        const CXGlobalOpt_ThreadBackgroundPriorityForIndexing = 1;
11786cdb10c1Sopenharmony_ci        const CXGlobalOpt_ThreadBackgroundPriorityForEditing = 2;
11796cdb10c1Sopenharmony_ci        const CXGlobalOpt_ThreadBackgroundPriorityForAll = 3;
11806cdb10c1Sopenharmony_ci    }
11816cdb10c1Sopenharmony_ci}
11826cdb10c1Sopenharmony_ci
11836cdb10c1Sopenharmony_cicenum! {
11846cdb10c1Sopenharmony_ci    enum CXIdxDeclInfoFlags {
11856cdb10c1Sopenharmony_ci        const CXIdxDeclFlag_Skipped = 1;
11866cdb10c1Sopenharmony_ci    }
11876cdb10c1Sopenharmony_ci}
11886cdb10c1Sopenharmony_ci
11896cdb10c1Sopenharmony_cicenum! {
11906cdb10c1Sopenharmony_ci    enum CXIndexOptFlags {
11916cdb10c1Sopenharmony_ci        const CXIndexOptNone = 0;
11926cdb10c1Sopenharmony_ci        const CXIndexOptSuppressRedundantRefs = 1;
11936cdb10c1Sopenharmony_ci        const CXIndexOptIndexFunctionLocalSymbols = 2;
11946cdb10c1Sopenharmony_ci        const CXIndexOptIndexImplicitTemplateInstantiations = 4;
11956cdb10c1Sopenharmony_ci        const CXIndexOptSuppressWarnings = 8;
11966cdb10c1Sopenharmony_ci        const CXIndexOptSkipParsedBodiesInSession = 16;
11976cdb10c1Sopenharmony_ci    }
11986cdb10c1Sopenharmony_ci}
11996cdb10c1Sopenharmony_ci
12006cdb10c1Sopenharmony_cicenum! {
12016cdb10c1Sopenharmony_ci    enum CXNameRefFlags {
12026cdb10c1Sopenharmony_ci        const CXNameRange_WantQualifier = 1;
12036cdb10c1Sopenharmony_ci        const CXNameRange_WantTemplateArgs = 2;
12046cdb10c1Sopenharmony_ci        const CXNameRange_WantSinglePiece = 4;
12056cdb10c1Sopenharmony_ci    }
12066cdb10c1Sopenharmony_ci}
12076cdb10c1Sopenharmony_ci
12086cdb10c1Sopenharmony_cicenum! {
12096cdb10c1Sopenharmony_ci    enum CXObjCDeclQualifierKind {
12106cdb10c1Sopenharmony_ci        const CXObjCDeclQualifier_None = 0;
12116cdb10c1Sopenharmony_ci        const CXObjCDeclQualifier_In = 1;
12126cdb10c1Sopenharmony_ci        const CXObjCDeclQualifier_Inout = 2;
12136cdb10c1Sopenharmony_ci        const CXObjCDeclQualifier_Out = 4;
12146cdb10c1Sopenharmony_ci        const CXObjCDeclQualifier_Bycopy = 8;
12156cdb10c1Sopenharmony_ci        const CXObjCDeclQualifier_Byref = 16;
12166cdb10c1Sopenharmony_ci        const CXObjCDeclQualifier_Oneway = 32;
12176cdb10c1Sopenharmony_ci    }
12186cdb10c1Sopenharmony_ci}
12196cdb10c1Sopenharmony_ci
12206cdb10c1Sopenharmony_cicenum! {
12216cdb10c1Sopenharmony_ci    enum CXObjCPropertyAttrKind {
12226cdb10c1Sopenharmony_ci        const CXObjCPropertyAttr_noattr = 0;
12236cdb10c1Sopenharmony_ci        const CXObjCPropertyAttr_readonly = 1;
12246cdb10c1Sopenharmony_ci        const CXObjCPropertyAttr_getter = 2;
12256cdb10c1Sopenharmony_ci        const CXObjCPropertyAttr_assign = 4;
12266cdb10c1Sopenharmony_ci        const CXObjCPropertyAttr_readwrite = 8;
12276cdb10c1Sopenharmony_ci        const CXObjCPropertyAttr_retain = 16;
12286cdb10c1Sopenharmony_ci        const CXObjCPropertyAttr_copy = 32;
12296cdb10c1Sopenharmony_ci        const CXObjCPropertyAttr_nonatomic = 64;
12306cdb10c1Sopenharmony_ci        const CXObjCPropertyAttr_setter = 128;
12316cdb10c1Sopenharmony_ci        const CXObjCPropertyAttr_atomic = 256;
12326cdb10c1Sopenharmony_ci        const CXObjCPropertyAttr_weak = 512;
12336cdb10c1Sopenharmony_ci        const CXObjCPropertyAttr_strong = 1024;
12346cdb10c1Sopenharmony_ci        const CXObjCPropertyAttr_unsafe_unretained = 2048;
12356cdb10c1Sopenharmony_ci        /// Only available on `libclang` 3.9 and later.
12366cdb10c1Sopenharmony_ci        #[cfg(feature = "clang_3_9")]
12376cdb10c1Sopenharmony_ci        const CXObjCPropertyAttr_class = 4096;
12386cdb10c1Sopenharmony_ci    }
12396cdb10c1Sopenharmony_ci}
12406cdb10c1Sopenharmony_ci
12416cdb10c1Sopenharmony_cicenum! {
12426cdb10c1Sopenharmony_ci    enum CXReparse_Flags {
12436cdb10c1Sopenharmony_ci        const CXReparse_None = 0;
12446cdb10c1Sopenharmony_ci    }
12456cdb10c1Sopenharmony_ci}
12466cdb10c1Sopenharmony_ci
12476cdb10c1Sopenharmony_cicenum! {
12486cdb10c1Sopenharmony_ci    enum CXSaveTranslationUnit_Flags {
12496cdb10c1Sopenharmony_ci        const CXSaveTranslationUnit_None = 0;
12506cdb10c1Sopenharmony_ci    }
12516cdb10c1Sopenharmony_ci}
12526cdb10c1Sopenharmony_ci
12536cdb10c1Sopenharmony_cicenum! {
12546cdb10c1Sopenharmony_ci    /// Only available on `libclang` 7.0 and later.
12556cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_7_0")]
12566cdb10c1Sopenharmony_ci    enum CXSymbolRole {
12576cdb10c1Sopenharmony_ci        const CXSymbolRole_None = 0;
12586cdb10c1Sopenharmony_ci        const CXSymbolRole_Declaration = 1;
12596cdb10c1Sopenharmony_ci        const CXSymbolRole_Definition = 2;
12606cdb10c1Sopenharmony_ci        const CXSymbolRole_Reference = 4;
12616cdb10c1Sopenharmony_ci        const CXSymbolRole_Read = 8;
12626cdb10c1Sopenharmony_ci        const CXSymbolRole_Write = 16;
12636cdb10c1Sopenharmony_ci        const CXSymbolRole_Call = 32;
12646cdb10c1Sopenharmony_ci        const CXSymbolRole_Dynamic = 64;
12656cdb10c1Sopenharmony_ci        const CXSymbolRole_AddressOf = 128;
12666cdb10c1Sopenharmony_ci        const CXSymbolRole_Implicit = 256;
12676cdb10c1Sopenharmony_ci    }
12686cdb10c1Sopenharmony_ci}
12696cdb10c1Sopenharmony_ci
12706cdb10c1Sopenharmony_cicenum! {
12716cdb10c1Sopenharmony_ci    enum CXTranslationUnit_Flags {
12726cdb10c1Sopenharmony_ci        const CXTranslationUnit_None = 0;
12736cdb10c1Sopenharmony_ci        const CXTranslationUnit_DetailedPreprocessingRecord = 1;
12746cdb10c1Sopenharmony_ci        const CXTranslationUnit_Incomplete = 2;
12756cdb10c1Sopenharmony_ci        const CXTranslationUnit_PrecompiledPreamble = 4;
12766cdb10c1Sopenharmony_ci        const CXTranslationUnit_CacheCompletionResults = 8;
12776cdb10c1Sopenharmony_ci        const CXTranslationUnit_ForSerialization = 16;
12786cdb10c1Sopenharmony_ci        const CXTranslationUnit_CXXChainedPCH = 32;
12796cdb10c1Sopenharmony_ci        const CXTranslationUnit_SkipFunctionBodies = 64;
12806cdb10c1Sopenharmony_ci        const CXTranslationUnit_IncludeBriefCommentsInCodeCompletion = 128;
12816cdb10c1Sopenharmony_ci        /// Only available on `libclang` 3.8 and later.
12826cdb10c1Sopenharmony_ci        #[cfg(feature = "clang_3_8")]
12836cdb10c1Sopenharmony_ci        const CXTranslationUnit_CreatePreambleOnFirstParse = 256;
12846cdb10c1Sopenharmony_ci        /// Only available on `libclang` 3.9 and later.
12856cdb10c1Sopenharmony_ci        #[cfg(feature = "clang_3_9")]
12866cdb10c1Sopenharmony_ci        const CXTranslationUnit_KeepGoing = 512;
12876cdb10c1Sopenharmony_ci        /// Only available on `libclang` 5.0 and later.
12886cdb10c1Sopenharmony_ci        #[cfg(feature = "clang_5_0")]
12896cdb10c1Sopenharmony_ci        const CXTranslationUnit_SingleFileParse = 1024;
12906cdb10c1Sopenharmony_ci        /// Only available on `libclang` 7.0 and later.
12916cdb10c1Sopenharmony_ci        #[cfg(feature = "clang_7_0")]
12926cdb10c1Sopenharmony_ci        const CXTranslationUnit_LimitSkipFunctionBodiesToPreamble = 2048;
12936cdb10c1Sopenharmony_ci        /// Only available on `libclang` 8.0 and later.
12946cdb10c1Sopenharmony_ci        #[cfg(feature = "clang_8_0")]
12956cdb10c1Sopenharmony_ci        const CXTranslationUnit_IncludeAttributedTypes = 4096;
12966cdb10c1Sopenharmony_ci        /// Only available on `libclang` 8.0 and later.
12976cdb10c1Sopenharmony_ci        #[cfg(feature = "clang_8_0")]
12986cdb10c1Sopenharmony_ci        const CXTranslationUnit_VisitImplicitAttributes = 8192;
12996cdb10c1Sopenharmony_ci        /// Only available on `libclang` 9.0 and later.
13006cdb10c1Sopenharmony_ci        #[cfg(feature = "clang_9_0")]
13016cdb10c1Sopenharmony_ci        const CXTranslationUnit_IgnoreNonErrorsFromIncludedFiles = 16384;
13026cdb10c1Sopenharmony_ci        /// Only available on `libclang` 10.0 and later.
13036cdb10c1Sopenharmony_ci        #[cfg(feature = "clang_10_0")]
13046cdb10c1Sopenharmony_ci        const CXTranslationUnit_RetainExcludedConditionalBlocks = 32768;
13056cdb10c1Sopenharmony_ci    }
13066cdb10c1Sopenharmony_ci}
13076cdb10c1Sopenharmony_ci
13086cdb10c1Sopenharmony_ci//================================================
13096cdb10c1Sopenharmony_ci// Structs
13106cdb10c1Sopenharmony_ci//================================================
13116cdb10c1Sopenharmony_ci
13126cdb10c1Sopenharmony_ci// Opaque ________________________________________
13136cdb10c1Sopenharmony_ci
13146cdb10c1Sopenharmony_cimacro_rules! opaque {
13156cdb10c1Sopenharmony_ci    ($name:ident) => {
13166cdb10c1Sopenharmony_ci        pub type $name = *mut c_void;
13176cdb10c1Sopenharmony_ci    };
13186cdb10c1Sopenharmony_ci}
13196cdb10c1Sopenharmony_ci
13206cdb10c1Sopenharmony_ciopaque!(CXCompilationDatabase);
13216cdb10c1Sopenharmony_ciopaque!(CXCompileCommand);
13226cdb10c1Sopenharmony_ciopaque!(CXCompileCommands);
13236cdb10c1Sopenharmony_ciopaque!(CXCompletionString);
13246cdb10c1Sopenharmony_ciopaque!(CXCursorSet);
13256cdb10c1Sopenharmony_ciopaque!(CXDiagnostic);
13266cdb10c1Sopenharmony_ciopaque!(CXDiagnosticSet);
13276cdb10c1Sopenharmony_ci#[cfg(feature = "clang_3_9")]
13286cdb10c1Sopenharmony_ciopaque!(CXEvalResult);
13296cdb10c1Sopenharmony_ciopaque!(CXFile);
13306cdb10c1Sopenharmony_ciopaque!(CXIdxClientASTFile);
13316cdb10c1Sopenharmony_ciopaque!(CXIdxClientContainer);
13326cdb10c1Sopenharmony_ciopaque!(CXIdxClientEntity);
13336cdb10c1Sopenharmony_ciopaque!(CXIdxClientFile);
13346cdb10c1Sopenharmony_ciopaque!(CXIndex);
13356cdb10c1Sopenharmony_ciopaque!(CXIndexAction);
13366cdb10c1Sopenharmony_ciopaque!(CXModule);
13376cdb10c1Sopenharmony_ci#[cfg(feature = "clang_7_0")]
13386cdb10c1Sopenharmony_ciopaque!(CXPrintingPolicy);
13396cdb10c1Sopenharmony_ciopaque!(CXRemapping);
13406cdb10c1Sopenharmony_ci#[cfg(feature = "clang_5_0")]
13416cdb10c1Sopenharmony_ciopaque!(CXTargetInfo);
13426cdb10c1Sopenharmony_ciopaque!(CXTranslationUnit);
13436cdb10c1Sopenharmony_ci
13446cdb10c1Sopenharmony_ci// Transparent ___________________________________
13456cdb10c1Sopenharmony_ci
13466cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
13476cdb10c1Sopenharmony_ci#[repr(C)]
13486cdb10c1Sopenharmony_cipub struct CXCodeCompleteResults {
13496cdb10c1Sopenharmony_ci    pub Results: *mut CXCompletionResult,
13506cdb10c1Sopenharmony_ci    pub NumResults: c_uint,
13516cdb10c1Sopenharmony_ci}
13526cdb10c1Sopenharmony_ci
13536cdb10c1Sopenharmony_cidefault!(CXCodeCompleteResults);
13546cdb10c1Sopenharmony_ci
13556cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
13566cdb10c1Sopenharmony_ci#[repr(C)]
13576cdb10c1Sopenharmony_cipub struct CXComment {
13586cdb10c1Sopenharmony_ci    pub ASTNode: *const c_void,
13596cdb10c1Sopenharmony_ci    pub TranslationUnit: CXTranslationUnit,
13606cdb10c1Sopenharmony_ci}
13616cdb10c1Sopenharmony_ci
13626cdb10c1Sopenharmony_cidefault!(CXComment);
13636cdb10c1Sopenharmony_ci
13646cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
13656cdb10c1Sopenharmony_ci#[repr(C)]
13666cdb10c1Sopenharmony_cipub struct CXCompletionResult {
13676cdb10c1Sopenharmony_ci    pub CursorKind: CXCursorKind,
13686cdb10c1Sopenharmony_ci    pub CompletionString: CXCompletionString,
13696cdb10c1Sopenharmony_ci}
13706cdb10c1Sopenharmony_ci
13716cdb10c1Sopenharmony_cidefault!(CXCompletionResult);
13726cdb10c1Sopenharmony_ci
13736cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
13746cdb10c1Sopenharmony_ci#[repr(C)]
13756cdb10c1Sopenharmony_cipub struct CXCursor {
13766cdb10c1Sopenharmony_ci    pub kind: CXCursorKind,
13776cdb10c1Sopenharmony_ci    pub xdata: c_int,
13786cdb10c1Sopenharmony_ci    pub data: [*const c_void; 3],
13796cdb10c1Sopenharmony_ci}
13806cdb10c1Sopenharmony_ci
13816cdb10c1Sopenharmony_cidefault!(CXCursor);
13826cdb10c1Sopenharmony_ci
13836cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
13846cdb10c1Sopenharmony_ci#[repr(C)]
13856cdb10c1Sopenharmony_cipub struct CXCursorAndRangeVisitor {
13866cdb10c1Sopenharmony_ci    pub context: *mut c_void,
13876cdb10c1Sopenharmony_ci    pub visit: Option<extern "C" fn(*mut c_void, CXCursor, CXSourceRange) -> CXVisitorResult>,
13886cdb10c1Sopenharmony_ci}
13896cdb10c1Sopenharmony_ci
13906cdb10c1Sopenharmony_cidefault!(CXCursorAndRangeVisitor);
13916cdb10c1Sopenharmony_ci
13926cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
13936cdb10c1Sopenharmony_ci#[repr(C)]
13946cdb10c1Sopenharmony_cipub struct CXFileUniqueID {
13956cdb10c1Sopenharmony_ci    pub data: [c_ulonglong; 3],
13966cdb10c1Sopenharmony_ci}
13976cdb10c1Sopenharmony_ci
13986cdb10c1Sopenharmony_cidefault!(CXFileUniqueID);
13996cdb10c1Sopenharmony_ci
14006cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
14016cdb10c1Sopenharmony_ci#[repr(C)]
14026cdb10c1Sopenharmony_cipub struct CXIdxAttrInfo {
14036cdb10c1Sopenharmony_ci    pub kind: CXIdxAttrKind,
14046cdb10c1Sopenharmony_ci    pub cursor: CXCursor,
14056cdb10c1Sopenharmony_ci    pub loc: CXIdxLoc,
14066cdb10c1Sopenharmony_ci}
14076cdb10c1Sopenharmony_ci
14086cdb10c1Sopenharmony_cidefault!(CXIdxAttrInfo);
14096cdb10c1Sopenharmony_ci
14106cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
14116cdb10c1Sopenharmony_ci#[repr(C)]
14126cdb10c1Sopenharmony_cipub struct CXIdxBaseClassInfo {
14136cdb10c1Sopenharmony_ci    pub base: *const CXIdxEntityInfo,
14146cdb10c1Sopenharmony_ci    pub cursor: CXCursor,
14156cdb10c1Sopenharmony_ci    pub loc: CXIdxLoc,
14166cdb10c1Sopenharmony_ci}
14176cdb10c1Sopenharmony_ci
14186cdb10c1Sopenharmony_cidefault!(CXIdxBaseClassInfo);
14196cdb10c1Sopenharmony_ci
14206cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
14216cdb10c1Sopenharmony_ci#[repr(C)]
14226cdb10c1Sopenharmony_cipub struct CXIdxCXXClassDeclInfo {
14236cdb10c1Sopenharmony_ci    pub declInfo: *const CXIdxDeclInfo,
14246cdb10c1Sopenharmony_ci    pub bases: *const *const CXIdxBaseClassInfo,
14256cdb10c1Sopenharmony_ci    pub numBases: c_uint,
14266cdb10c1Sopenharmony_ci}
14276cdb10c1Sopenharmony_ci
14286cdb10c1Sopenharmony_cidefault!(CXIdxCXXClassDeclInfo);
14296cdb10c1Sopenharmony_ci
14306cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
14316cdb10c1Sopenharmony_ci#[repr(C)]
14326cdb10c1Sopenharmony_cipub struct CXIdxContainerInfo {
14336cdb10c1Sopenharmony_ci    pub cursor: CXCursor,
14346cdb10c1Sopenharmony_ci}
14356cdb10c1Sopenharmony_ci
14366cdb10c1Sopenharmony_cidefault!(CXIdxContainerInfo);
14376cdb10c1Sopenharmony_ci
14386cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
14396cdb10c1Sopenharmony_ci#[repr(C)]
14406cdb10c1Sopenharmony_cipub struct CXIdxDeclInfo {
14416cdb10c1Sopenharmony_ci    pub entityInfo: *const CXIdxEntityInfo,
14426cdb10c1Sopenharmony_ci    pub cursor: CXCursor,
14436cdb10c1Sopenharmony_ci    pub loc: CXIdxLoc,
14446cdb10c1Sopenharmony_ci    pub semanticContainer: *const CXIdxContainerInfo,
14456cdb10c1Sopenharmony_ci    pub lexicalContainer: *const CXIdxContainerInfo,
14466cdb10c1Sopenharmony_ci    pub isRedeclaration: c_int,
14476cdb10c1Sopenharmony_ci    pub isDefinition: c_int,
14486cdb10c1Sopenharmony_ci    pub isContainer: c_int,
14496cdb10c1Sopenharmony_ci    pub declAsContainer: *const CXIdxContainerInfo,
14506cdb10c1Sopenharmony_ci    pub isImplicit: c_int,
14516cdb10c1Sopenharmony_ci    pub attributes: *const *const CXIdxAttrInfo,
14526cdb10c1Sopenharmony_ci    pub numAttributes: c_uint,
14536cdb10c1Sopenharmony_ci    pub flags: c_uint,
14546cdb10c1Sopenharmony_ci}
14556cdb10c1Sopenharmony_ci
14566cdb10c1Sopenharmony_cidefault!(CXIdxDeclInfo);
14576cdb10c1Sopenharmony_ci
14586cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
14596cdb10c1Sopenharmony_ci#[repr(C)]
14606cdb10c1Sopenharmony_cipub struct CXIdxEntityInfo {
14616cdb10c1Sopenharmony_ci    pub kind: CXIdxEntityKind,
14626cdb10c1Sopenharmony_ci    pub templateKind: CXIdxEntityCXXTemplateKind,
14636cdb10c1Sopenharmony_ci    pub lang: CXIdxEntityLanguage,
14646cdb10c1Sopenharmony_ci    pub name: *const c_char,
14656cdb10c1Sopenharmony_ci    pub USR: *const c_char,
14666cdb10c1Sopenharmony_ci    pub cursor: CXCursor,
14676cdb10c1Sopenharmony_ci    pub attributes: *const *const CXIdxAttrInfo,
14686cdb10c1Sopenharmony_ci    pub numAttributes: c_uint,
14696cdb10c1Sopenharmony_ci}
14706cdb10c1Sopenharmony_ci
14716cdb10c1Sopenharmony_cidefault!(CXIdxEntityInfo);
14726cdb10c1Sopenharmony_ci
14736cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
14746cdb10c1Sopenharmony_ci#[repr(C)]
14756cdb10c1Sopenharmony_cipub struct CXIdxEntityRefInfo {
14766cdb10c1Sopenharmony_ci    pub kind: CXIdxEntityRefKind,
14776cdb10c1Sopenharmony_ci    pub cursor: CXCursor,
14786cdb10c1Sopenharmony_ci    pub loc: CXIdxLoc,
14796cdb10c1Sopenharmony_ci    pub referencedEntity: *const CXIdxEntityInfo,
14806cdb10c1Sopenharmony_ci    pub parentEntity: *const CXIdxEntityInfo,
14816cdb10c1Sopenharmony_ci    pub container: *const CXIdxContainerInfo,
14826cdb10c1Sopenharmony_ci    /// Only available on `libclang` 7.0 and later.
14836cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_7_0")]
14846cdb10c1Sopenharmony_ci    pub role: CXSymbolRole,
14856cdb10c1Sopenharmony_ci}
14866cdb10c1Sopenharmony_ci
14876cdb10c1Sopenharmony_cidefault!(CXIdxEntityRefInfo);
14886cdb10c1Sopenharmony_ci
14896cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
14906cdb10c1Sopenharmony_ci#[repr(C)]
14916cdb10c1Sopenharmony_cipub struct CXIdxIBOutletCollectionAttrInfo {
14926cdb10c1Sopenharmony_ci    pub attrInfo: *const CXIdxAttrInfo,
14936cdb10c1Sopenharmony_ci    pub objcClass: *const CXIdxEntityInfo,
14946cdb10c1Sopenharmony_ci    pub classCursor: CXCursor,
14956cdb10c1Sopenharmony_ci    pub classLoc: CXIdxLoc,
14966cdb10c1Sopenharmony_ci}
14976cdb10c1Sopenharmony_ci
14986cdb10c1Sopenharmony_cidefault!(CXIdxIBOutletCollectionAttrInfo);
14996cdb10c1Sopenharmony_ci
15006cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
15016cdb10c1Sopenharmony_ci#[repr(C)]
15026cdb10c1Sopenharmony_cipub struct CXIdxImportedASTFileInfo {
15036cdb10c1Sopenharmony_ci    pub file: CXFile,
15046cdb10c1Sopenharmony_ci    pub module: CXModule,
15056cdb10c1Sopenharmony_ci    pub loc: CXIdxLoc,
15066cdb10c1Sopenharmony_ci    pub isImplicit: c_int,
15076cdb10c1Sopenharmony_ci}
15086cdb10c1Sopenharmony_ci
15096cdb10c1Sopenharmony_cidefault!(CXIdxImportedASTFileInfo);
15106cdb10c1Sopenharmony_ci
15116cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
15126cdb10c1Sopenharmony_ci#[repr(C)]
15136cdb10c1Sopenharmony_cipub struct CXIdxIncludedFileInfo {
15146cdb10c1Sopenharmony_ci    pub hashLoc: CXIdxLoc,
15156cdb10c1Sopenharmony_ci    pub filename: *const c_char,
15166cdb10c1Sopenharmony_ci    pub file: CXFile,
15176cdb10c1Sopenharmony_ci    pub isImport: c_int,
15186cdb10c1Sopenharmony_ci    pub isAngled: c_int,
15196cdb10c1Sopenharmony_ci    pub isModuleImport: c_int,
15206cdb10c1Sopenharmony_ci}
15216cdb10c1Sopenharmony_ci
15226cdb10c1Sopenharmony_cidefault!(CXIdxIncludedFileInfo);
15236cdb10c1Sopenharmony_ci
15246cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
15256cdb10c1Sopenharmony_ci#[repr(C)]
15266cdb10c1Sopenharmony_cipub struct CXIdxLoc {
15276cdb10c1Sopenharmony_ci    pub ptr_data: [*mut c_void; 2],
15286cdb10c1Sopenharmony_ci    pub int_data: c_uint,
15296cdb10c1Sopenharmony_ci}
15306cdb10c1Sopenharmony_ci
15316cdb10c1Sopenharmony_cidefault!(CXIdxLoc);
15326cdb10c1Sopenharmony_ci
15336cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
15346cdb10c1Sopenharmony_ci#[repr(C)]
15356cdb10c1Sopenharmony_cipub struct CXIdxObjCCategoryDeclInfo {
15366cdb10c1Sopenharmony_ci    pub containerInfo: *const CXIdxObjCContainerDeclInfo,
15376cdb10c1Sopenharmony_ci    pub objcClass: *const CXIdxEntityInfo,
15386cdb10c1Sopenharmony_ci    pub classCursor: CXCursor,
15396cdb10c1Sopenharmony_ci    pub classLoc: CXIdxLoc,
15406cdb10c1Sopenharmony_ci    pub protocols: *const CXIdxObjCProtocolRefListInfo,
15416cdb10c1Sopenharmony_ci}
15426cdb10c1Sopenharmony_ci
15436cdb10c1Sopenharmony_cidefault!(CXIdxObjCCategoryDeclInfo);
15446cdb10c1Sopenharmony_ci
15456cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
15466cdb10c1Sopenharmony_ci#[repr(C)]
15476cdb10c1Sopenharmony_cipub struct CXIdxObjCContainerDeclInfo {
15486cdb10c1Sopenharmony_ci    pub declInfo: *const CXIdxDeclInfo,
15496cdb10c1Sopenharmony_ci    pub kind: CXIdxObjCContainerKind,
15506cdb10c1Sopenharmony_ci}
15516cdb10c1Sopenharmony_ci
15526cdb10c1Sopenharmony_cidefault!(CXIdxObjCContainerDeclInfo);
15536cdb10c1Sopenharmony_ci
15546cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
15556cdb10c1Sopenharmony_ci#[repr(C)]
15566cdb10c1Sopenharmony_cipub struct CXIdxObjCInterfaceDeclInfo {
15576cdb10c1Sopenharmony_ci    pub containerInfo: *const CXIdxObjCContainerDeclInfo,
15586cdb10c1Sopenharmony_ci    pub superInfo: *const CXIdxBaseClassInfo,
15596cdb10c1Sopenharmony_ci    pub protocols: *const CXIdxObjCProtocolRefListInfo,
15606cdb10c1Sopenharmony_ci}
15616cdb10c1Sopenharmony_ci
15626cdb10c1Sopenharmony_cidefault!(CXIdxObjCInterfaceDeclInfo);
15636cdb10c1Sopenharmony_ci
15646cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
15656cdb10c1Sopenharmony_ci#[repr(C)]
15666cdb10c1Sopenharmony_cipub struct CXIdxObjCPropertyDeclInfo {
15676cdb10c1Sopenharmony_ci    pub declInfo: *const CXIdxDeclInfo,
15686cdb10c1Sopenharmony_ci    pub getter: *const CXIdxEntityInfo,
15696cdb10c1Sopenharmony_ci    pub setter: *const CXIdxEntityInfo,
15706cdb10c1Sopenharmony_ci}
15716cdb10c1Sopenharmony_ci
15726cdb10c1Sopenharmony_cidefault!(CXIdxObjCPropertyDeclInfo);
15736cdb10c1Sopenharmony_ci
15746cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
15756cdb10c1Sopenharmony_ci#[repr(C)]
15766cdb10c1Sopenharmony_cipub struct CXIdxObjCProtocolRefInfo {
15776cdb10c1Sopenharmony_ci    pub protocol: *const CXIdxEntityInfo,
15786cdb10c1Sopenharmony_ci    pub cursor: CXCursor,
15796cdb10c1Sopenharmony_ci    pub loc: CXIdxLoc,
15806cdb10c1Sopenharmony_ci}
15816cdb10c1Sopenharmony_ci
15826cdb10c1Sopenharmony_cidefault!(CXIdxObjCProtocolRefInfo);
15836cdb10c1Sopenharmony_ci
15846cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
15856cdb10c1Sopenharmony_ci#[repr(C)]
15866cdb10c1Sopenharmony_cipub struct CXIdxObjCProtocolRefListInfo {
15876cdb10c1Sopenharmony_ci    pub protocols: *const *const CXIdxObjCProtocolRefInfo,
15886cdb10c1Sopenharmony_ci    pub numProtocols: c_uint,
15896cdb10c1Sopenharmony_ci}
15906cdb10c1Sopenharmony_ci
15916cdb10c1Sopenharmony_cidefault!(CXIdxObjCProtocolRefListInfo);
15926cdb10c1Sopenharmony_ci
15936cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
15946cdb10c1Sopenharmony_ci#[repr(C)]
15956cdb10c1Sopenharmony_cipub struct CXPlatformAvailability {
15966cdb10c1Sopenharmony_ci    pub Platform: CXString,
15976cdb10c1Sopenharmony_ci    pub Introduced: CXVersion,
15986cdb10c1Sopenharmony_ci    pub Deprecated: CXVersion,
15996cdb10c1Sopenharmony_ci    pub Obsoleted: CXVersion,
16006cdb10c1Sopenharmony_ci    pub Unavailable: c_int,
16016cdb10c1Sopenharmony_ci    pub Message: CXString,
16026cdb10c1Sopenharmony_ci}
16036cdb10c1Sopenharmony_ci
16046cdb10c1Sopenharmony_cidefault!(CXPlatformAvailability);
16056cdb10c1Sopenharmony_ci
16066cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
16076cdb10c1Sopenharmony_ci#[repr(C)]
16086cdb10c1Sopenharmony_cipub struct CXSourceLocation {
16096cdb10c1Sopenharmony_ci    pub ptr_data: [*const c_void; 2],
16106cdb10c1Sopenharmony_ci    pub int_data: c_uint,
16116cdb10c1Sopenharmony_ci}
16126cdb10c1Sopenharmony_ci
16136cdb10c1Sopenharmony_cidefault!(CXSourceLocation);
16146cdb10c1Sopenharmony_ci
16156cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
16166cdb10c1Sopenharmony_ci#[repr(C)]
16176cdb10c1Sopenharmony_cipub struct CXSourceRange {
16186cdb10c1Sopenharmony_ci    pub ptr_data: [*const c_void; 2],
16196cdb10c1Sopenharmony_ci    pub begin_int_data: c_uint,
16206cdb10c1Sopenharmony_ci    pub end_int_data: c_uint,
16216cdb10c1Sopenharmony_ci}
16226cdb10c1Sopenharmony_ci
16236cdb10c1Sopenharmony_cidefault!(CXSourceRange);
16246cdb10c1Sopenharmony_ci
16256cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
16266cdb10c1Sopenharmony_ci#[repr(C)]
16276cdb10c1Sopenharmony_cipub struct CXSourceRangeList {
16286cdb10c1Sopenharmony_ci    pub count: c_uint,
16296cdb10c1Sopenharmony_ci    pub ranges: *mut CXSourceRange,
16306cdb10c1Sopenharmony_ci}
16316cdb10c1Sopenharmony_ci
16326cdb10c1Sopenharmony_cidefault!(CXSourceRangeList);
16336cdb10c1Sopenharmony_ci
16346cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
16356cdb10c1Sopenharmony_ci#[repr(C)]
16366cdb10c1Sopenharmony_cipub struct CXString {
16376cdb10c1Sopenharmony_ci    pub data: *const c_void,
16386cdb10c1Sopenharmony_ci    pub private_flags: c_uint,
16396cdb10c1Sopenharmony_ci}
16406cdb10c1Sopenharmony_ci
16416cdb10c1Sopenharmony_cidefault!(CXString);
16426cdb10c1Sopenharmony_ci
16436cdb10c1Sopenharmony_ci#[cfg(feature = "clang_3_8")]
16446cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
16456cdb10c1Sopenharmony_ci#[repr(C)]
16466cdb10c1Sopenharmony_cipub struct CXStringSet {
16476cdb10c1Sopenharmony_ci    pub Strings: *mut CXString,
16486cdb10c1Sopenharmony_ci    pub Count: c_uint,
16496cdb10c1Sopenharmony_ci}
16506cdb10c1Sopenharmony_ci
16516cdb10c1Sopenharmony_ci#[cfg(feature = "clang_3_8")]
16526cdb10c1Sopenharmony_cidefault!(CXStringSet);
16536cdb10c1Sopenharmony_ci
16546cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
16556cdb10c1Sopenharmony_ci#[repr(C)]
16566cdb10c1Sopenharmony_cipub struct CXTUResourceUsage {
16576cdb10c1Sopenharmony_ci    pub data: *mut c_void,
16586cdb10c1Sopenharmony_ci    pub numEntries: c_uint,
16596cdb10c1Sopenharmony_ci    pub entries: *mut CXTUResourceUsageEntry,
16606cdb10c1Sopenharmony_ci}
16616cdb10c1Sopenharmony_ci
16626cdb10c1Sopenharmony_cidefault!(CXTUResourceUsage);
16636cdb10c1Sopenharmony_ci
16646cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
16656cdb10c1Sopenharmony_ci#[repr(C)]
16666cdb10c1Sopenharmony_cipub struct CXTUResourceUsageEntry {
16676cdb10c1Sopenharmony_ci    pub kind: CXTUResourceUsageKind,
16686cdb10c1Sopenharmony_ci    pub amount: c_ulong,
16696cdb10c1Sopenharmony_ci}
16706cdb10c1Sopenharmony_ci
16716cdb10c1Sopenharmony_cidefault!(CXTUResourceUsageEntry);
16726cdb10c1Sopenharmony_ci
16736cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
16746cdb10c1Sopenharmony_ci#[repr(C)]
16756cdb10c1Sopenharmony_cipub struct CXToken {
16766cdb10c1Sopenharmony_ci    pub int_data: [c_uint; 4],
16776cdb10c1Sopenharmony_ci    pub ptr_data: *mut c_void,
16786cdb10c1Sopenharmony_ci}
16796cdb10c1Sopenharmony_ci
16806cdb10c1Sopenharmony_cidefault!(CXToken);
16816cdb10c1Sopenharmony_ci
16826cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
16836cdb10c1Sopenharmony_ci#[repr(C)]
16846cdb10c1Sopenharmony_cipub struct CXType {
16856cdb10c1Sopenharmony_ci    pub kind: CXTypeKind,
16866cdb10c1Sopenharmony_ci    pub data: [*mut c_void; 2],
16876cdb10c1Sopenharmony_ci}
16886cdb10c1Sopenharmony_ci
16896cdb10c1Sopenharmony_cidefault!(CXType);
16906cdb10c1Sopenharmony_ci
16916cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
16926cdb10c1Sopenharmony_ci#[repr(C)]
16936cdb10c1Sopenharmony_cipub struct CXUnsavedFile {
16946cdb10c1Sopenharmony_ci    pub Filename: *const c_char,
16956cdb10c1Sopenharmony_ci    pub Contents: *const c_char,
16966cdb10c1Sopenharmony_ci    pub Length: c_ulong,
16976cdb10c1Sopenharmony_ci}
16986cdb10c1Sopenharmony_ci
16996cdb10c1Sopenharmony_cidefault!(CXUnsavedFile);
17006cdb10c1Sopenharmony_ci
17016cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
17026cdb10c1Sopenharmony_ci#[repr(C)]
17036cdb10c1Sopenharmony_cipub struct CXVersion {
17046cdb10c1Sopenharmony_ci    pub Major: c_int,
17056cdb10c1Sopenharmony_ci    pub Minor: c_int,
17066cdb10c1Sopenharmony_ci    pub Subminor: c_int,
17076cdb10c1Sopenharmony_ci}
17086cdb10c1Sopenharmony_ci
17096cdb10c1Sopenharmony_cidefault!(CXVersion);
17106cdb10c1Sopenharmony_ci
17116cdb10c1Sopenharmony_ci#[derive(Copy, Clone, Debug)]
17126cdb10c1Sopenharmony_ci#[repr(C)]
17136cdb10c1Sopenharmony_ci#[rustfmt::skip]
17146cdb10c1Sopenharmony_cipub struct IndexerCallbacks {
17156cdb10c1Sopenharmony_ci    pub abortQuery: Option<extern "C" fn(CXClientData, *mut c_void) -> c_int>,
17166cdb10c1Sopenharmony_ci    pub diagnostic: Option<extern "C" fn(CXClientData, CXDiagnosticSet, *mut c_void)>,
17176cdb10c1Sopenharmony_ci    pub enteredMainFile: Option<extern "C" fn(CXClientData, CXFile, *mut c_void) -> CXIdxClientFile>,
17186cdb10c1Sopenharmony_ci    pub ppIncludedFile: Option<extern "C" fn(CXClientData, *const CXIdxIncludedFileInfo) -> CXIdxClientFile>,
17196cdb10c1Sopenharmony_ci    pub importedASTFile: Option<extern "C" fn(CXClientData, *const CXIdxImportedASTFileInfo) -> CXIdxClientASTFile>,
17206cdb10c1Sopenharmony_ci    pub startedTranslationUnit: Option<extern "C" fn(CXClientData, *mut c_void) -> CXIdxClientContainer>,
17216cdb10c1Sopenharmony_ci    pub indexDeclaration: Option<extern "C" fn(CXClientData, *const CXIdxDeclInfo)>,
17226cdb10c1Sopenharmony_ci    pub indexEntityReference: Option<extern "C" fn(CXClientData, *const CXIdxEntityRefInfo)>,
17236cdb10c1Sopenharmony_ci}
17246cdb10c1Sopenharmony_ci
17256cdb10c1Sopenharmony_cidefault!(IndexerCallbacks);
17266cdb10c1Sopenharmony_ci
17276cdb10c1Sopenharmony_ci//================================================
17286cdb10c1Sopenharmony_ci// Functions
17296cdb10c1Sopenharmony_ci//================================================
17306cdb10c1Sopenharmony_ci
17316cdb10c1Sopenharmony_cilink! {
17326cdb10c1Sopenharmony_ci    pub fn clang_CXCursorSet_contains(set: CXCursorSet, cursor: CXCursor) -> c_uint;
17336cdb10c1Sopenharmony_ci    pub fn clang_CXCursorSet_insert(set: CXCursorSet, cursor: CXCursor) -> c_uint;
17346cdb10c1Sopenharmony_ci    pub fn clang_CXIndex_getGlobalOptions(index: CXIndex) -> CXGlobalOptFlags;
17356cdb10c1Sopenharmony_ci    pub fn clang_CXIndex_setGlobalOptions(index: CXIndex, flags: CXGlobalOptFlags);
17366cdb10c1Sopenharmony_ci    /// Only available on `libclang` 6.0 and later.
17376cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_6_0")]
17386cdb10c1Sopenharmony_ci    pub fn clang_CXIndex_setInvocationEmissionPathOption(index: CXIndex, path: *const c_char);
17396cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
17406cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
17416cdb10c1Sopenharmony_ci    pub fn clang_CXXConstructor_isConvertingConstructor(cursor: CXCursor) -> c_uint;
17426cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
17436cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
17446cdb10c1Sopenharmony_ci    pub fn clang_CXXConstructor_isCopyConstructor(cursor: CXCursor) -> c_uint;
17456cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
17466cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
17476cdb10c1Sopenharmony_ci    pub fn clang_CXXConstructor_isDefaultConstructor(cursor: CXCursor) -> c_uint;
17486cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
17496cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
17506cdb10c1Sopenharmony_ci    pub fn clang_CXXConstructor_isMoveConstructor(cursor: CXCursor) -> c_uint;
17516cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.8 and later.
17526cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_8")]
17536cdb10c1Sopenharmony_ci    pub fn clang_CXXField_isMutable(cursor: CXCursor) -> c_uint;
17546cdb10c1Sopenharmony_ci    pub fn clang_CXXMethod_isConst(cursor: CXCursor) -> c_uint;
17556cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
17566cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
17576cdb10c1Sopenharmony_ci    pub fn clang_CXXMethod_isDefaulted(cursor: CXCursor) -> c_uint;
17586cdb10c1Sopenharmony_ci    pub fn clang_CXXMethod_isPureVirtual(cursor: CXCursor) -> c_uint;
17596cdb10c1Sopenharmony_ci    pub fn clang_CXXMethod_isStatic(cursor: CXCursor) -> c_uint;
17606cdb10c1Sopenharmony_ci    pub fn clang_CXXMethod_isVirtual(cursor: CXCursor) -> c_uint;
17616cdb10c1Sopenharmony_ci    /// Only available on `libclang` 6.0 and later.
17626cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_6_0")]
17636cdb10c1Sopenharmony_ci    pub fn clang_CXXRecord_isAbstract(cursor: CXCursor) -> c_uint;
17646cdb10c1Sopenharmony_ci    pub fn clang_CompilationDatabase_dispose(database: CXCompilationDatabase);
17656cdb10c1Sopenharmony_ci    pub fn clang_CompilationDatabase_fromDirectory(directory: *const c_char, error: *mut CXCompilationDatabase_Error) -> CXCompilationDatabase;
17666cdb10c1Sopenharmony_ci    pub fn clang_CompilationDatabase_getAllCompileCommands(database: CXCompilationDatabase) -> CXCompileCommands;
17676cdb10c1Sopenharmony_ci    pub fn clang_CompilationDatabase_getCompileCommands(database: CXCompilationDatabase, filename: *const c_char) -> CXCompileCommands;
17686cdb10c1Sopenharmony_ci    pub fn clang_CompileCommand_getArg(command: CXCompileCommand, index: c_uint) -> CXString;
17696cdb10c1Sopenharmony_ci    pub fn clang_CompileCommand_getDirectory(command: CXCompileCommand) -> CXString;
17706cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.8 and later.
17716cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_8")]
17726cdb10c1Sopenharmony_ci    pub fn clang_CompileCommand_getFilename(command: CXCompileCommand) -> CXString;
17736cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.8 and later.
17746cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_8")]
17756cdb10c1Sopenharmony_ci    pub fn clang_CompileCommand_getMappedSourceContent(command: CXCompileCommand, index: c_uint) -> CXString;
17766cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.8 and later.
17776cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_8")]
17786cdb10c1Sopenharmony_ci    pub fn clang_CompileCommand_getMappedSourcePath(command: CXCompileCommand, index: c_uint) -> CXString;
17796cdb10c1Sopenharmony_ci    pub fn clang_CompileCommand_getNumArgs(command: CXCompileCommand) -> c_uint;
17806cdb10c1Sopenharmony_ci    pub fn clang_CompileCommand_getNumMappedSources(command: CXCompileCommand) -> c_uint;
17816cdb10c1Sopenharmony_ci    pub fn clang_CompileCommands_dispose(command: CXCompileCommands);
17826cdb10c1Sopenharmony_ci    pub fn clang_CompileCommands_getCommand(command: CXCompileCommands, index: c_uint) -> CXCompileCommand;
17836cdb10c1Sopenharmony_ci    pub fn clang_CompileCommands_getSize(command: CXCompileCommands) -> c_uint;
17846cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
17856cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
17866cdb10c1Sopenharmony_ci    pub fn clang_Cursor_Evaluate(cursor: CXCursor) -> CXEvalResult;
17876cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getArgument(cursor: CXCursor, index: c_uint) -> CXCursor;
17886cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getBriefCommentText(cursor: CXCursor) -> CXString;
17896cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.8 and later.
17906cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_8")]
17916cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getCXXManglings(cursor: CXCursor) -> *mut CXStringSet;
17926cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getCommentRange(cursor: CXCursor) -> CXSourceRange;
17936cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.6 and later.
17946cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_6")]
17956cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getMangling(cursor: CXCursor) -> CXString;
17966cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getModule(cursor: CXCursor) -> CXModule;
17976cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getNumArguments(cursor: CXCursor) -> c_int;
17986cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.6 and later.
17996cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_6")]
18006cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getNumTemplateArguments(cursor: CXCursor) -> c_int;
18016cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getObjCDeclQualifiers(cursor: CXCursor) -> CXObjCDeclQualifierKind;
18026cdb10c1Sopenharmony_ci    /// Only available on `libclang` 6.0 and later.
18036cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_6_0")]
18046cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getObjCManglings(cursor: CXCursor) -> *mut CXStringSet;
18056cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getObjCPropertyAttributes(cursor: CXCursor, reserved: c_uint) -> CXObjCPropertyAttrKind;
18066cdb10c1Sopenharmony_ci    /// Only available on `libclang` 8.0 and later.
18076cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_8_0")]
18086cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getObjCPropertyGetterName(cursor: CXCursor) -> CXString;
18096cdb10c1Sopenharmony_ci    /// Only available on `libclang` 8.0 and later.
18106cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_8_0")]
18116cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getObjCPropertySetterName(cursor: CXCursor) -> CXString;
18126cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getObjCSelectorIndex(cursor: CXCursor) -> c_int;
18136cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.7 and later.
18146cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_7")]
18156cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getOffsetOfField(cursor: CXCursor) -> c_longlong;
18166cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getRawCommentText(cursor: CXCursor) -> CXString;
18176cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getReceiverType(cursor: CXCursor) -> CXType;
18186cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getSpellingNameRange(cursor: CXCursor, index: c_uint, reserved: c_uint) -> CXSourceRange;
18196cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.6 and later.
18206cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_6")]
18216cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getStorageClass(cursor: CXCursor) -> CX_StorageClass;
18226cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.6 and later.
18236cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_6")]
18246cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getTemplateArgumentKind(cursor: CXCursor, index: c_uint) -> CXTemplateArgumentKind;
18256cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.6 and later.
18266cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_6")]
18276cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getTemplateArgumentType(cursor: CXCursor, index: c_uint) -> CXType;
18286cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.6 and later.
18296cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_6")]
18306cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getTemplateArgumentUnsignedValue(cursor: CXCursor, index: c_uint) -> c_ulonglong;
18316cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.6 and later.
18326cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_6")]
18336cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getTemplateArgumentValue(cursor: CXCursor, index: c_uint) -> c_longlong;
18346cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getTranslationUnit(cursor: CXCursor) -> CXTranslationUnit;
18356cdb10c1Sopenharmony_ci    /// Only available on `libclang` 12.0 and later.
18366cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_12_0")]
18376cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getVarDeclInitializer(cursor: CXCursor) -> CXCursor;
18386cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
18396cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
18406cdb10c1Sopenharmony_ci    pub fn clang_Cursor_hasAttrs(cursor: CXCursor) -> c_uint;
18416cdb10c1Sopenharmony_ci    /// Only available on `libclang` 12.0 and later.
18426cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_12_0")]
18436cdb10c1Sopenharmony_ci    pub fn clang_Cursor_hasVarDeclGlobalStorage(cursor: CXCursor) -> c_uint;
18446cdb10c1Sopenharmony_ci    /// Only available on `libclang` 12.0 and later.
18456cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_12_0")]
18466cdb10c1Sopenharmony_ci    pub fn clang_Cursor_hasVarDeclExternalStorage(cursor: CXCursor) -> c_uint;
18476cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.7 and later.
18486cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_7")]
18496cdb10c1Sopenharmony_ci    pub fn clang_Cursor_isAnonymous(cursor: CXCursor) -> c_uint;
18506cdb10c1Sopenharmony_ci    /// Only available on `libclang` 9.0 and later.
18516cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_9_0")]
18526cdb10c1Sopenharmony_ci    pub fn clang_Cursor_isAnonymousRecordDecl(cursor: CXCursor) -> c_uint;
18536cdb10c1Sopenharmony_ci    pub fn clang_Cursor_isBitField(cursor: CXCursor) -> c_uint;
18546cdb10c1Sopenharmony_ci    pub fn clang_Cursor_isDynamicCall(cursor: CXCursor) -> c_int;
18556cdb10c1Sopenharmony_ci    /// Only available on `libclang` 5.0 and later.
18566cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_5_0")]
18576cdb10c1Sopenharmony_ci    pub fn clang_Cursor_isExternalSymbol(cursor: CXCursor, language: *mut CXString, from: *mut CXString, generated: *mut c_uint) -> c_uint;
18586cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
18596cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
18606cdb10c1Sopenharmony_ci    pub fn clang_Cursor_isFunctionInlined(cursor: CXCursor) -> c_uint;
18616cdb10c1Sopenharmony_ci    /// Only available on `libclang` 9.0 and later.
18626cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_9_0")]
18636cdb10c1Sopenharmony_ci    pub fn clang_Cursor_isInlineNamespace(cursor: CXCursor) -> c_uint;
18646cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
18656cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
18666cdb10c1Sopenharmony_ci    pub fn clang_Cursor_isMacroBuiltin(cursor: CXCursor) -> c_uint;
18676cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
18686cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
18696cdb10c1Sopenharmony_ci    pub fn clang_Cursor_isMacroFunctionLike(cursor: CXCursor) -> c_uint;
18706cdb10c1Sopenharmony_ci    pub fn clang_Cursor_isNull(cursor: CXCursor) -> c_int;
18716cdb10c1Sopenharmony_ci    pub fn clang_Cursor_isObjCOptional(cursor: CXCursor) -> c_uint;
18726cdb10c1Sopenharmony_ci    pub fn clang_Cursor_isVariadic(cursor: CXCursor) -> c_uint;
18736cdb10c1Sopenharmony_ci    /// Only available on `libclang` 5.0 and later.
18746cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_5_0")]
18756cdb10c1Sopenharmony_ci    pub fn clang_EnumDecl_isScoped(cursor: CXCursor) -> c_uint;
18766cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
18776cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
18786cdb10c1Sopenharmony_ci    pub fn clang_EvalResult_dispose(result: CXEvalResult);
18796cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
18806cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
18816cdb10c1Sopenharmony_ci    pub fn clang_EvalResult_getAsDouble(result: CXEvalResult) -> libc::c_double;
18826cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
18836cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
18846cdb10c1Sopenharmony_ci    pub fn clang_EvalResult_getAsInt(result: CXEvalResult) -> c_int;
18856cdb10c1Sopenharmony_ci    /// Only available on `libclang` 4.0 and later.
18866cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_4_0")]
18876cdb10c1Sopenharmony_ci    pub fn clang_EvalResult_getAsLongLong(result: CXEvalResult) -> c_longlong;
18886cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
18896cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
18906cdb10c1Sopenharmony_ci    pub fn clang_EvalResult_getAsStr(result: CXEvalResult) -> *const c_char;
18916cdb10c1Sopenharmony_ci    /// Only available on `libclang` 4.0 and later.
18926cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_4_0")]
18936cdb10c1Sopenharmony_ci    pub fn clang_EvalResult_getAsUnsigned(result: CXEvalResult) -> c_ulonglong;
18946cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
18956cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
18966cdb10c1Sopenharmony_ci    pub fn clang_EvalResult_getKind(result: CXEvalResult) -> CXEvalResultKind;
18976cdb10c1Sopenharmony_ci    /// Only available on `libclang` 4.0 and later.
18986cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_4_0")]
18996cdb10c1Sopenharmony_ci    pub fn clang_EvalResult_isUnsignedInt(result: CXEvalResult) -> c_uint;
19006cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.6 and later.
19016cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_6")]
19026cdb10c1Sopenharmony_ci    pub fn clang_File_isEqual(left: CXFile, right: CXFile) -> c_int;
19036cdb10c1Sopenharmony_ci    /// Only available on `libclang` 7.0 and later.
19046cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_7_0")]
19056cdb10c1Sopenharmony_ci    pub fn clang_File_tryGetRealPathName(file: CXFile) -> CXString;
19066cdb10c1Sopenharmony_ci    pub fn clang_IndexAction_create(index: CXIndex) -> CXIndexAction;
19076cdb10c1Sopenharmony_ci    pub fn clang_IndexAction_dispose(index: CXIndexAction);
19086cdb10c1Sopenharmony_ci    pub fn clang_Location_isFromMainFile(location: CXSourceLocation) -> c_int;
19096cdb10c1Sopenharmony_ci    pub fn clang_Location_isInSystemHeader(location: CXSourceLocation) -> c_int;
19106cdb10c1Sopenharmony_ci    pub fn clang_Module_getASTFile(module: CXModule) -> CXFile;
19116cdb10c1Sopenharmony_ci    pub fn clang_Module_getFullName(module: CXModule) -> CXString;
19126cdb10c1Sopenharmony_ci    pub fn clang_Module_getName(module: CXModule) -> CXString;
19136cdb10c1Sopenharmony_ci    pub fn clang_Module_getNumTopLevelHeaders(tu: CXTranslationUnit, module: CXModule) -> c_uint;
19146cdb10c1Sopenharmony_ci    pub fn clang_Module_getParent(module: CXModule) -> CXModule;
19156cdb10c1Sopenharmony_ci    pub fn clang_Module_getTopLevelHeader(tu: CXTranslationUnit, module: CXModule, index: c_uint) -> CXFile;
19166cdb10c1Sopenharmony_ci    pub fn clang_Module_isSystem(module: CXModule) -> c_int;
19176cdb10c1Sopenharmony_ci    /// Only available on `libclang` 7.0 and later.
19186cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_7_0")]
19196cdb10c1Sopenharmony_ci    pub fn clang_PrintingPolicy_dispose(policy: CXPrintingPolicy);
19206cdb10c1Sopenharmony_ci    /// Only available on `libclang` 7.0 and later.
19216cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_7_0")]
19226cdb10c1Sopenharmony_ci    pub fn clang_PrintingPolicy_getProperty(policy: CXPrintingPolicy, property: CXPrintingPolicyProperty) -> c_uint;
19236cdb10c1Sopenharmony_ci    /// Only available on `libclang` 7.0 and later.
19246cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_7_0")]
19256cdb10c1Sopenharmony_ci    pub fn clang_PrintingPolicy_setProperty(policy: CXPrintingPolicy, property: CXPrintingPolicyProperty, value: c_uint);
19266cdb10c1Sopenharmony_ci    pub fn clang_Range_isNull(range: CXSourceRange) -> c_int;
19276cdb10c1Sopenharmony_ci    /// Only available on `libclang` 5.0 and later.
19286cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_5_0")]
19296cdb10c1Sopenharmony_ci    pub fn clang_TargetInfo_dispose(info: CXTargetInfo);
19306cdb10c1Sopenharmony_ci    /// Only available on `libclang` 5.0 and later.
19316cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_5_0")]
19326cdb10c1Sopenharmony_ci    pub fn clang_TargetInfo_getPointerWidth(info: CXTargetInfo) -> c_int;
19336cdb10c1Sopenharmony_ci    /// Only available on `libclang` 5.0 and later.
19346cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_5_0")]
19356cdb10c1Sopenharmony_ci    pub fn clang_TargetInfo_getTriple(info: CXTargetInfo) -> CXString;
19366cdb10c1Sopenharmony_ci    pub fn clang_Type_getAlignOf(type_: CXType) -> c_longlong;
19376cdb10c1Sopenharmony_ci    pub fn clang_Type_getCXXRefQualifier(type_: CXType) -> CXRefQualifierKind;
19386cdb10c1Sopenharmony_ci    pub fn clang_Type_getClassType(type_: CXType) -> CXType;
19396cdb10c1Sopenharmony_ci    /// Only available on `libclang` 8.0 and later.
19406cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_8_0")]
19416cdb10c1Sopenharmony_ci    pub fn clang_Type_getModifiedType(type_: CXType) -> CXType;
19426cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
19436cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
19446cdb10c1Sopenharmony_ci    pub fn clang_Type_getNamedType(type_: CXType) -> CXType;
19456cdb10c1Sopenharmony_ci    /// Only available on `libclang` 8.0 and later.
19466cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_8_0")]
19476cdb10c1Sopenharmony_ci    pub fn clang_Type_getNullability(type_: CXType) -> CXTypeNullabilityKind;
19486cdb10c1Sopenharmony_ci    /// Only available on `libclang` 8.0 and later.
19496cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_8_0")]
19506cdb10c1Sopenharmony_ci    pub fn clang_Type_getNumObjCProtocolRefs(type_: CXType) -> c_uint;
19516cdb10c1Sopenharmony_ci    /// Only available on `libclang` 8.0 and later.
19526cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_8_0")]
19536cdb10c1Sopenharmony_ci    pub fn clang_Type_getNumObjCTypeArgs(type_: CXType) -> c_uint;
19546cdb10c1Sopenharmony_ci    pub fn clang_Type_getNumTemplateArguments(type_: CXType) -> c_int;
19556cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.9 and later.
19566cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_9")]
19576cdb10c1Sopenharmony_ci    pub fn clang_Type_getObjCEncoding(type_: CXType) -> CXString;
19586cdb10c1Sopenharmony_ci    /// Only available on `libclang` 8.0 and later.
19596cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_8_0")]
19606cdb10c1Sopenharmony_ci    pub fn clang_Type_getObjCObjectBaseType(type_: CXType) -> CXType;
19616cdb10c1Sopenharmony_ci    /// Only available on `libclang` 8.0 and later.
19626cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_8_0")]
19636cdb10c1Sopenharmony_ci    pub fn clang_Type_getObjCProtocolDecl(type_: CXType, index: c_uint) -> CXCursor;
19646cdb10c1Sopenharmony_ci    /// Only available on `libclang` 8.0 and later.
19656cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_8_0")]
19666cdb10c1Sopenharmony_ci    pub fn clang_Type_getObjCTypeArg(type_: CXType, index: c_uint) -> CXType;
19676cdb10c1Sopenharmony_ci    pub fn clang_Type_getOffsetOf(type_: CXType, field: *const c_char) -> c_longlong;
19686cdb10c1Sopenharmony_ci    pub fn clang_Type_getSizeOf(type_: CXType) -> c_longlong;
19696cdb10c1Sopenharmony_ci    pub fn clang_Type_getTemplateArgumentAsType(type_: CXType, index: c_uint) -> CXType;
19706cdb10c1Sopenharmony_ci    /// Only available on `libclang` 11.0 and later.
19716cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_11_0")]
19726cdb10c1Sopenharmony_ci    pub fn clang_Type_getValueType(type_: CXType) -> CXType;
19736cdb10c1Sopenharmony_ci    /// Only available on `libclang` 5.0 and later.
19746cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_5_0")]
19756cdb10c1Sopenharmony_ci    pub fn clang_Type_isTransparentTagTypedef(type_: CXType) -> c_uint;
19766cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.7 and later.
19776cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_7")]
19786cdb10c1Sopenharmony_ci    pub fn clang_Type_visitFields(type_: CXType, visitor: CXFieldVisitor, data: CXClientData) -> CXVisitorResult;
19796cdb10c1Sopenharmony_ci    pub fn clang_annotateTokens(tu: CXTranslationUnit, tokens: *mut CXToken, n_tokens: c_uint, cursors: *mut CXCursor);
19806cdb10c1Sopenharmony_ci    pub fn clang_codeCompleteAt(tu: CXTranslationUnit, file: *const c_char, line: c_uint, column: c_uint, unsaved: *mut CXUnsavedFile, n_unsaved: c_uint, flags: CXCodeComplete_Flags) -> *mut CXCodeCompleteResults;
19816cdb10c1Sopenharmony_ci    pub fn clang_codeCompleteGetContainerKind(results: *mut CXCodeCompleteResults, incomplete: *mut c_uint) -> CXCursorKind;
19826cdb10c1Sopenharmony_ci    pub fn clang_codeCompleteGetContainerUSR(results: *mut CXCodeCompleteResults) -> CXString;
19836cdb10c1Sopenharmony_ci    pub fn clang_codeCompleteGetContexts(results: *mut CXCodeCompleteResults) -> c_ulonglong;
19846cdb10c1Sopenharmony_ci    pub fn clang_codeCompleteGetDiagnostic(results: *mut CXCodeCompleteResults, index: c_uint) -> CXDiagnostic;
19856cdb10c1Sopenharmony_ci    pub fn clang_codeCompleteGetNumDiagnostics(results: *mut CXCodeCompleteResults) -> c_uint;
19866cdb10c1Sopenharmony_ci    pub fn clang_codeCompleteGetObjCSelector(results: *mut CXCodeCompleteResults) -> CXString;
19876cdb10c1Sopenharmony_ci    pub fn clang_constructUSR_ObjCCategory(class: *const c_char, category: *const c_char) -> CXString;
19886cdb10c1Sopenharmony_ci    pub fn clang_constructUSR_ObjCClass(class: *const c_char) -> CXString;
19896cdb10c1Sopenharmony_ci    pub fn clang_constructUSR_ObjCIvar(name: *const c_char, usr: CXString) -> CXString;
19906cdb10c1Sopenharmony_ci    pub fn clang_constructUSR_ObjCMethod(name: *const c_char, instance: c_uint, usr: CXString) -> CXString;
19916cdb10c1Sopenharmony_ci    pub fn clang_constructUSR_ObjCProperty(property: *const c_char, usr: CXString) -> CXString;
19926cdb10c1Sopenharmony_ci    pub fn clang_constructUSR_ObjCProtocol(protocol: *const c_char) -> CXString;
19936cdb10c1Sopenharmony_ci    pub fn clang_createCXCursorSet() -> CXCursorSet;
19946cdb10c1Sopenharmony_ci    pub fn clang_createIndex(exclude: c_int, display: c_int) -> CXIndex;
19956cdb10c1Sopenharmony_ci    pub fn clang_createTranslationUnit(index: CXIndex, file: *const c_char) -> CXTranslationUnit;
19966cdb10c1Sopenharmony_ci    pub fn clang_createTranslationUnit2(index: CXIndex, file: *const c_char, tu: *mut CXTranslationUnit) -> CXErrorCode;
19976cdb10c1Sopenharmony_ci    pub fn clang_createTranslationUnitFromSourceFile(index: CXIndex, file: *const c_char, n_arguments: c_int, arguments: *const *const c_char, n_unsaved: c_uint, unsaved: *mut CXUnsavedFile) -> CXTranslationUnit;
19986cdb10c1Sopenharmony_ci    pub fn clang_defaultCodeCompleteOptions() -> CXCodeComplete_Flags;
19996cdb10c1Sopenharmony_ci    pub fn clang_defaultDiagnosticDisplayOptions() -> CXDiagnosticDisplayOptions;
20006cdb10c1Sopenharmony_ci    pub fn clang_defaultEditingTranslationUnitOptions() -> CXTranslationUnit_Flags;
20016cdb10c1Sopenharmony_ci    pub fn clang_defaultReparseOptions(tu: CXTranslationUnit) -> CXReparse_Flags;
20026cdb10c1Sopenharmony_ci    pub fn clang_defaultSaveOptions(tu: CXTranslationUnit) -> CXSaveTranslationUnit_Flags;
20036cdb10c1Sopenharmony_ci    pub fn clang_disposeCXCursorSet(set: CXCursorSet);
20046cdb10c1Sopenharmony_ci    pub fn clang_disposeCXPlatformAvailability(availability: *mut CXPlatformAvailability);
20056cdb10c1Sopenharmony_ci    pub fn clang_disposeCXTUResourceUsage(usage: CXTUResourceUsage);
20066cdb10c1Sopenharmony_ci    pub fn clang_disposeCodeCompleteResults(results: *mut CXCodeCompleteResults);
20076cdb10c1Sopenharmony_ci    pub fn clang_disposeDiagnostic(diagnostic: CXDiagnostic);
20086cdb10c1Sopenharmony_ci    pub fn clang_disposeDiagnosticSet(diagnostic: CXDiagnosticSet);
20096cdb10c1Sopenharmony_ci    pub fn clang_disposeIndex(index: CXIndex);
20106cdb10c1Sopenharmony_ci    pub fn clang_disposeOverriddenCursors(cursors: *mut CXCursor);
20116cdb10c1Sopenharmony_ci    pub fn clang_disposeSourceRangeList(list: *mut CXSourceRangeList);
20126cdb10c1Sopenharmony_ci    pub fn clang_disposeString(string: CXString);
20136cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.8 and later.
20146cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_8")]
20156cdb10c1Sopenharmony_ci    pub fn clang_disposeStringSet(set: *mut CXStringSet);
20166cdb10c1Sopenharmony_ci    pub fn clang_disposeTokens(tu: CXTranslationUnit, tokens: *mut CXToken, n_tokens: c_uint);
20176cdb10c1Sopenharmony_ci    pub fn clang_disposeTranslationUnit(tu: CXTranslationUnit);
20186cdb10c1Sopenharmony_ci    pub fn clang_enableStackTraces();
20196cdb10c1Sopenharmony_ci    pub fn clang_equalCursors(left: CXCursor, right: CXCursor) -> c_uint;
20206cdb10c1Sopenharmony_ci    pub fn clang_equalLocations(left: CXSourceLocation, right: CXSourceLocation) -> c_uint;
20216cdb10c1Sopenharmony_ci    pub fn clang_equalRanges(left: CXSourceRange, right: CXSourceRange) -> c_uint;
20226cdb10c1Sopenharmony_ci    pub fn clang_equalTypes(left: CXType, right: CXType) -> c_uint;
20236cdb10c1Sopenharmony_ci    pub fn clang_executeOnThread(function: extern fn(*mut c_void), data: *mut c_void, stack: c_uint);
20246cdb10c1Sopenharmony_ci    pub fn clang_findIncludesInFile(tu: CXTranslationUnit, file: CXFile, cursor: CXCursorAndRangeVisitor) -> CXResult;
20256cdb10c1Sopenharmony_ci    pub fn clang_findReferencesInFile(cursor: CXCursor, file: CXFile, visitor: CXCursorAndRangeVisitor) -> CXResult;
20266cdb10c1Sopenharmony_ci    pub fn clang_formatDiagnostic(diagnostic: CXDiagnostic, flags: CXDiagnosticDisplayOptions) -> CXString;
20276cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.7 and later.
20286cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_7")]
20296cdb10c1Sopenharmony_ci    pub fn clang_free(buffer: *mut c_void);
20306cdb10c1Sopenharmony_ci    /// Only available on `libclang` 5.0 and later.
20316cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_5_0")]
20326cdb10c1Sopenharmony_ci    pub fn clang_getAddressSpace(type_: CXType) -> c_uint;
20336cdb10c1Sopenharmony_ci    /// Only available on `libclang` 4.0 and later.
20346cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_4_0")]
20356cdb10c1Sopenharmony_ci    pub fn clang_getAllSkippedRanges(tu: CXTranslationUnit) -> *mut CXSourceRangeList;
20366cdb10c1Sopenharmony_ci    pub fn clang_getArgType(type_: CXType, index: c_uint) -> CXType;
20376cdb10c1Sopenharmony_ci    pub fn clang_getArrayElementType(type_: CXType) -> CXType;
20386cdb10c1Sopenharmony_ci    pub fn clang_getArraySize(type_: CXType) -> c_longlong;
20396cdb10c1Sopenharmony_ci    pub fn clang_getCString(string: CXString) -> *const c_char;
20406cdb10c1Sopenharmony_ci    pub fn clang_getCXTUResourceUsage(tu: CXTranslationUnit) -> CXTUResourceUsage;
20416cdb10c1Sopenharmony_ci    pub fn clang_getCXXAccessSpecifier(cursor: CXCursor) -> CX_CXXAccessSpecifier;
20426cdb10c1Sopenharmony_ci    pub fn clang_getCanonicalCursor(cursor: CXCursor) -> CXCursor;
20436cdb10c1Sopenharmony_ci    pub fn clang_getCanonicalType(type_: CXType) -> CXType;
20446cdb10c1Sopenharmony_ci    pub fn clang_getChildDiagnostics(diagnostic: CXDiagnostic) -> CXDiagnosticSet;
20456cdb10c1Sopenharmony_ci    pub fn clang_getClangVersion() -> CXString;
20466cdb10c1Sopenharmony_ci    pub fn clang_getCompletionAnnotation(string: CXCompletionString, index: c_uint) -> CXString;
20476cdb10c1Sopenharmony_ci    pub fn clang_getCompletionAvailability(string: CXCompletionString) -> CXAvailabilityKind;
20486cdb10c1Sopenharmony_ci    pub fn clang_getCompletionBriefComment(string: CXCompletionString) -> CXString;
20496cdb10c1Sopenharmony_ci    pub fn clang_getCompletionChunkCompletionString(string: CXCompletionString, index: c_uint) -> CXCompletionString;
20506cdb10c1Sopenharmony_ci    pub fn clang_getCompletionChunkKind(string: CXCompletionString, index: c_uint) -> CXCompletionChunkKind;
20516cdb10c1Sopenharmony_ci    pub fn clang_getCompletionChunkText(string: CXCompletionString, index: c_uint) -> CXString;
20526cdb10c1Sopenharmony_ci    /// Only available on `libclang` 7.0 and later.
20536cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_7_0")]
20546cdb10c1Sopenharmony_ci    pub fn clang_getCompletionFixIt(results: *mut CXCodeCompleteResults, completion_index: c_uint, fixit_index: c_uint, range: *mut CXSourceRange) -> CXString;
20556cdb10c1Sopenharmony_ci    pub fn clang_getCompletionNumAnnotations(string: CXCompletionString) -> c_uint;
20566cdb10c1Sopenharmony_ci    /// Only available on `libclang` 7.0 and later.
20576cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_7_0")]
20586cdb10c1Sopenharmony_ci    pub fn clang_getCompletionNumFixIts(results: *mut CXCodeCompleteResults, completion_index: c_uint) -> c_uint;
20596cdb10c1Sopenharmony_ci    pub fn clang_getCompletionParent(string: CXCompletionString, kind: *mut CXCursorKind) -> CXString;
20606cdb10c1Sopenharmony_ci    pub fn clang_getCompletionPriority(string: CXCompletionString) -> c_uint;
20616cdb10c1Sopenharmony_ci    pub fn clang_getCursor(tu: CXTranslationUnit, location: CXSourceLocation) -> CXCursor;
20626cdb10c1Sopenharmony_ci    pub fn clang_getCursorAvailability(cursor: CXCursor) -> CXAvailabilityKind;
20636cdb10c1Sopenharmony_ci    pub fn clang_getCursorCompletionString(cursor: CXCursor) -> CXCompletionString;
20646cdb10c1Sopenharmony_ci    pub fn clang_getCursorDefinition(cursor: CXCursor) -> CXCursor;
20656cdb10c1Sopenharmony_ci    pub fn clang_getCursorDisplayName(cursor: CXCursor) -> CXString;
20666cdb10c1Sopenharmony_ci    /// Only available on `libclang` 5.0 and later.
20676cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_5_0")]
20686cdb10c1Sopenharmony_ci    pub fn clang_getCursorExceptionSpecificationType(cursor: CXCursor) -> CXCursor_ExceptionSpecificationKind;
20696cdb10c1Sopenharmony_ci    pub fn clang_getCursorExtent(cursor: CXCursor) -> CXSourceRange;
20706cdb10c1Sopenharmony_ci    pub fn clang_getCursorKind(cursor: CXCursor) -> CXCursorKind;
20716cdb10c1Sopenharmony_ci    pub fn clang_getCursorKindSpelling(kind: CXCursorKind) -> CXString;
20726cdb10c1Sopenharmony_ci    pub fn clang_getCursorLanguage(cursor: CXCursor) -> CXLanguageKind;
20736cdb10c1Sopenharmony_ci    pub fn clang_getCursorLexicalParent(cursor: CXCursor) -> CXCursor;
20746cdb10c1Sopenharmony_ci    pub fn clang_getCursorLinkage(cursor: CXCursor) -> CXLinkageKind;
20756cdb10c1Sopenharmony_ci    pub fn clang_getCursorLocation(cursor: CXCursor) -> CXSourceLocation;
20766cdb10c1Sopenharmony_ci    pub fn clang_getCursorPlatformAvailability(cursor: CXCursor, deprecated: *mut c_int, deprecated_message: *mut CXString, unavailable: *mut c_int, unavailable_message: *mut CXString, availability: *mut CXPlatformAvailability, n_availability: c_int) -> c_int;
20776cdb10c1Sopenharmony_ci    /// Only available on `libclang` 7.0 and later.
20786cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_7_0")]
20796cdb10c1Sopenharmony_ci    pub fn clang_getCursorPrettyPrinted(cursor: CXCursor, policy: CXPrintingPolicy) -> CXString;
20806cdb10c1Sopenharmony_ci    /// Only available on `libclang` 7.0 and later.
20816cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_7_0")]
20826cdb10c1Sopenharmony_ci    pub fn clang_getCursorPrintingPolicy(cursor: CXCursor) -> CXPrintingPolicy;
20836cdb10c1Sopenharmony_ci    pub fn clang_getCursorReferenceNameRange(cursor: CXCursor, flags: CXNameRefFlags, index: c_uint) -> CXSourceRange;
20846cdb10c1Sopenharmony_ci    pub fn clang_getCursorReferenced(cursor: CXCursor) -> CXCursor;
20856cdb10c1Sopenharmony_ci    pub fn clang_getCursorResultType(cursor: CXCursor) -> CXType;
20866cdb10c1Sopenharmony_ci    pub fn clang_getCursorSemanticParent(cursor: CXCursor) -> CXCursor;
20876cdb10c1Sopenharmony_ci    pub fn clang_getCursorSpelling(cursor: CXCursor) -> CXString;
20886cdb10c1Sopenharmony_ci    /// Only available on `libclang` 6.0 and later.
20896cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_6_0")]
20906cdb10c1Sopenharmony_ci    pub fn clang_getCursorTLSKind(cursor: CXCursor) -> CXTLSKind;
20916cdb10c1Sopenharmony_ci    pub fn clang_getCursorType(cursor: CXCursor) -> CXType;
20926cdb10c1Sopenharmony_ci    pub fn clang_getCursorUSR(cursor: CXCursor) -> CXString;
20936cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.8 and later.
20946cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_8")]
20956cdb10c1Sopenharmony_ci    pub fn clang_getCursorVisibility(cursor: CXCursor) -> CXVisibilityKind;
20966cdb10c1Sopenharmony_ci    pub fn clang_getDeclObjCTypeEncoding(cursor: CXCursor) -> CXString;
20976cdb10c1Sopenharmony_ci    pub fn clang_getDefinitionSpellingAndExtent(cursor: CXCursor, start: *mut *const c_char, end: *mut *const c_char, start_line: *mut c_uint, start_column: *mut c_uint, end_line: *mut c_uint, end_column: *mut c_uint);
20986cdb10c1Sopenharmony_ci    pub fn clang_getDiagnostic(tu: CXTranslationUnit, index: c_uint) -> CXDiagnostic;
20996cdb10c1Sopenharmony_ci    pub fn clang_getDiagnosticCategory(diagnostic: CXDiagnostic) -> c_uint;
21006cdb10c1Sopenharmony_ci    pub fn clang_getDiagnosticCategoryName(category: c_uint) -> CXString;
21016cdb10c1Sopenharmony_ci    pub fn clang_getDiagnosticCategoryText(diagnostic: CXDiagnostic) -> CXString;
21026cdb10c1Sopenharmony_ci    pub fn clang_getDiagnosticFixIt(diagnostic: CXDiagnostic, index: c_uint, range: *mut CXSourceRange) -> CXString;
21036cdb10c1Sopenharmony_ci    pub fn clang_getDiagnosticInSet(diagnostic: CXDiagnosticSet, index: c_uint) -> CXDiagnostic;
21046cdb10c1Sopenharmony_ci    pub fn clang_getDiagnosticLocation(diagnostic: CXDiagnostic) -> CXSourceLocation;
21056cdb10c1Sopenharmony_ci    pub fn clang_getDiagnosticNumFixIts(diagnostic: CXDiagnostic) -> c_uint;
21066cdb10c1Sopenharmony_ci    pub fn clang_getDiagnosticNumRanges(diagnostic: CXDiagnostic) -> c_uint;
21076cdb10c1Sopenharmony_ci    pub fn clang_getDiagnosticOption(diagnostic: CXDiagnostic, option: *mut CXString) -> CXString;
21086cdb10c1Sopenharmony_ci    pub fn clang_getDiagnosticRange(diagnostic: CXDiagnostic, index: c_uint) -> CXSourceRange;
21096cdb10c1Sopenharmony_ci    pub fn clang_getDiagnosticSetFromTU(tu: CXTranslationUnit) -> CXDiagnosticSet;
21106cdb10c1Sopenharmony_ci    pub fn clang_getDiagnosticSeverity(diagnostic: CXDiagnostic) -> CXDiagnosticSeverity;
21116cdb10c1Sopenharmony_ci    pub fn clang_getDiagnosticSpelling(diagnostic: CXDiagnostic) -> CXString;
21126cdb10c1Sopenharmony_ci    pub fn clang_getElementType(type_: CXType) -> CXType;
21136cdb10c1Sopenharmony_ci    pub fn clang_getEnumConstantDeclUnsignedValue(cursor: CXCursor) -> c_ulonglong;
21146cdb10c1Sopenharmony_ci    pub fn clang_getEnumConstantDeclValue(cursor: CXCursor) -> c_longlong;
21156cdb10c1Sopenharmony_ci    pub fn clang_getEnumDeclIntegerType(cursor: CXCursor) -> CXType;
21166cdb10c1Sopenharmony_ci    /// Only available on `libclang` 5.0 and later.
21176cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_5_0")]
21186cdb10c1Sopenharmony_ci    pub fn clang_getExceptionSpecificationType(type_: CXType) -> CXCursor_ExceptionSpecificationKind;
21196cdb10c1Sopenharmony_ci    pub fn clang_getExpansionLocation(location: CXSourceLocation, file: *mut CXFile, line: *mut c_uint, column: *mut c_uint, offset: *mut c_uint);
21206cdb10c1Sopenharmony_ci    pub fn clang_getFieldDeclBitWidth(cursor: CXCursor) -> c_int;
21216cdb10c1Sopenharmony_ci    pub fn clang_getFile(tu: CXTranslationUnit, file: *const c_char) -> CXFile;
21226cdb10c1Sopenharmony_ci    /// Only available on `libclang` 6.0 and later.
21236cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_6_0")]
21246cdb10c1Sopenharmony_ci    pub fn clang_getFileContents(tu: CXTranslationUnit, file: CXFile, size: *mut size_t) -> *const c_char;
21256cdb10c1Sopenharmony_ci    pub fn clang_getFileLocation(location: CXSourceLocation, file: *mut CXFile, line: *mut c_uint, column: *mut c_uint, offset: *mut c_uint);
21266cdb10c1Sopenharmony_ci    pub fn clang_getFileName(file: CXFile) -> CXString;
21276cdb10c1Sopenharmony_ci    pub fn clang_getFileTime(file: CXFile) -> time_t;
21286cdb10c1Sopenharmony_ci    pub fn clang_getFileUniqueID(file: CXFile, id: *mut CXFileUniqueID) -> c_int;
21296cdb10c1Sopenharmony_ci    pub fn clang_getFunctionTypeCallingConv(type_: CXType) -> CXCallingConv;
21306cdb10c1Sopenharmony_ci    pub fn clang_getIBOutletCollectionType(cursor: CXCursor) -> CXType;
21316cdb10c1Sopenharmony_ci    pub fn clang_getIncludedFile(cursor: CXCursor) -> CXFile;
21326cdb10c1Sopenharmony_ci    pub fn clang_getInclusions(tu: CXTranslationUnit, visitor: CXInclusionVisitor, data: CXClientData);
21336cdb10c1Sopenharmony_ci    pub fn clang_getInstantiationLocation(location: CXSourceLocation, file: *mut CXFile, line: *mut c_uint, column: *mut c_uint, offset: *mut c_uint);
21346cdb10c1Sopenharmony_ci    pub fn clang_getLocation(tu: CXTranslationUnit, file: CXFile, line: c_uint, column: c_uint) -> CXSourceLocation;
21356cdb10c1Sopenharmony_ci    pub fn clang_getLocationForOffset(tu: CXTranslationUnit, file: CXFile, offset: c_uint) -> CXSourceLocation;
21366cdb10c1Sopenharmony_ci    pub fn clang_getModuleForFile(tu: CXTranslationUnit, file: CXFile) -> CXModule;
21376cdb10c1Sopenharmony_ci    pub fn clang_getNullCursor() -> CXCursor;
21386cdb10c1Sopenharmony_ci    pub fn clang_getNullLocation() -> CXSourceLocation;
21396cdb10c1Sopenharmony_ci    pub fn clang_getNullRange() -> CXSourceRange;
21406cdb10c1Sopenharmony_ci    pub fn clang_getNumArgTypes(type_: CXType) -> c_int;
21416cdb10c1Sopenharmony_ci    pub fn clang_getNumCompletionChunks(string: CXCompletionString) -> c_uint;
21426cdb10c1Sopenharmony_ci    pub fn clang_getNumDiagnostics(tu: CXTranslationUnit) -> c_uint;
21436cdb10c1Sopenharmony_ci    pub fn clang_getNumDiagnosticsInSet(diagnostic: CXDiagnosticSet) -> c_uint;
21446cdb10c1Sopenharmony_ci    pub fn clang_getNumElements(type_: CXType) -> c_longlong;
21456cdb10c1Sopenharmony_ci    pub fn clang_getNumOverloadedDecls(cursor: CXCursor) -> c_uint;
21466cdb10c1Sopenharmony_ci    pub fn clang_getOverloadedDecl(cursor: CXCursor, index: c_uint) -> CXCursor;
21476cdb10c1Sopenharmony_ci    pub fn clang_getOverriddenCursors(cursor: CXCursor, cursors: *mut *mut CXCursor, n_cursors: *mut c_uint);
21486cdb10c1Sopenharmony_ci    pub fn clang_getPointeeType(type_: CXType) -> CXType;
21496cdb10c1Sopenharmony_ci    pub fn clang_getPresumedLocation(location: CXSourceLocation, file: *mut CXString, line: *mut c_uint, column: *mut c_uint);
21506cdb10c1Sopenharmony_ci    pub fn clang_getRange(start: CXSourceLocation, end: CXSourceLocation) -> CXSourceRange;
21516cdb10c1Sopenharmony_ci    pub fn clang_getRangeEnd(range: CXSourceRange) -> CXSourceLocation;
21526cdb10c1Sopenharmony_ci    pub fn clang_getRangeStart(range: CXSourceRange) -> CXSourceLocation;
21536cdb10c1Sopenharmony_ci    pub fn clang_getRemappings(file: *const c_char) -> CXRemapping;
21546cdb10c1Sopenharmony_ci    pub fn clang_getRemappingsFromFileList(files: *mut *const c_char, n_files: c_uint) -> CXRemapping;
21556cdb10c1Sopenharmony_ci    pub fn clang_getResultType(type_: CXType) -> CXType;
21566cdb10c1Sopenharmony_ci    pub fn clang_getSkippedRanges(tu: CXTranslationUnit, file: CXFile) -> *mut CXSourceRangeList;
21576cdb10c1Sopenharmony_ci    pub fn clang_getSpecializedCursorTemplate(cursor: CXCursor) -> CXCursor;
21586cdb10c1Sopenharmony_ci    pub fn clang_getSpellingLocation(location: CXSourceLocation, file: *mut CXFile, line: *mut c_uint, column: *mut c_uint, offset: *mut c_uint);
21596cdb10c1Sopenharmony_ci    pub fn clang_getTUResourceUsageName(kind: CXTUResourceUsageKind) -> *const c_char;
21606cdb10c1Sopenharmony_ci    pub fn clang_getTemplateCursorKind(cursor: CXCursor) -> CXCursorKind;
21616cdb10c1Sopenharmony_ci    pub fn clang_getToken(tu: CXTranslationUnit, location: CXSourceLocation) -> *mut CXToken;
21626cdb10c1Sopenharmony_ci    pub fn clang_getTokenExtent(tu: CXTranslationUnit, token: CXToken) -> CXSourceRange;
21636cdb10c1Sopenharmony_ci    pub fn clang_getTokenKind(token: CXToken) -> CXTokenKind;
21646cdb10c1Sopenharmony_ci    pub fn clang_getTokenLocation(tu: CXTranslationUnit, token: CXToken) -> CXSourceLocation;
21656cdb10c1Sopenharmony_ci    pub fn clang_getTokenSpelling(tu: CXTranslationUnit, token: CXToken) -> CXString;
21666cdb10c1Sopenharmony_ci    pub fn clang_getTranslationUnitCursor(tu: CXTranslationUnit) -> CXCursor;
21676cdb10c1Sopenharmony_ci    pub fn clang_getTranslationUnitSpelling(tu: CXTranslationUnit) -> CXString;
21686cdb10c1Sopenharmony_ci    /// Only available on `libclang` 5.0 and later.
21696cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_5_0")]
21706cdb10c1Sopenharmony_ci    pub fn clang_getTranslationUnitTargetInfo(tu: CXTranslationUnit) -> CXTargetInfo;
21716cdb10c1Sopenharmony_ci    /// Only available on `libclang` 16.0 and later.
21726cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_16_0")]
21736cdb10c1Sopenharmony_ci    pub fn clang_getUnqualifiedType(type_: CXType) -> CXType;
21746cdb10c1Sopenharmony_ci    /// Only available on `libclang` 16.0 and later.
21756cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_16_0")]
21766cdb10c1Sopenharmony_ci    pub fn clang_getNonReferenceType(type_: CXType) -> CXType;
21776cdb10c1Sopenharmony_ci    pub fn clang_getTypeDeclaration(type_: CXType) -> CXCursor;
21786cdb10c1Sopenharmony_ci    pub fn clang_getTypeKindSpelling(type_: CXTypeKind) -> CXString;
21796cdb10c1Sopenharmony_ci    pub fn clang_getTypeSpelling(type_: CXType) -> CXString;
21806cdb10c1Sopenharmony_ci    pub fn clang_getTypedefDeclUnderlyingType(cursor: CXCursor) -> CXType;
21816cdb10c1Sopenharmony_ci    /// Only available on `libclang` 5.0 and later.
21826cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_5_0")]
21836cdb10c1Sopenharmony_ci    pub fn clang_getTypedefName(type_: CXType) -> CXString;
21846cdb10c1Sopenharmony_ci    pub fn clang_hashCursor(cursor: CXCursor) -> c_uint;
21856cdb10c1Sopenharmony_ci    pub fn clang_indexLoc_getCXSourceLocation(location: CXIdxLoc) -> CXSourceLocation;
21866cdb10c1Sopenharmony_ci    pub fn clang_indexLoc_getFileLocation(location: CXIdxLoc, index_file: *mut CXIdxClientFile, file: *mut CXFile, line: *mut c_uint, column: *mut c_uint, offset: *mut c_uint);
21876cdb10c1Sopenharmony_ci    pub fn clang_indexSourceFile(index: CXIndexAction, data: CXClientData, callbacks: *mut IndexerCallbacks, n_callbacks: c_uint, index_flags: CXIndexOptFlags, file: *const c_char, arguments: *const *const c_char, n_arguments: c_int, unsaved: *mut CXUnsavedFile, n_unsaved: c_uint, tu: *mut CXTranslationUnit, tu_flags: CXTranslationUnit_Flags) -> CXErrorCode;
21886cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.8 and later.
21896cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_8")]
21906cdb10c1Sopenharmony_ci    pub fn clang_indexSourceFileFullArgv(index: CXIndexAction, data: CXClientData, callbacks: *mut IndexerCallbacks, n_callbacks: c_uint, index_flags: CXIndexOptFlags, file: *const c_char, arguments: *const *const c_char, n_arguments: c_int, unsaved: *mut CXUnsavedFile, n_unsaved: c_uint, tu: *mut CXTranslationUnit, tu_flags: CXTranslationUnit_Flags) -> CXErrorCode;
21916cdb10c1Sopenharmony_ci    pub fn clang_indexTranslationUnit(index: CXIndexAction, data: CXClientData, callbacks: *mut IndexerCallbacks, n_callbacks: c_uint, flags: CXIndexOptFlags, tu: CXTranslationUnit) -> c_int;
21926cdb10c1Sopenharmony_ci    pub fn clang_index_getCXXClassDeclInfo(info: *const CXIdxDeclInfo) -> *const CXIdxCXXClassDeclInfo;
21936cdb10c1Sopenharmony_ci    pub fn clang_index_getClientContainer(info: *const CXIdxContainerInfo) -> CXIdxClientContainer;
21946cdb10c1Sopenharmony_ci    pub fn clang_index_getClientEntity(info: *const CXIdxEntityInfo) -> CXIdxClientEntity;
21956cdb10c1Sopenharmony_ci    pub fn clang_index_getIBOutletCollectionAttrInfo(info: *const CXIdxAttrInfo) -> *const CXIdxIBOutletCollectionAttrInfo;
21966cdb10c1Sopenharmony_ci    pub fn clang_index_getObjCCategoryDeclInfo(info: *const CXIdxDeclInfo) -> *const CXIdxObjCCategoryDeclInfo;
21976cdb10c1Sopenharmony_ci    pub fn clang_index_getObjCContainerDeclInfo(info: *const CXIdxDeclInfo) -> *const CXIdxObjCContainerDeclInfo;
21986cdb10c1Sopenharmony_ci    pub fn clang_index_getObjCInterfaceDeclInfo(info: *const CXIdxDeclInfo) -> *const CXIdxObjCInterfaceDeclInfo;
21996cdb10c1Sopenharmony_ci    pub fn clang_index_getObjCPropertyDeclInfo(info: *const CXIdxDeclInfo) -> *const CXIdxObjCPropertyDeclInfo;
22006cdb10c1Sopenharmony_ci    pub fn clang_index_getObjCProtocolRefListInfo(info: *const CXIdxDeclInfo) -> *const CXIdxObjCProtocolRefListInfo;
22016cdb10c1Sopenharmony_ci    pub fn clang_index_isEntityObjCContainerKind(info: CXIdxEntityKind) -> c_int;
22026cdb10c1Sopenharmony_ci    pub fn clang_index_setClientContainer(info: *const CXIdxContainerInfo, container: CXIdxClientContainer);
22036cdb10c1Sopenharmony_ci    pub fn clang_index_setClientEntity(info: *const CXIdxEntityInfo, entity: CXIdxClientEntity);
22046cdb10c1Sopenharmony_ci    pub fn clang_isAttribute(kind: CXCursorKind) -> c_uint;
22056cdb10c1Sopenharmony_ci    pub fn clang_isConstQualifiedType(type_: CXType) -> c_uint;
22066cdb10c1Sopenharmony_ci    pub fn clang_isCursorDefinition(cursor: CXCursor) -> c_uint;
22076cdb10c1Sopenharmony_ci    pub fn clang_isDeclaration(kind: CXCursorKind) -> c_uint;
22086cdb10c1Sopenharmony_ci    pub fn clang_isExpression(kind: CXCursorKind) -> c_uint;
22096cdb10c1Sopenharmony_ci    pub fn clang_isFileMultipleIncludeGuarded(tu: CXTranslationUnit, file: CXFile) -> c_uint;
22106cdb10c1Sopenharmony_ci    pub fn clang_isFunctionTypeVariadic(type_: CXType) -> c_uint;
22116cdb10c1Sopenharmony_ci    pub fn clang_isInvalid(kind: CXCursorKind) -> c_uint;
22126cdb10c1Sopenharmony_ci    /// Only available on `libclang` 7.0 and later.
22136cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_7_0")]
22146cdb10c1Sopenharmony_ci    pub fn clang_isInvalidDeclaration(cursor: CXCursor) -> c_uint;
22156cdb10c1Sopenharmony_ci    pub fn clang_isPODType(type_: CXType) -> c_uint;
22166cdb10c1Sopenharmony_ci    pub fn clang_isPreprocessing(kind: CXCursorKind) -> c_uint;
22176cdb10c1Sopenharmony_ci    pub fn clang_isReference(kind: CXCursorKind) -> c_uint;
22186cdb10c1Sopenharmony_ci    pub fn clang_isRestrictQualifiedType(type_: CXType) -> c_uint;
22196cdb10c1Sopenharmony_ci    pub fn clang_isStatement(kind: CXCursorKind) -> c_uint;
22206cdb10c1Sopenharmony_ci    pub fn clang_isTranslationUnit(kind: CXCursorKind) -> c_uint;
22216cdb10c1Sopenharmony_ci    pub fn clang_isUnexposed(kind: CXCursorKind) -> c_uint;
22226cdb10c1Sopenharmony_ci    pub fn clang_isVirtualBase(cursor: CXCursor) -> c_uint;
22236cdb10c1Sopenharmony_ci    pub fn clang_isVolatileQualifiedType(type_: CXType) -> c_uint;
22246cdb10c1Sopenharmony_ci    pub fn clang_loadDiagnostics(file: *const c_char, error: *mut CXLoadDiag_Error, message: *mut CXString) -> CXDiagnosticSet;
22256cdb10c1Sopenharmony_ci    pub fn clang_parseTranslationUnit(index: CXIndex, file: *const c_char, arguments: *const *const c_char, n_arguments: c_int, unsaved: *mut CXUnsavedFile, n_unsaved: c_uint, flags: CXTranslationUnit_Flags) -> CXTranslationUnit;
22266cdb10c1Sopenharmony_ci    pub fn clang_parseTranslationUnit2(index: CXIndex, file: *const c_char, arguments: *const *const c_char, n_arguments: c_int, unsaved: *mut CXUnsavedFile, n_unsaved: c_uint, flags: CXTranslationUnit_Flags, tu: *mut CXTranslationUnit) -> CXErrorCode;
22276cdb10c1Sopenharmony_ci    /// Only available on `libclang` 3.8 and later.
22286cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_3_8")]
22296cdb10c1Sopenharmony_ci    pub fn clang_parseTranslationUnit2FullArgv(index: CXIndex, file: *const c_char, arguments: *const *const c_char, n_arguments: c_int, unsaved: *mut CXUnsavedFile, n_unsaved: c_uint, flags: CXTranslationUnit_Flags, tu: *mut CXTranslationUnit) -> CXErrorCode;
22306cdb10c1Sopenharmony_ci    pub fn clang_remap_dispose(remapping: CXRemapping);
22316cdb10c1Sopenharmony_ci    pub fn clang_remap_getFilenames(remapping: CXRemapping, index: c_uint, original: *mut CXString, transformed: *mut CXString);
22326cdb10c1Sopenharmony_ci    pub fn clang_remap_getNumFiles(remapping: CXRemapping) -> c_uint;
22336cdb10c1Sopenharmony_ci    pub fn clang_reparseTranslationUnit(tu: CXTranslationUnit, n_unsaved: c_uint, unsaved: *mut CXUnsavedFile, flags: CXReparse_Flags) -> CXErrorCode;
22346cdb10c1Sopenharmony_ci    pub fn clang_saveTranslationUnit(tu: CXTranslationUnit, file: *const c_char, options: CXSaveTranslationUnit_Flags) -> CXSaveError;
22356cdb10c1Sopenharmony_ci    pub fn clang_sortCodeCompletionResults(results: *mut CXCompletionResult, n_results: c_uint);
22366cdb10c1Sopenharmony_ci    /// Only available on `libclang` 5.0 and later.
22376cdb10c1Sopenharmony_ci    #[cfg(feature = "clang_5_0")]
22386cdb10c1Sopenharmony_ci    pub fn clang_suspendTranslationUnit(tu: CXTranslationUnit) -> c_uint;
22396cdb10c1Sopenharmony_ci    pub fn clang_toggleCrashRecovery(recovery: c_uint);
22406cdb10c1Sopenharmony_ci    pub fn clang_tokenize(tu: CXTranslationUnit, range: CXSourceRange, tokens: *mut *mut CXToken, n_tokens: *mut c_uint);
22416cdb10c1Sopenharmony_ci    pub fn clang_visitChildren(cursor: CXCursor, visitor: CXCursorVisitor, data: CXClientData) -> c_uint;
22426cdb10c1Sopenharmony_ci
22436cdb10c1Sopenharmony_ci    // Documentation
22446cdb10c1Sopenharmony_ci    pub fn clang_BlockCommandComment_getArgText(comment: CXComment, index: c_uint) -> CXString;
22456cdb10c1Sopenharmony_ci    pub fn clang_BlockCommandComment_getCommandName(comment: CXComment) -> CXString;
22466cdb10c1Sopenharmony_ci    pub fn clang_BlockCommandComment_getNumArgs(comment: CXComment) -> c_uint;
22476cdb10c1Sopenharmony_ci    pub fn clang_BlockCommandComment_getParagraph(comment: CXComment) -> CXComment;
22486cdb10c1Sopenharmony_ci    pub fn clang_Comment_getChild(comment: CXComment, index: c_uint) -> CXComment;
22496cdb10c1Sopenharmony_ci    pub fn clang_Comment_getKind(comment: CXComment) -> CXCommentKind;
22506cdb10c1Sopenharmony_ci    pub fn clang_Comment_getNumChildren(comment: CXComment) -> c_uint;
22516cdb10c1Sopenharmony_ci    pub fn clang_Comment_isWhitespace(comment: CXComment) -> c_uint;
22526cdb10c1Sopenharmony_ci    pub fn clang_Cursor_getParsedComment(C: CXCursor) -> CXComment;
22536cdb10c1Sopenharmony_ci    pub fn clang_FullComment_getAsHTML(comment: CXComment) -> CXString;
22546cdb10c1Sopenharmony_ci    pub fn clang_FullComment_getAsXML(comment: CXComment) -> CXString;
22556cdb10c1Sopenharmony_ci    pub fn clang_HTMLStartTag_getAttrName(comment: CXComment, index: c_uint) -> CXString;
22566cdb10c1Sopenharmony_ci    pub fn clang_HTMLStartTag_getAttrValue(comment: CXComment, index: c_uint) -> CXString;
22576cdb10c1Sopenharmony_ci    pub fn clang_HTMLStartTag_getNumAttrs(comment: CXComment) -> c_uint;
22586cdb10c1Sopenharmony_ci    pub fn clang_HTMLStartTagComment_isSelfClosing(comment: CXComment) -> c_uint;
22596cdb10c1Sopenharmony_ci    pub fn clang_HTMLTagComment_getAsString(comment: CXComment) -> CXString;
22606cdb10c1Sopenharmony_ci    pub fn clang_HTMLTagComment_getTagName(comment: CXComment) -> CXString;
22616cdb10c1Sopenharmony_ci    pub fn clang_InlineCommandComment_getArgText(comment: CXComment, index: c_uint) -> CXString;
22626cdb10c1Sopenharmony_ci    pub fn clang_InlineCommandComment_getCommandName(comment: CXComment) -> CXString;
22636cdb10c1Sopenharmony_ci    pub fn clang_InlineCommandComment_getNumArgs(comment: CXComment) -> c_uint;
22646cdb10c1Sopenharmony_ci    pub fn clang_InlineCommandComment_getRenderKind(comment: CXComment) -> CXCommentInlineCommandRenderKind;
22656cdb10c1Sopenharmony_ci    pub fn clang_InlineContentComment_hasTrailingNewline(comment: CXComment) -> c_uint;
22666cdb10c1Sopenharmony_ci    pub fn clang_ParamCommandComment_getDirection(comment: CXComment) -> CXCommentParamPassDirection;
22676cdb10c1Sopenharmony_ci    pub fn clang_ParamCommandComment_getParamIndex(comment: CXComment) -> c_uint;
22686cdb10c1Sopenharmony_ci    pub fn clang_ParamCommandComment_getParamName(comment: CXComment) -> CXString;
22696cdb10c1Sopenharmony_ci    pub fn clang_ParamCommandComment_isDirectionExplicit(comment: CXComment) -> c_uint;
22706cdb10c1Sopenharmony_ci    pub fn clang_ParamCommandComment_isParamIndexValid(comment: CXComment) -> c_uint;
22716cdb10c1Sopenharmony_ci    pub fn clang_TextComment_getText(comment: CXComment) -> CXString;
22726cdb10c1Sopenharmony_ci    pub fn clang_TParamCommandComment_getDepth(comment: CXComment) -> c_uint;
22736cdb10c1Sopenharmony_ci    pub fn clang_TParamCommandComment_getIndex(comment: CXComment, depth: c_uint) -> c_uint;
22746cdb10c1Sopenharmony_ci    pub fn clang_TParamCommandComment_getParamName(comment: CXComment) -> CXString;
22756cdb10c1Sopenharmony_ci    pub fn clang_TParamCommandComment_isParamPositionValid(comment: CXComment) -> c_uint;
22766cdb10c1Sopenharmony_ci    pub fn clang_VerbatimBlockLineComment_getText(comment: CXComment) -> CXString;
22776cdb10c1Sopenharmony_ci    pub fn clang_VerbatimLineComment_getText(comment: CXComment) -> CXString;
22786cdb10c1Sopenharmony_ci}
2279