Fixed generation of empty Opaque structs due to forward declarations. (#180)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2c76c31..df06dd5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# 2.2.2
+- Fixed generation of empty opaque structs due to forward declarations in header files.
+
# 2.2.1
- Fixed generation of duplicate constants suffixed with `_<int>` when using multiple entry points.
diff --git a/lib/src/header_parser/clang_bindings/clang_bindings.dart b/lib/src/header_parser/clang_bindings/clang_bindings.dart
index ac12256..71c02c9 100644
--- a/lib/src/header_parser/clang_bindings/clang_bindings.dart
+++ b/lib/src/header_parser/clang_bindings/clang_bindings.dart
@@ -10,37 +10,47 @@
/// Holds bindings to LibClang.
class Clang {
- /// Holds the Dynamic library.
- final ffi.DynamicLibrary _dylib;
+ /// Holds the symbol lookup function.
+ final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+ _lookup;
/// The symbols are looked up in [dynamicLibrary].
- Clang(ffi.DynamicLibrary dynamicLibrary) : _dylib = dynamicLibrary;
+ Clang(ffi.DynamicLibrary dynamicLibrary) : _lookup = dynamicLibrary.lookup;
+
+ /// The symbols are looked up with [lookup].
+ Clang.fromLookup(
+ ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+ lookup)
+ : _lookup = lookup;
/// Retrieve the character data associated with the given string.
ffi.Pointer<ffi.Int8> clang_getCString(
CXString string,
) {
- return (_clang_getCString ??=
- _dylib.lookupFunction<_c_clang_getCString, _dart_clang_getCString>(
- 'clang_getCString'))(
+ return _clang_getCString(
string,
);
}
- _dart_clang_getCString? _clang_getCString;
+ late final _clang_getCString_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getCString>>('clang_getCString');
+ late final _dart_clang_getCString _clang_getCString =
+ _clang_getCString_ptr.asFunction<_dart_clang_getCString>();
/// Free the given string.
void clang_disposeString(
CXString string,
) {
- return (_clang_disposeString ??= _dylib.lookupFunction<
- _c_clang_disposeString,
- _dart_clang_disposeString>('clang_disposeString'))(
+ return _clang_disposeString(
string,
);
}
- _dart_clang_disposeString? _clang_disposeString;
+ late final _clang_disposeString_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_disposeString>>(
+ 'clang_disposeString');
+ late final _dart_clang_disposeString _clang_disposeString =
+ _clang_disposeString_ptr.asFunction<_dart_clang_disposeString>();
/// Provides a shared context for creating translation units.
///
@@ -84,15 +94,16 @@
int excludeDeclarationsFromPCH,
int displayDiagnostics,
) {
- return (_clang_createIndex ??=
- _dylib.lookupFunction<_c_clang_createIndex, _dart_clang_createIndex>(
- 'clang_createIndex'))(
+ return _clang_createIndex(
excludeDeclarationsFromPCH,
displayDiagnostics,
);
}
- _dart_clang_createIndex? _clang_createIndex;
+ late final _clang_createIndex_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_createIndex>>('clang_createIndex');
+ late final _dart_clang_createIndex _clang_createIndex =
+ _clang_createIndex_ptr.asFunction<_dart_clang_createIndex>();
/// Destroy the given index.
///
@@ -101,27 +112,29 @@
void clang_disposeIndex(
ffi.Pointer<ffi.Void> index,
) {
- return (_clang_disposeIndex ??=
- _dylib.lookupFunction<_c_clang_disposeIndex, _dart_clang_disposeIndex>(
- 'clang_disposeIndex'))(
+ return _clang_disposeIndex(
index,
);
}
- _dart_clang_disposeIndex? _clang_disposeIndex;
+ late final _clang_disposeIndex_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_disposeIndex>>('clang_disposeIndex');
+ late final _dart_clang_disposeIndex _clang_disposeIndex =
+ _clang_disposeIndex_ptr.asFunction<_dart_clang_disposeIndex>();
/// Retrieve the complete file and path name of the given file.
CXString clang_getFileName(
ffi.Pointer<ffi.Void> SFile,
) {
- return (_clang_getFileName ??=
- _dylib.lookupFunction<_c_clang_getFileName, _dart_clang_getFileName>(
- 'clang_getFileName'))(
+ return _clang_getFileName(
SFile,
);
}
- _dart_clang_getFileName? _clang_getFileName;
+ late final _clang_getFileName_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getFileName>>('clang_getFileName');
+ late final _dart_clang_getFileName _clang_getFileName =
+ _clang_getFileName_ptr.asFunction<_dart_clang_getFileName>();
/// Determine whether two ranges are equivalent.
///
@@ -130,15 +143,16 @@
CXSourceRange range1,
CXSourceRange range2,
) {
- return (_clang_equalRanges ??=
- _dylib.lookupFunction<_c_clang_equalRanges, _dart_clang_equalRanges>(
- 'clang_equalRanges'))(
+ return _clang_equalRanges(
range1,
range2,
);
}
- _dart_clang_equalRanges? _clang_equalRanges;
+ late final _clang_equalRanges_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_equalRanges>>('clang_equalRanges');
+ late final _dart_clang_equalRanges _clang_equalRanges =
+ _clang_equalRanges_ptr.asFunction<_dart_clang_equalRanges>();
/// Retrieve the file, line, column, and offset represented by
/// the given source location.
@@ -168,9 +182,7 @@
ffi.Pointer<ffi.Uint32> column,
ffi.Pointer<ffi.Uint32> offset,
) {
- return (_clang_getFileLocation ??= _dylib.lookupFunction<
- _c_clang_getFileLocation,
- _dart_clang_getFileLocation>('clang_getFileLocation'))(
+ return _clang_getFileLocation(
location,
file,
line,
@@ -179,21 +191,27 @@
);
}
- _dart_clang_getFileLocation? _clang_getFileLocation;
+ late final _clang_getFileLocation_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getFileLocation>>(
+ 'clang_getFileLocation');
+ late final _dart_clang_getFileLocation _clang_getFileLocation =
+ _clang_getFileLocation_ptr.asFunction<_dart_clang_getFileLocation>();
/// Determine the number of diagnostics produced for the given
/// translation unit.
int clang_getNumDiagnostics(
ffi.Pointer<CXTranslationUnitImpl> Unit,
) {
- return (_clang_getNumDiagnostics ??= _dylib.lookupFunction<
- _c_clang_getNumDiagnostics,
- _dart_clang_getNumDiagnostics>('clang_getNumDiagnostics'))(
+ return _clang_getNumDiagnostics(
Unit,
);
}
- _dart_clang_getNumDiagnostics? _clang_getNumDiagnostics;
+ late final _clang_getNumDiagnostics_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getNumDiagnostics>>(
+ 'clang_getNumDiagnostics');
+ late final _dart_clang_getNumDiagnostics _clang_getNumDiagnostics =
+ _clang_getNumDiagnostics_ptr.asFunction<_dart_clang_getNumDiagnostics>();
/// Retrieve a diagnostic associated with the given translation unit.
///
@@ -206,28 +224,32 @@
ffi.Pointer<CXTranslationUnitImpl> Unit,
int Index,
) {
- return (_clang_getDiagnostic ??= _dylib.lookupFunction<
- _c_clang_getDiagnostic,
- _dart_clang_getDiagnostic>('clang_getDiagnostic'))(
+ return _clang_getDiagnostic(
Unit,
Index,
);
}
- _dart_clang_getDiagnostic? _clang_getDiagnostic;
+ late final _clang_getDiagnostic_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getDiagnostic>>(
+ 'clang_getDiagnostic');
+ late final _dart_clang_getDiagnostic _clang_getDiagnostic =
+ _clang_getDiagnostic_ptr.asFunction<_dart_clang_getDiagnostic>();
/// Destroy a diagnostic.
void clang_disposeDiagnostic(
ffi.Pointer<ffi.Void> Diagnostic,
) {
- return (_clang_disposeDiagnostic ??= _dylib.lookupFunction<
- _c_clang_disposeDiagnostic,
- _dart_clang_disposeDiagnostic>('clang_disposeDiagnostic'))(
+ return _clang_disposeDiagnostic(
Diagnostic,
);
}
- _dart_clang_disposeDiagnostic? _clang_disposeDiagnostic;
+ late final _clang_disposeDiagnostic_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_disposeDiagnostic>>(
+ 'clang_disposeDiagnostic');
+ late final _dart_clang_disposeDiagnostic _clang_disposeDiagnostic =
+ _clang_disposeDiagnostic_ptr.asFunction<_dart_clang_disposeDiagnostic>();
/// Format the given diagnostic in a manner that is suitable for display.
///
@@ -246,15 +268,17 @@
ffi.Pointer<ffi.Void> Diagnostic,
int Options,
) {
- return (_clang_formatDiagnostic ??= _dylib.lookupFunction<
- _c_clang_formatDiagnostic,
- _dart_clang_formatDiagnostic>('clang_formatDiagnostic'))(
+ return _clang_formatDiagnostic(
Diagnostic,
Options,
);
}
- _dart_clang_formatDiagnostic? _clang_formatDiagnostic;
+ late final _clang_formatDiagnostic_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_formatDiagnostic>>(
+ 'clang_formatDiagnostic');
+ late final _dart_clang_formatDiagnostic _clang_formatDiagnostic =
+ _clang_formatDiagnostic_ptr.asFunction<_dart_clang_formatDiagnostic>();
/// Same as \c clang_parseTranslationUnit2, but returns
/// the \c CXTranslationUnit instead of an error code. In case of an error this
@@ -269,9 +293,7 @@
int num_unsaved_files,
int options,
) {
- return (_clang_parseTranslationUnit ??= _dylib.lookupFunction<
- _c_clang_parseTranslationUnit,
- _dart_clang_parseTranslationUnit>('clang_parseTranslationUnit'))(
+ return _clang_parseTranslationUnit(
CIdx,
source_filename,
command_line_args,
@@ -282,20 +304,28 @@
);
}
- _dart_clang_parseTranslationUnit? _clang_parseTranslationUnit;
+ late final _clang_parseTranslationUnit_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_parseTranslationUnit>>(
+ 'clang_parseTranslationUnit');
+ late final _dart_clang_parseTranslationUnit _clang_parseTranslationUnit =
+ _clang_parseTranslationUnit_ptr
+ .asFunction<_dart_clang_parseTranslationUnit>();
/// Destroy the specified CXTranslationUnit object.
void clang_disposeTranslationUnit(
ffi.Pointer<CXTranslationUnitImpl> arg0,
) {
- return (_clang_disposeTranslationUnit ??= _dylib.lookupFunction<
- _c_clang_disposeTranslationUnit,
- _dart_clang_disposeTranslationUnit>('clang_disposeTranslationUnit'))(
+ return _clang_disposeTranslationUnit(
arg0,
);
}
- _dart_clang_disposeTranslationUnit? _clang_disposeTranslationUnit;
+ late final _clang_disposeTranslationUnit_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_disposeTranslationUnit>>(
+ 'clang_disposeTranslationUnit');
+ late final _dart_clang_disposeTranslationUnit _clang_disposeTranslationUnit =
+ _clang_disposeTranslationUnit_ptr
+ .asFunction<_dart_clang_disposeTranslationUnit>();
/// Retrieve the cursor that represents the given translation unit.
///
@@ -304,28 +334,47 @@
CXCursor clang_getTranslationUnitCursor(
ffi.Pointer<CXTranslationUnitImpl> arg0,
) {
- return (_clang_getTranslationUnitCursor ??= _dylib.lookupFunction<
- _c_clang_getTranslationUnitCursor,
- _dart_clang_getTranslationUnitCursor>(
- 'clang_getTranslationUnitCursor'))(
+ return _clang_getTranslationUnitCursor(
arg0,
);
}
- _dart_clang_getTranslationUnitCursor? _clang_getTranslationUnitCursor;
+ late final _clang_getTranslationUnitCursor_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getTranslationUnitCursor>>(
+ 'clang_getTranslationUnitCursor');
+ late final _dart_clang_getTranslationUnitCursor
+ _clang_getTranslationUnitCursor = _clang_getTranslationUnitCursor_ptr
+ .asFunction<_dart_clang_getTranslationUnitCursor>();
+
+ /// Returns non-zero if \p cursor is null.
+ int clang_Cursor_isNull(
+ CXCursor cursor,
+ ) {
+ return _clang_Cursor_isNull(
+ cursor,
+ );
+ }
+
+ late final _clang_Cursor_isNull_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_Cursor_isNull>>(
+ 'clang_Cursor_isNull');
+ late final _dart_clang_Cursor_isNull _clang_Cursor_isNull =
+ _clang_Cursor_isNull_ptr.asFunction<_dart_clang_Cursor_isNull>();
/// Retrieve the kind of the given cursor.
int clang_getCursorKind(
CXCursor arg0,
) {
- return (_clang_getCursorKind ??= _dylib.lookupFunction<
- _c_clang_getCursorKind,
- _dart_clang_getCursorKind>('clang_getCursorKind'))(
+ return _clang_getCursorKind(
arg0,
);
}
- _dart_clang_getCursorKind? _clang_getCursorKind;
+ late final _clang_getCursorKind_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getCursorKind>>(
+ 'clang_getCursorKind');
+ late final _dart_clang_getCursorKind _clang_getCursorKind =
+ _clang_getCursorKind_ptr.asFunction<_dart_clang_getCursorKind>();
/// Retrieve the physical location of the source constructor referenced
/// by the given cursor.
@@ -338,27 +387,31 @@
CXSourceLocation clang_getCursorLocation(
CXCursor arg0,
) {
- return (_clang_getCursorLocation ??= _dylib.lookupFunction<
- _c_clang_getCursorLocation,
- _dart_clang_getCursorLocation>('clang_getCursorLocation'))(
+ return _clang_getCursorLocation(
arg0,
);
}
- _dart_clang_getCursorLocation? _clang_getCursorLocation;
+ late final _clang_getCursorLocation_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getCursorLocation>>(
+ 'clang_getCursorLocation');
+ late final _dart_clang_getCursorLocation _clang_getCursorLocation =
+ _clang_getCursorLocation_ptr.asFunction<_dart_clang_getCursorLocation>();
/// Retrieve the type of a CXCursor (if any).
CXType clang_getCursorType(
CXCursor C,
) {
- return (_clang_getCursorType ??= _dylib.lookupFunction<
- _c_clang_getCursorType,
- _dart_clang_getCursorType>('clang_getCursorType'))(
+ return _clang_getCursorType(
C,
);
}
- _dart_clang_getCursorType? _clang_getCursorType;
+ late final _clang_getCursorType_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getCursorType>>(
+ 'clang_getCursorType');
+ late final _dart_clang_getCursorType _clang_getCursorType =
+ _clang_getCursorType_ptr.asFunction<_dart_clang_getCursorType>();
/// Pretty-print the underlying type using the rules of the
/// language of the translation unit from which it came.
@@ -367,14 +420,16 @@
CXString clang_getTypeSpelling(
CXType CT,
) {
- return (_clang_getTypeSpelling ??= _dylib.lookupFunction<
- _c_clang_getTypeSpelling,
- _dart_clang_getTypeSpelling>('clang_getTypeSpelling'))(
+ return _clang_getTypeSpelling(
CT,
);
}
- _dart_clang_getTypeSpelling? _clang_getTypeSpelling;
+ late final _clang_getTypeSpelling_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getTypeSpelling>>(
+ 'clang_getTypeSpelling');
+ late final _dart_clang_getTypeSpelling _clang_getTypeSpelling =
+ _clang_getTypeSpelling_ptr.asFunction<_dart_clang_getTypeSpelling>();
/// Retrieve the underlying type of a typedef declaration.
///
@@ -383,15 +438,18 @@
CXType clang_getTypedefDeclUnderlyingType(
CXCursor C,
) {
- return (_clang_getTypedefDeclUnderlyingType ??= _dylib.lookupFunction<
- _c_clang_getTypedefDeclUnderlyingType,
- _dart_clang_getTypedefDeclUnderlyingType>(
- 'clang_getTypedefDeclUnderlyingType'))(
+ return _clang_getTypedefDeclUnderlyingType(
C,
);
}
- _dart_clang_getTypedefDeclUnderlyingType? _clang_getTypedefDeclUnderlyingType;
+ late final _clang_getTypedefDeclUnderlyingType_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getTypedefDeclUnderlyingType>>(
+ 'clang_getTypedefDeclUnderlyingType');
+ late final _dart_clang_getTypedefDeclUnderlyingType
+ _clang_getTypedefDeclUnderlyingType =
+ _clang_getTypedefDeclUnderlyingType_ptr
+ .asFunction<_dart_clang_getTypedefDeclUnderlyingType>();
/// Retrieve the integer value of an enum constant declaration as a signed
/// long long.
@@ -402,15 +460,17 @@
int clang_getEnumConstantDeclValue(
CXCursor C,
) {
- return (_clang_getEnumConstantDeclValue ??= _dylib.lookupFunction<
- _c_clang_getEnumConstantDeclValue,
- _dart_clang_getEnumConstantDeclValue>(
- 'clang_getEnumConstantDeclValue'))(
+ return _clang_getEnumConstantDeclValue(
C,
);
}
- _dart_clang_getEnumConstantDeclValue? _clang_getEnumConstantDeclValue;
+ late final _clang_getEnumConstantDeclValue_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getEnumConstantDeclValue>>(
+ 'clang_getEnumConstantDeclValue');
+ late final _dart_clang_getEnumConstantDeclValue
+ _clang_getEnumConstantDeclValue = _clang_getEnumConstantDeclValue_ptr
+ .asFunction<_dart_clang_getEnumConstantDeclValue>();
/// Retrieve the bit width of a bit field declaration as an integer.
///
@@ -418,14 +478,17 @@
int clang_getFieldDeclBitWidth(
CXCursor C,
) {
- return (_clang_getFieldDeclBitWidth ??= _dylib.lookupFunction<
- _c_clang_getFieldDeclBitWidth,
- _dart_clang_getFieldDeclBitWidth>('clang_getFieldDeclBitWidth'))(
+ return _clang_getFieldDeclBitWidth(
C,
);
}
- _dart_clang_getFieldDeclBitWidth? _clang_getFieldDeclBitWidth;
+ late final _clang_getFieldDeclBitWidth_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getFieldDeclBitWidth>>(
+ 'clang_getFieldDeclBitWidth');
+ late final _dart_clang_getFieldDeclBitWidth _clang_getFieldDeclBitWidth =
+ _clang_getFieldDeclBitWidth_ptr
+ .asFunction<_dart_clang_getFieldDeclBitWidth>();
/// Retrieve the number of non-variadic arguments associated with a given
/// cursor.
@@ -435,14 +498,17 @@
int clang_Cursor_getNumArguments(
CXCursor C,
) {
- return (_clang_Cursor_getNumArguments ??= _dylib.lookupFunction<
- _c_clang_Cursor_getNumArguments,
- _dart_clang_Cursor_getNumArguments>('clang_Cursor_getNumArguments'))(
+ return _clang_Cursor_getNumArguments(
C,
);
}
- _dart_clang_Cursor_getNumArguments? _clang_Cursor_getNumArguments;
+ late final _clang_Cursor_getNumArguments_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_Cursor_getNumArguments>>(
+ 'clang_Cursor_getNumArguments');
+ late final _dart_clang_Cursor_getNumArguments _clang_Cursor_getNumArguments =
+ _clang_Cursor_getNumArguments_ptr
+ .asFunction<_dart_clang_Cursor_getNumArguments>();
/// Retrieve the argument cursor of a function or method.
///
@@ -453,15 +519,18 @@
CXCursor C,
int i,
) {
- return (_clang_Cursor_getArgument ??= _dylib.lookupFunction<
- _c_clang_Cursor_getArgument,
- _dart_clang_Cursor_getArgument>('clang_Cursor_getArgument'))(
+ return _clang_Cursor_getArgument(
C,
i,
);
}
- _dart_clang_Cursor_getArgument? _clang_Cursor_getArgument;
+ late final _clang_Cursor_getArgument_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_Cursor_getArgument>>(
+ 'clang_Cursor_getArgument');
+ late final _dart_clang_Cursor_getArgument _clang_Cursor_getArgument =
+ _clang_Cursor_getArgument_ptr
+ .asFunction<_dart_clang_Cursor_getArgument>();
/// Return the canonical type for a CXType.
///
@@ -472,110 +541,129 @@
CXType clang_getCanonicalType(
CXType T,
) {
- return (_clang_getCanonicalType ??= _dylib.lookupFunction<
- _c_clang_getCanonicalType,
- _dart_clang_getCanonicalType>('clang_getCanonicalType'))(
+ return _clang_getCanonicalType(
T,
);
}
- _dart_clang_getCanonicalType? _clang_getCanonicalType;
+ late final _clang_getCanonicalType_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getCanonicalType>>(
+ 'clang_getCanonicalType');
+ late final _dart_clang_getCanonicalType _clang_getCanonicalType =
+ _clang_getCanonicalType_ptr.asFunction<_dart_clang_getCanonicalType>();
/// Determine whether a CXCursor that is a macro, is
/// function like.
int clang_Cursor_isMacroFunctionLike(
CXCursor C,
) {
- return (_clang_Cursor_isMacroFunctionLike ??= _dylib.lookupFunction<
- _c_clang_Cursor_isMacroFunctionLike,
- _dart_clang_Cursor_isMacroFunctionLike>(
- 'clang_Cursor_isMacroFunctionLike'))(
+ return _clang_Cursor_isMacroFunctionLike(
C,
);
}
- _dart_clang_Cursor_isMacroFunctionLike? _clang_Cursor_isMacroFunctionLike;
+ late final _clang_Cursor_isMacroFunctionLike_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_Cursor_isMacroFunctionLike>>(
+ 'clang_Cursor_isMacroFunctionLike');
+ late final _dart_clang_Cursor_isMacroFunctionLike
+ _clang_Cursor_isMacroFunctionLike = _clang_Cursor_isMacroFunctionLike_ptr
+ .asFunction<_dart_clang_Cursor_isMacroFunctionLike>();
/// Determine whether a CXCursor that is a macro, is a
/// builtin one.
int clang_Cursor_isMacroBuiltin(
CXCursor C,
) {
- return (_clang_Cursor_isMacroBuiltin ??= _dylib.lookupFunction<
- _c_clang_Cursor_isMacroBuiltin,
- _dart_clang_Cursor_isMacroBuiltin>('clang_Cursor_isMacroBuiltin'))(
+ return _clang_Cursor_isMacroBuiltin(
C,
);
}
- _dart_clang_Cursor_isMacroBuiltin? _clang_Cursor_isMacroBuiltin;
+ late final _clang_Cursor_isMacroBuiltin_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_Cursor_isMacroBuiltin>>(
+ 'clang_Cursor_isMacroBuiltin');
+ late final _dart_clang_Cursor_isMacroBuiltin _clang_Cursor_isMacroBuiltin =
+ _clang_Cursor_isMacroBuiltin_ptr
+ .asFunction<_dart_clang_Cursor_isMacroBuiltin>();
/// Determine whether a CXCursor that is a function declaration, is an
/// inline declaration.
int clang_Cursor_isFunctionInlined(
CXCursor C,
) {
- return (_clang_Cursor_isFunctionInlined ??= _dylib.lookupFunction<
- _c_clang_Cursor_isFunctionInlined,
- _dart_clang_Cursor_isFunctionInlined>(
- 'clang_Cursor_isFunctionInlined'))(
+ return _clang_Cursor_isFunctionInlined(
C,
);
}
- _dart_clang_Cursor_isFunctionInlined? _clang_Cursor_isFunctionInlined;
+ late final _clang_Cursor_isFunctionInlined_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_Cursor_isFunctionInlined>>(
+ 'clang_Cursor_isFunctionInlined');
+ late final _dart_clang_Cursor_isFunctionInlined
+ _clang_Cursor_isFunctionInlined = _clang_Cursor_isFunctionInlined_ptr
+ .asFunction<_dart_clang_Cursor_isFunctionInlined>();
/// Returns the typedef name of the given type.
CXString clang_getTypedefName(
CXType CT,
) {
- return (_clang_getTypedefName ??= _dylib.lookupFunction<
- _c_clang_getTypedefName,
- _dart_clang_getTypedefName>('clang_getTypedefName'))(
+ return _clang_getTypedefName(
CT,
);
}
- _dart_clang_getTypedefName? _clang_getTypedefName;
+ late final _clang_getTypedefName_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getTypedefName>>(
+ 'clang_getTypedefName');
+ late final _dart_clang_getTypedefName _clang_getTypedefName =
+ _clang_getTypedefName_ptr.asFunction<_dart_clang_getTypedefName>();
/// For pointer types, returns the type of the pointee.
CXType clang_getPointeeType(
CXType T,
) {
- return (_clang_getPointeeType ??= _dylib.lookupFunction<
- _c_clang_getPointeeType,
- _dart_clang_getPointeeType>('clang_getPointeeType'))(
+ return _clang_getPointeeType(
T,
);
}
- _dart_clang_getPointeeType? _clang_getPointeeType;
+ late final _clang_getPointeeType_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getPointeeType>>(
+ 'clang_getPointeeType');
+ late final _dart_clang_getPointeeType _clang_getPointeeType =
+ _clang_getPointeeType_ptr.asFunction<_dart_clang_getPointeeType>();
/// Return the cursor for the declaration of the given type.
CXCursor clang_getTypeDeclaration(
CXType T,
) {
- return (_clang_getTypeDeclaration ??= _dylib.lookupFunction<
- _c_clang_getTypeDeclaration,
- _dart_clang_getTypeDeclaration>('clang_getTypeDeclaration'))(
+ return _clang_getTypeDeclaration(
T,
);
}
- _dart_clang_getTypeDeclaration? _clang_getTypeDeclaration;
+ late final _clang_getTypeDeclaration_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getTypeDeclaration>>(
+ 'clang_getTypeDeclaration');
+ late final _dart_clang_getTypeDeclaration _clang_getTypeDeclaration =
+ _clang_getTypeDeclaration_ptr
+ .asFunction<_dart_clang_getTypeDeclaration>();
/// Retrieve the spelling of a given CXTypeKind.
CXString clang_getTypeKindSpelling(
int K,
) {
- return (_clang_getTypeKindSpelling ??= _dylib.lookupFunction<
- _c_clang_getTypeKindSpelling,
- _dart_clang_getTypeKindSpelling>('clang_getTypeKindSpelling'))(
+ return _clang_getTypeKindSpelling(
K,
);
}
- _dart_clang_getTypeKindSpelling? _clang_getTypeKindSpelling;
+ late final _clang_getTypeKindSpelling_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getTypeKindSpelling>>(
+ 'clang_getTypeKindSpelling');
+ late final _dart_clang_getTypeKindSpelling _clang_getTypeKindSpelling =
+ _clang_getTypeKindSpelling_ptr
+ .asFunction<_dart_clang_getTypeKindSpelling>();
/// Retrieve the return type associated with a function type.
///
@@ -583,14 +671,16 @@
CXType clang_getResultType(
CXType T,
) {
- return (_clang_getResultType ??= _dylib.lookupFunction<
- _c_clang_getResultType,
- _dart_clang_getResultType>('clang_getResultType'))(
+ return _clang_getResultType(
T,
);
}
- _dart_clang_getResultType? _clang_getResultType;
+ late final _clang_getResultType_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getResultType>>(
+ 'clang_getResultType');
+ late final _dart_clang_getResultType _clang_getResultType =
+ _clang_getResultType_ptr.asFunction<_dart_clang_getResultType>();
/// Retrieve the number of non-variadic parameters associated with a
/// function type.
@@ -599,14 +689,16 @@
int clang_getNumArgTypes(
CXType T,
) {
- return (_clang_getNumArgTypes ??= _dylib.lookupFunction<
- _c_clang_getNumArgTypes,
- _dart_clang_getNumArgTypes>('clang_getNumArgTypes'))(
+ return _clang_getNumArgTypes(
T,
);
}
- _dart_clang_getNumArgTypes? _clang_getNumArgTypes;
+ late final _clang_getNumArgTypes_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getNumArgTypes>>(
+ 'clang_getNumArgTypes');
+ late final _dart_clang_getNumArgTypes _clang_getNumArgTypes =
+ _clang_getNumArgTypes_ptr.asFunction<_dart_clang_getNumArgTypes>();
/// Retrieve the type of a parameter of a function type.
///
@@ -616,15 +708,16 @@
CXType T,
int i,
) {
- return (_clang_getArgType ??=
- _dylib.lookupFunction<_c_clang_getArgType, _dart_clang_getArgType>(
- 'clang_getArgType'))(
+ return _clang_getArgType(
T,
i,
);
}
- _dart_clang_getArgType? _clang_getArgType;
+ late final _clang_getArgType_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getArgType>>('clang_getArgType');
+ late final _dart_clang_getArgType _clang_getArgType =
+ _clang_getArgType_ptr.asFunction<_dart_clang_getArgType>();
/// Return the number of elements of an array or vector type.
///
@@ -633,14 +726,16 @@
int clang_getNumElements(
CXType T,
) {
- return (_clang_getNumElements ??= _dylib.lookupFunction<
- _c_clang_getNumElements,
- _dart_clang_getNumElements>('clang_getNumElements'))(
+ return _clang_getNumElements(
T,
);
}
- _dart_clang_getNumElements? _clang_getNumElements;
+ late final _clang_getNumElements_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getNumElements>>(
+ 'clang_getNumElements');
+ late final _dart_clang_getNumElements _clang_getNumElements =
+ _clang_getNumElements_ptr.asFunction<_dart_clang_getNumElements>();
/// Return the element type of an array type.
///
@@ -648,14 +743,17 @@
CXType clang_getArrayElementType(
CXType T,
) {
- return (_clang_getArrayElementType ??= _dylib.lookupFunction<
- _c_clang_getArrayElementType,
- _dart_clang_getArrayElementType>('clang_getArrayElementType'))(
+ return _clang_getArrayElementType(
T,
);
}
- _dart_clang_getArrayElementType? _clang_getArrayElementType;
+ late final _clang_getArrayElementType_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getArrayElementType>>(
+ 'clang_getArrayElementType');
+ late final _dart_clang_getArrayElementType _clang_getArrayElementType =
+ _clang_getArrayElementType_ptr
+ .asFunction<_dart_clang_getArrayElementType>();
/// Retrieve the type named by the qualified-id.
///
@@ -663,43 +761,51 @@
CXType clang_Type_getNamedType(
CXType T,
) {
- return (_clang_Type_getNamedType ??= _dylib.lookupFunction<
- _c_clang_Type_getNamedType,
- _dart_clang_Type_getNamedType>('clang_Type_getNamedType'))(
+ return _clang_Type_getNamedType(
T,
);
}
- _dart_clang_Type_getNamedType? _clang_Type_getNamedType;
+ late final _clang_Type_getNamedType_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_Type_getNamedType>>(
+ 'clang_Type_getNamedType');
+ late final _dart_clang_Type_getNamedType _clang_Type_getNamedType =
+ _clang_Type_getNamedType_ptr.asFunction<_dart_clang_Type_getNamedType>();
/// Determine whether the given cursor represents an anonymous
/// tag or namespace
int clang_Cursor_isAnonymous(
CXCursor C,
) {
- return (_clang_Cursor_isAnonymous ??= _dylib.lookupFunction<
- _c_clang_Cursor_isAnonymous,
- _dart_clang_Cursor_isAnonymous>('clang_Cursor_isAnonymous'))(
+ return _clang_Cursor_isAnonymous(
C,
);
}
- _dart_clang_Cursor_isAnonymous? _clang_Cursor_isAnonymous;
+ late final _clang_Cursor_isAnonymous_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_Cursor_isAnonymous>>(
+ 'clang_Cursor_isAnonymous');
+ late final _dart_clang_Cursor_isAnonymous _clang_Cursor_isAnonymous =
+ _clang_Cursor_isAnonymous_ptr
+ .asFunction<_dart_clang_Cursor_isAnonymous>();
/// Determine whether the given cursor represents an anonymous record
/// declaration.
int clang_Cursor_isAnonymousRecordDecl(
CXCursor C,
) {
- return (_clang_Cursor_isAnonymousRecordDecl ??= _dylib.lookupFunction<
- _c_clang_Cursor_isAnonymousRecordDecl,
- _dart_clang_Cursor_isAnonymousRecordDecl>(
- 'clang_Cursor_isAnonymousRecordDecl'))(
+ return _clang_Cursor_isAnonymousRecordDecl(
C,
);
}
- _dart_clang_Cursor_isAnonymousRecordDecl? _clang_Cursor_isAnonymousRecordDecl;
+ late final _clang_Cursor_isAnonymousRecordDecl_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_Cursor_isAnonymousRecordDecl>>(
+ 'clang_Cursor_isAnonymousRecordDecl');
+ late final _dart_clang_Cursor_isAnonymousRecordDecl
+ _clang_Cursor_isAnonymousRecordDecl =
+ _clang_Cursor_isAnonymousRecordDecl_ptr
+ .asFunction<_dart_clang_Cursor_isAnonymousRecordDecl>();
/// Visit the children of a particular cursor.
///
@@ -726,16 +832,18 @@
ffi.Pointer<ffi.NativeFunction<CXCursorVisitor>> visitor,
ffi.Pointer<ffi.Void> client_data,
) {
- return (_clang_visitChildren ??= _dylib.lookupFunction<
- _c_clang_visitChildren,
- _dart_clang_visitChildren>('clang_visitChildren'))(
+ return _clang_visitChildren(
parent,
visitor,
client_data,
);
}
- _dart_clang_visitChildren? _clang_visitChildren;
+ late final _clang_visitChildren_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_visitChildren>>(
+ 'clang_visitChildren');
+ late final _dart_clang_visitChildren _clang_visitChildren =
+ _clang_visitChildren_ptr.asFunction<_dart_clang_visitChildren>();
/// Retrieve a Unified Symbol Resolution (USR) for the entity referenced
/// by the given cursor.
@@ -747,27 +855,71 @@
CXString clang_getCursorUSR(
CXCursor arg0,
) {
- return (_clang_getCursorUSR ??=
- _dylib.lookupFunction<_c_clang_getCursorUSR, _dart_clang_getCursorUSR>(
- 'clang_getCursorUSR'))(
+ return _clang_getCursorUSR(
arg0,
);
}
- _dart_clang_getCursorUSR? _clang_getCursorUSR;
+ late final _clang_getCursorUSR_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getCursorUSR>>('clang_getCursorUSR');
+ late final _dart_clang_getCursorUSR _clang_getCursorUSR =
+ _clang_getCursorUSR_ptr.asFunction<_dart_clang_getCursorUSR>();
/// Retrieve a name for the entity referenced by this cursor.
CXString clang_getCursorSpelling(
CXCursor arg0,
) {
- return (_clang_getCursorSpelling ??= _dylib.lookupFunction<
- _c_clang_getCursorSpelling,
- _dart_clang_getCursorSpelling>('clang_getCursorSpelling'))(
+ return _clang_getCursorSpelling(
arg0,
);
}
- _dart_clang_getCursorSpelling? _clang_getCursorSpelling;
+ late final _clang_getCursorSpelling_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getCursorSpelling>>(
+ 'clang_getCursorSpelling');
+ late final _dart_clang_getCursorSpelling _clang_getCursorSpelling =
+ _clang_getCursorSpelling_ptr.asFunction<_dart_clang_getCursorSpelling>();
+
+ /// For a cursor that is either a reference to or a declaration
+ /// of some entity, retrieve a cursor that describes the definition of
+ /// that entity.
+ ///
+ /// Some entities can be declared multiple times within a translation
+ /// unit, but only one of those declarations can also be a
+ /// definition. For example, given:
+ ///
+ /// \code
+ /// int f(int, int);
+ /// int g(int x, int y) { return f(x, y); }
+ /// int f(int a, int b) { return a + b; }
+ /// int f(int, int);
+ /// \endcode
+ ///
+ /// there are three declarations of the function "f", but only the
+ /// second one is a definition. The clang_getCursorDefinition()
+ /// function will take any cursor pointing to a declaration of "f"
+ /// (the first or fourth lines of the example) or a cursor referenced
+ /// that uses "f" (the call to "f' inside "g") and will return a
+ /// declaration cursor pointing to the definition (the second "f"
+ /// declaration).
+ ///
+ /// If given a cursor for which there is no corresponding definition,
+ /// e.g., because there is no definition of that entity within this
+ /// translation unit, returns a NULL cursor.
+ CXCursor clang_getCursorDefinition(
+ CXCursor arg0,
+ ) {
+ return _clang_getCursorDefinition(
+ arg0,
+ );
+ }
+
+ late final _clang_getCursorDefinition_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getCursorDefinition>>(
+ 'clang_getCursorDefinition');
+ late final _dart_clang_getCursorDefinition _clang_getCursorDefinition =
+ _clang_getCursorDefinition_ptr
+ .asFunction<_dart_clang_getCursorDefinition>();
/// Given a cursor that represents a declaration, return the associated
/// comment's source range. The range may include multiple consecutive comments
@@ -775,29 +927,34 @@
CXSourceRange clang_Cursor_getCommentRange(
CXCursor C,
) {
- return (_clang_Cursor_getCommentRange ??= _dylib.lookupFunction<
- _c_clang_Cursor_getCommentRange,
- _dart_clang_Cursor_getCommentRange>('clang_Cursor_getCommentRange'))(
+ return _clang_Cursor_getCommentRange(
C,
);
}
- _dart_clang_Cursor_getCommentRange? _clang_Cursor_getCommentRange;
+ late final _clang_Cursor_getCommentRange_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_Cursor_getCommentRange>>(
+ 'clang_Cursor_getCommentRange');
+ late final _dart_clang_Cursor_getCommentRange _clang_Cursor_getCommentRange =
+ _clang_Cursor_getCommentRange_ptr
+ .asFunction<_dart_clang_Cursor_getCommentRange>();
/// Given a cursor that represents a declaration, return the associated
/// comment text, including comment markers.
CXString clang_Cursor_getRawCommentText(
CXCursor C,
) {
- return (_clang_Cursor_getRawCommentText ??= _dylib.lookupFunction<
- _c_clang_Cursor_getRawCommentText,
- _dart_clang_Cursor_getRawCommentText>(
- 'clang_Cursor_getRawCommentText'))(
+ return _clang_Cursor_getRawCommentText(
C,
);
}
- _dart_clang_Cursor_getRawCommentText? _clang_Cursor_getRawCommentText;
+ late final _clang_Cursor_getRawCommentText_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_Cursor_getRawCommentText>>(
+ 'clang_Cursor_getRawCommentText');
+ late final _dart_clang_Cursor_getRawCommentText
+ _clang_Cursor_getRawCommentText = _clang_Cursor_getRawCommentText_ptr
+ .asFunction<_dart_clang_Cursor_getRawCommentText>();
/// Given a cursor that represents a documentable entity (e.g.,
/// declaration), return the associated \paragraph; otherwise return the
@@ -805,15 +962,17 @@
CXString clang_Cursor_getBriefCommentText(
CXCursor C,
) {
- return (_clang_Cursor_getBriefCommentText ??= _dylib.lookupFunction<
- _c_clang_Cursor_getBriefCommentText,
- _dart_clang_Cursor_getBriefCommentText>(
- 'clang_Cursor_getBriefCommentText'))(
+ return _clang_Cursor_getBriefCommentText(
C,
);
}
- _dart_clang_Cursor_getBriefCommentText? _clang_Cursor_getBriefCommentText;
+ late final _clang_Cursor_getBriefCommentText_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_Cursor_getBriefCommentText>>(
+ 'clang_Cursor_getBriefCommentText');
+ late final _dart_clang_Cursor_getBriefCommentText
+ _clang_Cursor_getBriefCommentText = _clang_Cursor_getBriefCommentText_ptr
+ .asFunction<_dart_clang_Cursor_getBriefCommentText>();
/// \defgroup CINDEX_DEBUG Debugging facilities
///
@@ -824,14 +983,17 @@
CXString clang_getCursorKindSpelling(
int Kind,
) {
- return (_clang_getCursorKindSpelling ??= _dylib.lookupFunction<
- _c_clang_getCursorKindSpelling,
- _dart_clang_getCursorKindSpelling>('clang_getCursorKindSpelling'))(
+ return _clang_getCursorKindSpelling(
Kind,
);
}
- _dart_clang_getCursorKindSpelling? _clang_getCursorKindSpelling;
+ late final _clang_getCursorKindSpelling_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_getCursorKindSpelling>>(
+ 'clang_getCursorKindSpelling');
+ late final _dart_clang_getCursorKindSpelling _clang_getCursorKindSpelling =
+ _clang_getCursorKindSpelling_ptr
+ .asFunction<_dart_clang_getCursorKindSpelling>();
/// If cursor is a statement declaration tries to evaluate the
/// statement and if its variable, tries to evaluate its initializer,
@@ -839,41 +1001,49 @@
ffi.Pointer<ffi.Void> clang_Cursor_Evaluate(
CXCursor C,
) {
- return (_clang_Cursor_Evaluate ??= _dylib.lookupFunction<
- _c_clang_Cursor_Evaluate,
- _dart_clang_Cursor_Evaluate>('clang_Cursor_Evaluate'))(
+ return _clang_Cursor_Evaluate(
C,
);
}
- _dart_clang_Cursor_Evaluate? _clang_Cursor_Evaluate;
+ late final _clang_Cursor_Evaluate_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_Cursor_Evaluate>>(
+ 'clang_Cursor_Evaluate');
+ late final _dart_clang_Cursor_Evaluate _clang_Cursor_Evaluate =
+ _clang_Cursor_Evaluate_ptr.asFunction<_dart_clang_Cursor_Evaluate>();
/// Returns the kind of the evaluated result.
int clang_EvalResult_getKind(
ffi.Pointer<ffi.Void> E,
) {
- return (_clang_EvalResult_getKind ??= _dylib.lookupFunction<
- _c_clang_EvalResult_getKind,
- _dart_clang_EvalResult_getKind>('clang_EvalResult_getKind'))(
+ return _clang_EvalResult_getKind(
E,
);
}
- _dart_clang_EvalResult_getKind? _clang_EvalResult_getKind;
+ late final _clang_EvalResult_getKind_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_EvalResult_getKind>>(
+ 'clang_EvalResult_getKind');
+ late final _dart_clang_EvalResult_getKind _clang_EvalResult_getKind =
+ _clang_EvalResult_getKind_ptr
+ .asFunction<_dart_clang_EvalResult_getKind>();
/// Returns the evaluation result as integer if the
/// kind is Int.
int clang_EvalResult_getAsInt(
ffi.Pointer<ffi.Void> E,
) {
- return (_clang_EvalResult_getAsInt ??= _dylib.lookupFunction<
- _c_clang_EvalResult_getAsInt,
- _dart_clang_EvalResult_getAsInt>('clang_EvalResult_getAsInt'))(
+ return _clang_EvalResult_getAsInt(
E,
);
}
- _dart_clang_EvalResult_getAsInt? _clang_EvalResult_getAsInt;
+ late final _clang_EvalResult_getAsInt_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsInt>>(
+ 'clang_EvalResult_getAsInt');
+ late final _dart_clang_EvalResult_getAsInt _clang_EvalResult_getAsInt =
+ _clang_EvalResult_getAsInt_ptr
+ .asFunction<_dart_clang_EvalResult_getAsInt>();
/// Returns the evaluation result as a long long integer if the
/// kind is Int. This prevents overflows that may happen if the result is
@@ -881,29 +1051,34 @@
int clang_EvalResult_getAsLongLong(
ffi.Pointer<ffi.Void> E,
) {
- return (_clang_EvalResult_getAsLongLong ??= _dylib.lookupFunction<
- _c_clang_EvalResult_getAsLongLong,
- _dart_clang_EvalResult_getAsLongLong>(
- 'clang_EvalResult_getAsLongLong'))(
+ return _clang_EvalResult_getAsLongLong(
E,
);
}
- _dart_clang_EvalResult_getAsLongLong? _clang_EvalResult_getAsLongLong;
+ late final _clang_EvalResult_getAsLongLong_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsLongLong>>(
+ 'clang_EvalResult_getAsLongLong');
+ late final _dart_clang_EvalResult_getAsLongLong
+ _clang_EvalResult_getAsLongLong = _clang_EvalResult_getAsLongLong_ptr
+ .asFunction<_dart_clang_EvalResult_getAsLongLong>();
/// Returns the evaluation result as double if the
/// kind is double.
double clang_EvalResult_getAsDouble(
ffi.Pointer<ffi.Void> E,
) {
- return (_clang_EvalResult_getAsDouble ??= _dylib.lookupFunction<
- _c_clang_EvalResult_getAsDouble,
- _dart_clang_EvalResult_getAsDouble>('clang_EvalResult_getAsDouble'))(
+ return _clang_EvalResult_getAsDouble(
E,
);
}
- _dart_clang_EvalResult_getAsDouble? _clang_EvalResult_getAsDouble;
+ late final _clang_EvalResult_getAsDouble_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsDouble>>(
+ 'clang_EvalResult_getAsDouble');
+ late final _dart_clang_EvalResult_getAsDouble _clang_EvalResult_getAsDouble =
+ _clang_EvalResult_getAsDouble_ptr
+ .asFunction<_dart_clang_EvalResult_getAsDouble>();
/// Returns the evaluation result as a constant string if the
/// kind is other than Int or float. User must not free this pointer,
@@ -912,27 +1087,33 @@
ffi.Pointer<ffi.Int8> clang_EvalResult_getAsStr(
ffi.Pointer<ffi.Void> E,
) {
- return (_clang_EvalResult_getAsStr ??= _dylib.lookupFunction<
- _c_clang_EvalResult_getAsStr,
- _dart_clang_EvalResult_getAsStr>('clang_EvalResult_getAsStr'))(
+ return _clang_EvalResult_getAsStr(
E,
);
}
- _dart_clang_EvalResult_getAsStr? _clang_EvalResult_getAsStr;
+ late final _clang_EvalResult_getAsStr_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsStr>>(
+ 'clang_EvalResult_getAsStr');
+ late final _dart_clang_EvalResult_getAsStr _clang_EvalResult_getAsStr =
+ _clang_EvalResult_getAsStr_ptr
+ .asFunction<_dart_clang_EvalResult_getAsStr>();
/// Disposes the created Eval memory.
void clang_EvalResult_dispose(
ffi.Pointer<ffi.Void> E,
) {
- return (_clang_EvalResult_dispose ??= _dylib.lookupFunction<
- _c_clang_EvalResult_dispose,
- _dart_clang_EvalResult_dispose>('clang_EvalResult_dispose'))(
+ return _clang_EvalResult_dispose(
E,
);
}
- _dart_clang_EvalResult_dispose? _clang_EvalResult_dispose;
+ late final _clang_EvalResult_dispose_ptr =
+ _lookup<ffi.NativeFunction<_c_clang_EvalResult_dispose>>(
+ 'clang_EvalResult_dispose');
+ late final _dart_clang_EvalResult_dispose _clang_EvalResult_dispose =
+ _clang_EvalResult_dispose_ptr
+ .asFunction<_dart_clang_EvalResult_dispose>();
}
/// A character string.
@@ -2493,6 +2674,14 @@
ffi.Pointer<CXTranslationUnitImpl> arg0,
);
+typedef _c_clang_Cursor_isNull = ffi.Int32 Function(
+ CXCursor cursor,
+);
+
+typedef _dart_clang_Cursor_isNull = int Function(
+ CXCursor cursor,
+);
+
typedef _c_clang_getCursorKind = ffi.Int32 Function(
CXCursor arg0,
);
@@ -2731,6 +2920,14 @@
CXCursor arg0,
);
+typedef _c_clang_getCursorDefinition = CXCursor Function(
+ CXCursor arg0,
+);
+
+typedef _dart_clang_getCursorDefinition = CXCursor Function(
+ CXCursor arg0,
+);
+
typedef _c_clang_Cursor_getCommentRange = CXSourceRange Function(
CXCursor C,
);
diff --git a/lib/src/header_parser/sub_parsers/enumdecl_parser.dart b/lib/src/header_parser/sub_parsers/enumdecl_parser.dart
index 7da0ab4..7e09598 100644
--- a/lib/src/header_parser/sub_parsers/enumdecl_parser.dart
+++ b/lib/src/header_parser/sub_parsers/enumdecl_parser.dart
@@ -32,6 +32,12 @@
String? name,
}) {
_stack.push(_ParsedEnum());
+
+ // Parse the cursor definition instead, if this is a forward declaration.
+ if (isForwardDeclaration(cursor)) {
+ cursor = clang.clang_getCursorDefinition(cursor);
+ }
+
final enumUsr = cursor.usr();
final enumName = name ?? cursor.spelling();
if (enumName == '') {
diff --git a/lib/src/header_parser/sub_parsers/structdecl_parser.dart b/lib/src/header_parser/sub_parsers/structdecl_parser.dart
index 3cc0e23..4a6964b 100644
--- a/lib/src/header_parser/sub_parsers/structdecl_parser.dart
+++ b/lib/src/header_parser/sub_parsers/structdecl_parser.dart
@@ -50,6 +50,11 @@
}) {
_stack.push(_ParsedStruc());
+ // Parse the cursor definition instead, if this is a forward declaration.
+ if (isForwardDeclaration(cursor)) {
+ cursor = clang.clang_getCursorDefinition(cursor);
+ }
+
final structUsr = cursor.usr();
final structName = name ?? cursor.spelling();
diff --git a/lib/src/header_parser/utils.dart b/lib/src/header_parser/utils.dart
index 915d4b7..ef91924 100644
--- a/lib/src/header_parser/utils.dart
+++ b/lib/src/header_parser/utils.dart
@@ -205,6 +205,11 @@
return sb.toString().trim();
}
+bool isForwardDeclaration(clang_types.CXCursor cursor) {
+ return clang.clang_Cursor_isNull(clang.clang_getCursorDefinition(cursor)) ==
+ 0;
+}
+
extension CXTypeExt on clang_types.CXType {
/// Get code_gen [Type] representation of [clang_types.CXType].
Type toCodeGenType() {
diff --git a/pubspec.yaml b/pubspec.yaml
index df6c00b..1b6b447 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,7 +3,7 @@
# BSD-style license that can be found in the LICENSE file.
name: ffigen
-version: 2.2.1
+version: 2.2.2
homepage: https://github.com/dart-lang/ffigen
description: Generator for FFI bindings, using LibClang to parse C header files.
diff --git a/test/header_parser_tests/expected_bindings/_expected_forward_decl_bindings.dart b/test/header_parser_tests/expected_bindings/_expected_forward_decl_bindings.dart
new file mode 100644
index 0000000..5fc47cd
--- /dev/null
+++ b/test/header_parser_tests/expected_bindings/_expected_forward_decl_bindings.dart
@@ -0,0 +1,57 @@
+// AUTO GENERATED FILE, DO NOT EDIT.
+//
+// Generated by `package:ffigen`.
+import 'dart:ffi' as ffi;
+
+/// Forward Declaration Test
+class NativeLibrary {
+ /// Holds the symbol lookup function.
+ final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+ _lookup;
+
+ /// The symbols are looked up in [dynamicLibrary].
+ NativeLibrary(ffi.DynamicLibrary dynamicLibrary)
+ : _lookup = dynamicLibrary.lookup;
+
+ /// The symbols are looked up with [lookup].
+ NativeLibrary.fromLookup(
+ ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+ lookup)
+ : _lookup = lookup;
+
+ void func(
+ ffi.Pointer<A> a,
+ int b,
+ ) {
+ return _func(
+ a,
+ b,
+ );
+ }
+
+ late final _func_ptr = _lookup<ffi.NativeFunction<_c_func>>('func');
+ late final _dart_func _func = _func_ptr.asFunction<_dart_func>();
+}
+
+class A extends ffi.Struct {
+ @ffi.Int32()
+ external int a;
+
+ @ffi.Int32()
+ external int b;
+}
+
+abstract class B {
+ static const int a = 0;
+ static const int b = 1;
+}
+
+typedef _c_func = ffi.Void Function(
+ ffi.Pointer<A> a,
+ ffi.Int32 b,
+);
+
+typedef _dart_func = void Function(
+ ffi.Pointer<A> a,
+ int b,
+);
diff --git a/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart b/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart
index bc97540..ac068d2 100644
--- a/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart
+++ b/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart
@@ -3,7 +3,7 @@
// Generated by `package:ffigen`.
import 'dart:ffi' as ffi;
-/// Unnamed Enums Test
+/// Native Func Typedef Test.
class NativeLibrary {
/// Holds the symbol lookup function.
final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
diff --git a/test/header_parser_tests/forward_decl.h b/test/header_parser_tests/forward_decl.h
new file mode 100644
index 0000000..9e669aa
--- /dev/null
+++ b/test/header_parser_tests/forward_decl.h
@@ -0,0 +1,20 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+struct A;
+enum B;
+
+void func(struct A *a, enum B b);
+
+struct A
+{
+ int a;
+ int b;
+};
+
+enum B
+{
+ a,
+ b
+};
diff --git a/test/header_parser_tests/forward_decl_test.dart b/test/header_parser_tests/forward_decl_test.dart
new file mode 100644
index 0000000..b0418b5
--- /dev/null
+++ b/test/header_parser_tests/forward_decl_test.dart
@@ -0,0 +1,45 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/code_generator.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/config_provider.dart';
+import 'package:logging/logging.dart';
+import 'package:test/test.dart';
+import 'package:yaml/yaml.dart' as yaml;
+import 'package:ffigen/src/strings.dart' as strings;
+
+import '../test_utils.dart';
+
+late Library actual;
+void main() {
+ group('forward_decl_test', () {
+ setUpAll(() {
+ logWarnings(Level.SEVERE);
+ actual = parser.parse(
+ Config.fromYaml(yaml.loadYaml('''
+${strings.name}: 'NativeLibrary'
+${strings.description}: 'Forward Declaration Test'
+${strings.output}: 'unused'
+${strings.headers}:
+ ${strings.entryPoints}:
+ - 'test/header_parser_tests/forward_decl.h'
+ ''') as yaml.YamlMap),
+ );
+ });
+
+ test('Expected bindings', () {
+ matchLibraryWithExpected(actual, [
+ 'test',
+ 'debug_generated',
+ 'forward_decl_test_output.dart'
+ ], [
+ 'test',
+ 'header_parser_tests',
+ 'expected_bindings',
+ '_expected_forward_decl_bindings.dart'
+ ]);
+ });
+ });
+}
diff --git a/test/header_parser_tests/native_func_typedef_test.dart b/test/header_parser_tests/native_func_typedef_test.dart
index 7a56d2b..e041f56 100644
--- a/test/header_parser_tests/native_func_typedef_test.dart
+++ b/test/header_parser_tests/native_func_typedef_test.dart
@@ -14,13 +14,13 @@
late Library actual;
void main() {
- group('unnamed_enums_test', () {
+ group('native_func_typedef_test', () {
setUpAll(() {
logWarnings(Level.SEVERE);
actual = parser.parse(
Config.fromYaml(yaml.loadYaml('''
${strings.name}: 'NativeLibrary'
-${strings.description}: 'Unnamed Enums Test'
+${strings.description}: 'Native Func Typedef Test.'
${strings.output}: 'unused'
${strings.headers}:
${strings.entryPoints}:
diff --git a/test/large_integration_tests/_expected_sqlite_bindings.dart b/test/large_integration_tests/_expected_sqlite_bindings.dart
index 0a52e5b..3a7e50e 100644
--- a/test/large_integration_tests/_expected_sqlite_bindings.dart
+++ b/test/large_integration_tests/_expected_sqlite_bindings.dart
@@ -877,7 +877,7 @@
/// or [prepared statement] that invoked the busy handler.
int sqlite3_busy_handler(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_20>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_44>> arg1,
ffi.Pointer<ffi.Void> arg2,
) {
return _sqlite3_busy_handler(
@@ -1427,7 +1427,7 @@
/// sqlite3_prepare_v2() to reprepare a statement after a schema change.
int sqlite3_set_authorizer(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_21>> xAuth,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_45>> xAuth,
ffi.Pointer<ffi.Void> pUserData,
) {
return _sqlite3_set_authorizer(
@@ -1475,7 +1475,7 @@
/// profile callback.
ffi.Pointer<ffi.Void> sqlite3_trace(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_22>> xTrace,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_46>> xTrace,
ffi.Pointer<ffi.Void> arg2,
) {
return _sqlite3_trace(
@@ -1492,7 +1492,7 @@
ffi.Pointer<ffi.Void> sqlite3_profile(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_23>> xProfile,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_47>> xProfile,
ffi.Pointer<ffi.Void> arg2,
) {
return _sqlite3_profile(
@@ -1537,7 +1537,7 @@
int sqlite3_trace_v2(
ffi.Pointer<sqlite3> arg0,
int uMask,
- ffi.Pointer<ffi.NativeFunction<_typedefC_24>> xCallback,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_48>> xCallback,
ffi.Pointer<ffi.Void> pCtx,
) {
return _sqlite3_trace_v2(
@@ -1585,7 +1585,7 @@
void sqlite3_progress_handler(
ffi.Pointer<sqlite3> arg0,
int arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_25>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_49>> arg2,
ffi.Pointer<ffi.Void> arg3,
) {
return _sqlite3_progress_handler(
@@ -2927,7 +2927,7 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
int n,
- ffi.Pointer<ffi.NativeFunction<_typedefC_26>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_50>> arg4,
) {
return _sqlite3_bind_blob(
arg0,
@@ -2948,7 +2948,7 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_27>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_51>> arg4,
) {
return _sqlite3_bind_blob64(
arg0,
@@ -3037,7 +3037,7 @@
int arg1,
ffi.Pointer<ffi.Int8> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_28>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_52>> arg4,
) {
return _sqlite3_bind_text(
arg0,
@@ -3058,7 +3058,7 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_29>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_53>> arg4,
) {
return _sqlite3_bind_text16(
arg0,
@@ -3080,7 +3080,7 @@
int arg1,
ffi.Pointer<ffi.Int8> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_30>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_54>> arg4,
int encoding,
) {
return _sqlite3_bind_text64(
@@ -3121,7 +3121,7 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
ffi.Pointer<ffi.Int8> arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_31>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_55>> arg4,
) {
return _sqlite3_bind_pointer(
arg0,
@@ -4275,9 +4275,9 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_32>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_33>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_34>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_56>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_57>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_58>> xFinal,
) {
return _sqlite3_create_function(
db,
@@ -4303,9 +4303,9 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_35>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_36>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_37>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_59>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_60>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_61>> xFinal,
) {
return _sqlite3_create_function16(
db,
@@ -4332,10 +4332,10 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_38>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_39>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_40>> xFinal,
- ffi.Pointer<ffi.NativeFunction<_typedefC_41>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_62>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_63>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_64>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_65>> xDestroy,
) {
return _sqlite3_create_function_v2(
db,
@@ -4363,11 +4363,11 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_42>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_43>> xFinal,
- ffi.Pointer<ffi.NativeFunction<_typedefC_44>> xValue,
- ffi.Pointer<ffi.NativeFunction<_typedefC_45>> xInverse,
- ffi.Pointer<ffi.NativeFunction<_typedefC_46>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_66>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_67>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_68>> xValue,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_69>> xInverse,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_70>> xDestroy,
) {
return _sqlite3_create_window_function(
db,
@@ -4455,7 +4455,7 @@
_sqlite3_thread_cleanup_ptr.asFunction<_dart_sqlite3_thread_cleanup>();
int sqlite3_memory_alarm(
- ffi.Pointer<ffi.NativeFunction<_typedefC_47>> arg0,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_71>> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
) {
@@ -5047,7 +5047,7 @@
ffi.Pointer<sqlite3_context> arg0,
int N,
ffi.Pointer<ffi.Void> arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_48>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_72>> arg3,
) {
return _sqlite3_set_auxdata(
arg0,
@@ -5211,7 +5211,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_49>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_73>> arg3,
) {
return _sqlite3_result_blob(
arg0,
@@ -5231,7 +5231,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_50>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_74>> arg3,
) {
return _sqlite3_result_blob64(
arg0,
@@ -5395,7 +5395,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Int8> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_51>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_75>> arg3,
) {
return _sqlite3_result_text(
arg0,
@@ -5415,7 +5415,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Int8> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_52>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_76>> arg3,
int encoding,
) {
return _sqlite3_result_text64(
@@ -5437,7 +5437,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_53>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_77>> arg3,
) {
return _sqlite3_result_text16(
arg0,
@@ -5457,7 +5457,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_54>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_78>> arg3,
) {
return _sqlite3_result_text16le(
arg0,
@@ -5477,7 +5477,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_55>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_79>> arg3,
) {
return _sqlite3_result_text16be(
arg0,
@@ -5513,7 +5513,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Pointer<ffi.Int8> arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_56>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_80>> arg3,
) {
return _sqlite3_result_pointer(
arg0,
@@ -5672,7 +5672,7 @@
ffi.Pointer<ffi.Int8> zName,
int eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_57>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_81>> xCompare,
) {
return _sqlite3_create_collation(
arg0,
@@ -5695,8 +5695,8 @@
ffi.Pointer<ffi.Int8> zName,
int eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_58>> xCompare,
- ffi.Pointer<ffi.NativeFunction<_typedefC_59>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_82>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_83>> xDestroy,
) {
return _sqlite3_create_collation_v2(
arg0,
@@ -5720,7 +5720,7 @@
ffi.Pointer<ffi.Void> zName,
int eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_60>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_84>> xCompare,
) {
return _sqlite3_create_collation16(
arg0,
@@ -5766,7 +5766,7 @@
int sqlite3_collation_needed(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Void> arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_61>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_85>> arg2,
) {
return _sqlite3_collation_needed(
arg0,
@@ -5785,7 +5785,7 @@
int sqlite3_collation_needed16(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Void> arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_62>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_86>> arg2,
) {
return _sqlite3_collation_needed16(
arg0,
@@ -6198,7 +6198,7 @@
/// See also the [sqlite3_update_hook()] interface.
ffi.Pointer<ffi.Void> sqlite3_commit_hook(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_63>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_87>> arg1,
ffi.Pointer<ffi.Void> arg2,
) {
return _sqlite3_commit_hook(
@@ -6216,7 +6216,7 @@
ffi.Pointer<ffi.Void> sqlite3_rollback_hook(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_64>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_88>> arg1,
ffi.Pointer<ffi.Void> arg2,
) {
return _sqlite3_rollback_hook(
@@ -6281,7 +6281,7 @@
/// and [sqlite3_preupdate_hook()] interfaces.
ffi.Pointer<ffi.Void> sqlite3_update_hook(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_65>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_89>> arg1,
ffi.Pointer<ffi.Void> arg2,
) {
return _sqlite3_update_hook(
@@ -6748,7 +6748,7 @@
/// See also: [sqlite3_reset_auto_extension()]
/// and [sqlite3_cancel_auto_extension()]
int sqlite3_auto_extension(
- ffi.Pointer<ffi.NativeFunction<_typedefC_66>> xEntryPoint,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_90>> xEntryPoint,
) {
return _sqlite3_auto_extension(
xEntryPoint,
@@ -6770,7 +6770,7 @@
/// unregistered and it returns 0 if X was not on the list of initialization
/// routines.
int sqlite3_cancel_auto_extension(
- ffi.Pointer<ffi.NativeFunction<_typedefC_67>> xEntryPoint,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_91>> xEntryPoint,
) {
return _sqlite3_cancel_auto_extension(
xEntryPoint,
@@ -6854,7 +6854,7 @@
ffi.Pointer<ffi.Int8> zName,
ffi.Pointer<sqlite3_module> p,
ffi.Pointer<ffi.Void> pClientData,
- ffi.Pointer<ffi.NativeFunction<_typedefC_68>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_116>> xDestroy,
) {
return _sqlite3_create_module_v2(
db,
@@ -8490,7 +8490,7 @@
/// SQLITE_LOCKED.)^
int sqlite3_unlock_notify(
ffi.Pointer<sqlite3> pBlocked,
- ffi.Pointer<ffi.NativeFunction<_typedefC_69>> xNotify,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_147>> xNotify,
ffi.Pointer<ffi.Void> pNotifyArg,
) {
return _sqlite3_unlock_notify(
@@ -8676,7 +8676,7 @@
/// overwrite any prior [sqlite3_wal_hook()] settings.
ffi.Pointer<ffi.Void> sqlite3_wal_hook(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_70>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_148>> arg1,
ffi.Pointer<ffi.Void> arg2,
) {
return _sqlite3_wal_hook(
@@ -9457,7 +9457,7 @@
int sqlite3_rtree_geometry_callback(
ffi.Pointer<sqlite3> db,
ffi.Pointer<ffi.Int8> zGeom,
- ffi.Pointer<ffi.NativeFunction<_typedefC_71>> xGeom,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_151>> xGeom,
ffi.Pointer<ffi.Void> pContext,
) {
return _sqlite3_rtree_geometry_callback(
@@ -9482,9 +9482,9 @@
int sqlite3_rtree_query_callback(
ffi.Pointer<sqlite3> db,
ffi.Pointer<ffi.Int8> zQueryFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_72>> xQueryFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_152>> xQueryFunc,
ffi.Pointer<ffi.Void> pContext,
- ffi.Pointer<ffi.NativeFunction<_typedefC_73>> xDestructor,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_153>> xDestructor,
) {
return _sqlite3_rtree_query_callback(
db,
@@ -9505,8 +9505,6 @@
class sqlite3 extends ffi.Opaque {}
-class sqlite3_file extends ffi.Opaque {}
-
class sqlite3_io_methods extends ffi.Struct {
@ffi.Int32()
external int iVersion;
@@ -9550,13 +9548,99 @@
external ffi.Pointer<ffi.NativeFunction<_typedefC_19>> xUnfetch;
}
+class sqlite3_file extends ffi.Struct {
+ /// Methods for an open file
+ external ffi.Pointer<sqlite3_io_methods> pMethods;
+}
+
class sqlite3_mutex extends ffi.Opaque {}
class sqlite3_api_routines extends ffi.Opaque {}
-class sqlite3_vfs extends ffi.Opaque {}
+class sqlite3_vfs extends ffi.Struct {
+ /// Structure version number (currently 3)
+ @ffi.Int32()
+ external int iVersion;
-class sqlite3_mem_methods extends ffi.Opaque {}
+ /// Size of subclassed sqlite3_file
+ @ffi.Int32()
+ external int szOsFile;
+
+ /// Maximum file pathname length
+ @ffi.Int32()
+ external int mxPathname;
+
+ /// Next registered VFS
+ external ffi.Pointer<sqlite3_vfs> pNext;
+
+ /// Name of this virtual file system
+ external ffi.Pointer<ffi.Int8> zName;
+
+ /// Pointer to application-specific data
+ external ffi.Pointer<ffi.Void> pAppData;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_20>> xOpen;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_21>> xDelete;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_22>> xAccess;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_23>> xFullPathname;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_24>> xDlOpen;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_25>> xDlError;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_26>> xDlSym;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_28>> xDlClose;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_29>> xRandomness;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_30>> xSleep;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_31>> xCurrentTime;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_32>> xGetLastError;
+
+ /// The methods above are in version 1 of the sqlite_vfs object
+ /// definition. Those that follow are added in version 2 or later
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_33>> xCurrentTimeInt64;
+
+ /// The methods above are in versions 1 and 2 of the sqlite_vfs object.
+ /// Those below are for version 3 and greater.
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_34>> xSetSystemCall;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_35>> xGetSystemCall;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_36>> xNextSystemCall;
+}
+
+class sqlite3_mem_methods extends ffi.Struct {
+ /// Memory allocation function
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_37>> xMalloc;
+
+ /// Free a prior allocation
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_38>> xFree;
+
+ /// Resize an allocation
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_39>> xRealloc;
+
+ /// Return the size of an allocation
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_40>> xSize;
+
+ /// Round up request size to allocation size
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_41>> xRoundup;
+
+ /// Initialize the memory allocator
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_42>> xInit;
+
+ /// Deinitialize the memory allocator
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_43>> xShutdown;
+
+ /// Argument to xInit() and xShutdown()
+ external ffi.Pointer<ffi.Void> pAppData;
+}
class sqlite3_stmt extends ffi.Opaque {}
@@ -9564,23 +9648,44 @@
class sqlite3_context extends ffi.Opaque {}
-/// CAPI3REF: Virtual Table Instance Object
-/// KEYWORDS: sqlite3_vtab
-///
-/// Every [virtual table module] implementation uses a subclass
-/// of this object to describe a particular instance
-/// of the [virtual table]. Each subclass will
-/// be tailored to the specific needs of the module implementation.
-/// The purpose of this superclass is to define certain fields that are
-/// common to all module implementations.
-///
-/// ^Virtual tables methods can set an error message by assigning a
-/// string obtained from [sqlite3_mprintf()] to zErrMsg. The method should
-/// take care that any prior string is freed by a call to [sqlite3_free()]
-/// prior to assigning a new string to zErrMsg. ^After the error message
-/// is delivered up to the client application, the string will be automatically
-/// freed by sqlite3_free() and the zErrMsg field will be zeroed.
-class sqlite3_vtab extends ffi.Opaque {}
+class sqlite3_index_constraint extends ffi.Struct {
+ /// Column constrained. -1 for ROWID
+ @ffi.Int32()
+ external int iColumn;
+
+ /// Constraint operator
+ @ffi.Uint8()
+ external int op;
+
+ /// True if this constraint is usable
+ @ffi.Uint8()
+ external int usable;
+
+ /// Used internally - xBestIndex should ignore
+ @ffi.Int32()
+ external int iTermOffset;
+}
+
+class sqlite3_index_orderby extends ffi.Struct {
+ /// Column number
+ @ffi.Int32()
+ external int iColumn;
+
+ /// True for DESC. False for ASC.
+ @ffi.Uint8()
+ external int desc;
+}
+
+/// Outputs
+class sqlite3_index_constraint_usage extends ffi.Struct {
+ /// if >0, constraint is part of argv to xFilter
+ @ffi.Int32()
+ external int argvIndex;
+
+ /// Do not code a test for this constraint
+ @ffi.Uint8()
+ external int omit;
+}
/// CAPI3REF: Virtual Table Indexing Information
/// KEYWORDS: sqlite3_index_info
@@ -9682,7 +9787,54 @@
/// It may therefore only be used if
/// sqlite3_libversion_number() returns a value greater than or equal to
/// 3009000.
-class sqlite3_index_info extends ffi.Opaque {}
+class sqlite3_index_info extends ffi.Struct {
+ /// Number of entries in aConstraint
+ @ffi.Int32()
+ external int nConstraint;
+
+ /// Table of WHERE clause constraints
+ external ffi.Pointer<sqlite3_index_constraint> aConstraint;
+
+ /// Number of terms in the ORDER BY clause
+ @ffi.Int32()
+ external int nOrderBy;
+
+ /// The ORDER BY clause
+ external ffi.Pointer<sqlite3_index_orderby> aOrderBy;
+
+ external ffi.Pointer<sqlite3_index_constraint_usage> aConstraintUsage;
+
+ /// Number used to identify the index
+ @ffi.Int32()
+ external int idxNum;
+
+ /// String, possibly obtained from sqlite3_malloc
+ external ffi.Pointer<ffi.Int8> idxStr;
+
+ /// Free idxStr using sqlite3_free() if true
+ @ffi.Int32()
+ external int needToFreeIdxStr;
+
+ /// True if output is already ordered
+ @ffi.Int32()
+ external int orderByConsumed;
+
+ /// Estimated cost of using this index
+ @ffi.Double()
+ external double estimatedCost;
+
+ /// Estimated number of rows returned
+ @ffi.Int64()
+ external int estimatedRows;
+
+ /// Mask of SQLITE_INDEX_SCAN_* flags
+ @ffi.Int32()
+ external int idxFlags;
+
+ /// Input: Mask of columns used by statement
+ @ffi.Uint64()
+ external int colUsed;
+}
/// CAPI3REF: Virtual Table Cursor Object
/// KEYWORDS: sqlite3_vtab_cursor {virtual table cursor}
@@ -9699,7 +9851,10 @@
///
/// This superclass exists in order to define fields of the cursor that
/// are common to all implementations.
-class sqlite3_vtab_cursor extends ffi.Opaque {}
+class sqlite3_vtab_cursor extends ffi.Struct {
+ /// Virtual table of this cursor
+ external ffi.Pointer<sqlite3_vtab> pVtab;
+}
/// CAPI3REF: Virtual Table Object
/// KEYWORDS: sqlite3_module {virtual table module}
@@ -9715,21 +9870,175 @@
/// module or until the [database connection] closes. The content
/// of this structure must not change while it is registered with
/// any database connection.
-class sqlite3_module extends ffi.Opaque {}
+class sqlite3_module extends ffi.Struct {
+ @ffi.Int32()
+ external int iVersion;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_92>> xCreate;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_93>> xConnect;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_94>> xBestIndex;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_95>> xDisconnect;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_96>> xDestroy;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_97>> xOpen;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_98>> xClose;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_99>> xFilter;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_100>> xNext;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_101>> xEof;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_102>> xColumn;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_103>> xRowid;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_104>> xUpdate;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_105>> xBegin;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_106>> xSync;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_107>> xCommit;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_108>> xRollback;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_110>> xFindFunction;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_111>> xRename;
+
+ /// The methods above are in version 1 of the sqlite_module object. Those
+ /// below are for version 2 and greater.
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_112>> xSavepoint;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_113>> xRelease;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_114>> xRollbackTo;
+
+ /// The methods above are in versions 1 and 2 of the sqlite_module object.
+ /// Those below are for version 3 and greater.
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_115>> xShadowName;
+}
+
+/// CAPI3REF: Virtual Table Instance Object
+/// KEYWORDS: sqlite3_vtab
+///
+/// Every [virtual table module] implementation uses a subclass
+/// of this object to describe a particular instance
+/// of the [virtual table]. Each subclass will
+/// be tailored to the specific needs of the module implementation.
+/// The purpose of this superclass is to define certain fields that are
+/// common to all module implementations.
+///
+/// ^Virtual tables methods can set an error message by assigning a
+/// string obtained from [sqlite3_mprintf()] to zErrMsg. The method should
+/// take care that any prior string is freed by a call to [sqlite3_free()]
+/// prior to assigning a new string to zErrMsg. ^After the error message
+/// is delivered up to the client application, the string will be automatically
+/// freed by sqlite3_free() and the zErrMsg field will be zeroed.
+class sqlite3_vtab extends ffi.Struct {
+ /// The module for this virtual table
+ external ffi.Pointer<sqlite3_module> pModule;
+
+ /// Number of open cursors
+ @ffi.Int32()
+ external int nRef;
+
+ /// Error message from sqlite3_mprintf()
+ external ffi.Pointer<ffi.Int8> zErrMsg;
+}
class sqlite3_blob extends ffi.Opaque {}
-class sqlite3_mutex_methods extends ffi.Opaque {}
+class sqlite3_mutex_methods extends ffi.Struct {
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_117>> xMutexInit;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_118>> xMutexEnd;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_119>> xMutexAlloc;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_120>> xMutexFree;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_121>> xMutexEnter;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_122>> xMutexTry;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_123>> xMutexLeave;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_124>> xMutexHeld;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_125>> xMutexNotheld;
+}
class sqlite3_str extends ffi.Opaque {}
class sqlite3_pcache extends ffi.Opaque {}
-class sqlite3_pcache_page extends ffi.Opaque {}
+class sqlite3_pcache_page extends ffi.Struct {
+ /// The content of the page
+ external ffi.Pointer<ffi.Void> pBuf;
-class sqlite3_pcache_methods2 extends ffi.Opaque {}
+ /// Extra information associated with the page
+ external ffi.Pointer<ffi.Void> pExtra;
+}
-class sqlite3_pcache_methods extends ffi.Opaque {}
+class sqlite3_pcache_methods2 extends ffi.Struct {
+ @ffi.Int32()
+ external int iVersion;
+
+ external ffi.Pointer<ffi.Void> pArg;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_126>> xInit;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_127>> xShutdown;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_128>> xCreate;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_129>> xCachesize;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_130>> xPagecount;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_131>> xFetch;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_132>> xUnpin;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_133>> xRekey;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_134>> xTruncate;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_135>> xDestroy;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_136>> xShrink;
+}
+
+class sqlite3_pcache_methods extends ffi.Struct {
+ external ffi.Pointer<ffi.Void> pArg;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_137>> xInit;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_138>> xShutdown;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_139>> xCreate;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_140>> xCachesize;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_141>> xPagecount;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_142>> xFetch;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_143>> xUnpin;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_144>> xRekey;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_145>> xTruncate;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_146>> xDestroy;
+}
class sqlite3_backup extends ffi.Opaque {}
@@ -10129,7 +10438,23 @@
/// A pointer to a structure of the following type is passed as the first
/// argument to callbacks registered using rtree_geometry_callback().
-class sqlite3_rtree_geometry extends ffi.Opaque {}
+class sqlite3_rtree_geometry extends ffi.Struct {
+ /// Copy of pContext passed to s_r_g_c()
+ external ffi.Pointer<ffi.Void> pContext;
+
+ /// Size of array aParam[]
+ @ffi.Int32()
+ external int nParam;
+
+ /// Parameters passed to SQL geom function
+ external ffi.Pointer<ffi.Double> aParam;
+
+ /// Callback implementation user data
+ external ffi.Pointer<ffi.Void> pUser;
+
+ /// Called by SQLite to clean up pUser
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_149>> xDelUser;
+}
/// A pointer to a structure of the following type is passed as the
/// argument to scored geometry callback registered using
@@ -10138,7 +10463,72 @@
/// Note that the first 5 fields of this structure are identical to
/// sqlite3_rtree_geometry. This structure is a subclass of
/// sqlite3_rtree_geometry.
-class sqlite3_rtree_query_info extends ffi.Opaque {}
+class sqlite3_rtree_query_info extends ffi.Struct {
+ /// pContext from when function registered
+ external ffi.Pointer<ffi.Void> pContext;
+
+ /// Number of function parameters
+ @ffi.Int32()
+ external int nParam;
+
+ /// value of function parameters
+ external ffi.Pointer<ffi.Double> aParam;
+
+ /// callback can use this, if desired
+ external ffi.Pointer<ffi.Void> pUser;
+
+ /// function to free pUser
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_150>> xDelUser;
+
+ /// Coordinates of node or entry to check
+ external ffi.Pointer<ffi.Double> aCoord;
+
+ /// Number of pending entries in the queue
+ external ffi.Pointer<ffi.Uint32> anQueue;
+
+ /// Number of coordinates
+ @ffi.Int32()
+ external int nCoord;
+
+ /// Level of current node or entry
+ @ffi.Int32()
+ external int iLevel;
+
+ /// The largest iLevel value in the tree
+ @ffi.Int32()
+ external int mxLevel;
+
+ /// Rowid for current entry
+ @ffi.Int64()
+ external int iRowid;
+
+ /// Score of parent node
+ @ffi.Double()
+ external double rParentScore;
+
+ /// Visibility of parent node
+ @ffi.Int32()
+ external int eParentWithin;
+
+ /// OUT: Visibility
+ @ffi.Int32()
+ external int eWithin;
+
+ /// OUT: Write the score here
+ @ffi.Double()
+ external double rScore;
+
+ /// Original SQL values of parameters
+ external ffi.Pointer<ffi.Pointer<sqlite3_value>> apSqlParam;
+}
+
+class Fts5Context extends ffi.Opaque {}
+
+class Fts5PhraseIter extends ffi.Struct {
+ external ffi.Pointer<ffi.Uint8> a;
+
+ external ffi.Pointer<ffi.Uint8> b;
+}
/// EXTENSION API FUNCTIONS
///
@@ -10349,17 +10739,74 @@
///
/// xPhraseNextColumn()
/// See xPhraseFirstColumn above.
-class Fts5ExtensionApi extends ffi.Opaque {}
+class Fts5ExtensionApi extends ffi.Struct {
+ /// Currently always set to 3
+ @ffi.Int32()
+ external int iVersion;
-class Fts5Context extends ffi.Opaque {}
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_154>> xUserData;
-class Fts5PhraseIter extends ffi.Opaque {}
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_155>> xColumnCount;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_156>> xRowCount;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_157>> xColumnTotalSize;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_159>> xTokenize;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_160>> xPhraseCount;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_161>> xPhraseSize;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_162>> xInstCount;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_163>> xInst;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_164>> xRowid;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_165>> xColumnText;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_166>> xColumnSize;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_168>> xQueryPhrase;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_170>> xSetAuxdata;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_171>> xGetAuxdata;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_172>> xPhraseFirst;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_173>> xPhraseNext;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_174>> xPhraseFirstColumn;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_175>> xPhraseNextColumn;
+}
class Fts5Tokenizer extends ffi.Opaque {}
-class fts5_tokenizer extends ffi.Opaque {}
+class fts5_tokenizer extends ffi.Struct {
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_176>> xCreate;
-class fts5_api extends ffi.Opaque {}
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_177>> xDelete;
+
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_179>> xTokenize;
+}
+
+class fts5_api extends ffi.Struct {
+ /// Currently always set to 2
+ @ffi.Int32()
+ external int iVersion;
+
+ /// Create a new tokenizer
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_181>> xCreateTokenizer;
+
+ /// Find an existing tokenizer
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_182>> xFindTokenizer;
+
+ /// Create a new auxiliary function
+ external ffi.Pointer<ffi.NativeFunction<_typedefC_184>> xCreateFunction;
+}
const String SQLITE_VERSION = '3.32.3';
@@ -11415,20 +11862,20 @@
ffi.Pointer<ffi.Void> sql,
);
-typedef _typedefC_20 = ffi.Int32 Function(
+typedef _typedefC_44 = ffi.Int32 Function(
ffi.Pointer<ffi.Void>,
ffi.Int32,
);
typedef _c_sqlite3_busy_handler = ffi.Int32 Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_20>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_44>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
typedef _dart_sqlite3_busy_handler = int Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_20>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_44>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
@@ -11562,7 +12009,7 @@
ffi.Pointer<ffi.Void> P,
);
-typedef _typedefC_21 = ffi.Int32 Function(
+typedef _typedefC_45 = ffi.Int32 Function(
ffi.Pointer<ffi.Void>,
ffi.Int32,
ffi.Pointer<ffi.Int8>,
@@ -11573,34 +12020,34 @@
typedef _c_sqlite3_set_authorizer = ffi.Int32 Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_21>> xAuth,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_45>> xAuth,
ffi.Pointer<ffi.Void> pUserData,
);
typedef _dart_sqlite3_set_authorizer = int Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_21>> xAuth,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_45>> xAuth,
ffi.Pointer<ffi.Void> pUserData,
);
-typedef _typedefC_22 = ffi.Void Function(
+typedef _typedefC_46 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
ffi.Pointer<ffi.Int8>,
);
typedef _c_sqlite3_trace = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_22>> xTrace,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_46>> xTrace,
ffi.Pointer<ffi.Void> arg2,
);
typedef _dart_sqlite3_trace = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_22>> xTrace,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_46>> xTrace,
ffi.Pointer<ffi.Void> arg2,
);
-typedef _typedefC_23 = ffi.Void Function(
+typedef _typedefC_47 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
ffi.Pointer<ffi.Int8>,
ffi.Uint64,
@@ -11608,17 +12055,17 @@
typedef _c_sqlite3_profile = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_23>> xProfile,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_47>> xProfile,
ffi.Pointer<ffi.Void> arg2,
);
typedef _dart_sqlite3_profile = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_23>> xProfile,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_47>> xProfile,
ffi.Pointer<ffi.Void> arg2,
);
-typedef _typedefC_24 = ffi.Int32 Function(
+typedef _typedefC_48 = ffi.Int32 Function(
ffi.Uint32,
ffi.Pointer<ffi.Void>,
ffi.Pointer<ffi.Void>,
@@ -11628,32 +12075,32 @@
typedef _c_sqlite3_trace_v2 = ffi.Int32 Function(
ffi.Pointer<sqlite3> arg0,
ffi.Uint32 uMask,
- ffi.Pointer<ffi.NativeFunction<_typedefC_24>> xCallback,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_48>> xCallback,
ffi.Pointer<ffi.Void> pCtx,
);
typedef _dart_sqlite3_trace_v2 = int Function(
ffi.Pointer<sqlite3> arg0,
int uMask,
- ffi.Pointer<ffi.NativeFunction<_typedefC_24>> xCallback,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_48>> xCallback,
ffi.Pointer<ffi.Void> pCtx,
);
-typedef _typedefC_25 = ffi.Int32 Function(
+typedef _typedefC_49 = ffi.Int32 Function(
ffi.Pointer<ffi.Void>,
);
typedef _c_sqlite3_progress_handler = ffi.Void Function(
ffi.Pointer<sqlite3> arg0,
ffi.Int32 arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_25>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_49>> arg2,
ffi.Pointer<ffi.Void> arg3,
);
typedef _dart_sqlite3_progress_handler = void Function(
ffi.Pointer<sqlite3> arg0,
int arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_25>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_49>> arg2,
ffi.Pointer<ffi.Void> arg3,
);
@@ -11991,7 +12438,7 @@
ffi.Pointer<sqlite3_stmt> arg0,
);
-typedef _typedefC_26 = ffi.Void Function(
+typedef _typedefC_50 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12000,7 +12447,7 @@
ffi.Int32 arg1,
ffi.Pointer<ffi.Void> arg2,
ffi.Int32 n,
- ffi.Pointer<ffi.NativeFunction<_typedefC_26>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_50>> arg4,
);
typedef _dart_sqlite3_bind_blob = int Function(
@@ -12008,10 +12455,10 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
int n,
- ffi.Pointer<ffi.NativeFunction<_typedefC_26>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_50>> arg4,
);
-typedef _typedefC_27 = ffi.Void Function(
+typedef _typedefC_51 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12020,7 +12467,7 @@
ffi.Int32 arg1,
ffi.Pointer<ffi.Void> arg2,
ffi.Uint64 arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_27>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_51>> arg4,
);
typedef _dart_sqlite3_bind_blob64 = int Function(
@@ -12028,7 +12475,7 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_27>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_51>> arg4,
);
typedef _c_sqlite3_bind_double = ffi.Int32 Function(
@@ -12077,7 +12524,7 @@
int arg1,
);
-typedef _typedefC_28 = ffi.Void Function(
+typedef _typedefC_52 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12086,7 +12533,7 @@
ffi.Int32 arg1,
ffi.Pointer<ffi.Int8> arg2,
ffi.Int32 arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_28>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_52>> arg4,
);
typedef _dart_sqlite3_bind_text = int Function(
@@ -12094,10 +12541,10 @@
int arg1,
ffi.Pointer<ffi.Int8> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_28>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_52>> arg4,
);
-typedef _typedefC_29 = ffi.Void Function(
+typedef _typedefC_53 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12106,7 +12553,7 @@
ffi.Int32 arg1,
ffi.Pointer<ffi.Void> arg2,
ffi.Int32 arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_29>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_53>> arg4,
);
typedef _dart_sqlite3_bind_text16 = int Function(
@@ -12114,10 +12561,10 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_29>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_53>> arg4,
);
-typedef _typedefC_30 = ffi.Void Function(
+typedef _typedefC_54 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12126,7 +12573,7 @@
ffi.Int32 arg1,
ffi.Pointer<ffi.Int8> arg2,
ffi.Uint64 arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_30>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_54>> arg4,
ffi.Uint8 encoding,
);
@@ -12135,7 +12582,7 @@
int arg1,
ffi.Pointer<ffi.Int8> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_30>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_54>> arg4,
int encoding,
);
@@ -12151,7 +12598,7 @@
ffi.Pointer<sqlite3_value> arg2,
);
-typedef _typedefC_31 = ffi.Void Function(
+typedef _typedefC_55 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12160,7 +12607,7 @@
ffi.Int32 arg1,
ffi.Pointer<ffi.Void> arg2,
ffi.Pointer<ffi.Int8> arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_31>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_55>> arg4,
);
typedef _dart_sqlite3_bind_pointer = int Function(
@@ -12168,7 +12615,7 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
ffi.Pointer<ffi.Int8> arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_31>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_55>> arg4,
);
typedef _c_sqlite3_bind_zeroblob = ffi.Int32 Function(
@@ -12471,19 +12918,19 @@
ffi.Pointer<sqlite3_stmt> pStmt,
);
-typedef _typedefC_32 = ffi.Void Function(
+typedef _typedefC_56 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_33 = ffi.Void Function(
+typedef _typedefC_57 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_34 = ffi.Void Function(
+typedef _typedefC_58 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
);
@@ -12493,9 +12940,9 @@
ffi.Int32 nArg,
ffi.Int32 eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_32>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_33>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_34>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_56>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_57>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_58>> xFinal,
);
typedef _dart_sqlite3_create_function = int Function(
@@ -12504,24 +12951,24 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_32>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_33>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_34>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_56>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_57>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_58>> xFinal,
);
-typedef _typedefC_35 = ffi.Void Function(
+typedef _typedefC_59 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_36 = ffi.Void Function(
+typedef _typedefC_60 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_37 = ffi.Void Function(
+typedef _typedefC_61 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
);
@@ -12531,9 +12978,9 @@
ffi.Int32 nArg,
ffi.Int32 eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_35>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_36>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_37>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_59>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_60>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_61>> xFinal,
);
typedef _dart_sqlite3_create_function16 = int Function(
@@ -12542,28 +12989,28 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_35>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_36>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_37>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_59>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_60>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_61>> xFinal,
);
-typedef _typedefC_38 = ffi.Void Function(
+typedef _typedefC_62 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_39 = ffi.Void Function(
+typedef _typedefC_63 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_40 = ffi.Void Function(
+typedef _typedefC_64 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
);
-typedef _typedefC_41 = ffi.Void Function(
+typedef _typedefC_65 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12573,10 +13020,10 @@
ffi.Int32 nArg,
ffi.Int32 eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_38>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_39>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_40>> xFinal,
- ffi.Pointer<ffi.NativeFunction<_typedefC_41>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_62>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_63>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_64>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_65>> xDestroy,
);
typedef _dart_sqlite3_create_function_v2 = int Function(
@@ -12585,33 +13032,33 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_38>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_39>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_40>> xFinal,
- ffi.Pointer<ffi.NativeFunction<_typedefC_41>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_62>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_63>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_64>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_65>> xDestroy,
);
-typedef _typedefC_42 = ffi.Void Function(
+typedef _typedefC_66 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_43 = ffi.Void Function(
+typedef _typedefC_67 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
);
-typedef _typedefC_44 = ffi.Void Function(
+typedef _typedefC_68 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
);
-typedef _typedefC_45 = ffi.Void Function(
+typedef _typedefC_69 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_46 = ffi.Void Function(
+typedef _typedefC_70 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12621,11 +13068,11 @@
ffi.Int32 nArg,
ffi.Int32 eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_42>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_43>> xFinal,
- ffi.Pointer<ffi.NativeFunction<_typedefC_44>> xValue,
- ffi.Pointer<ffi.NativeFunction<_typedefC_45>> xInverse,
- ffi.Pointer<ffi.NativeFunction<_typedefC_46>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_66>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_67>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_68>> xValue,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_69>> xInverse,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_70>> xDestroy,
);
typedef _dart_sqlite3_create_window_function = int Function(
@@ -12634,11 +13081,11 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_42>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_43>> xFinal,
- ffi.Pointer<ffi.NativeFunction<_typedefC_44>> xValue,
- ffi.Pointer<ffi.NativeFunction<_typedefC_45>> xInverse,
- ffi.Pointer<ffi.NativeFunction<_typedefC_46>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_66>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_67>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_68>> xValue,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_69>> xInverse,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_70>> xDestroy,
);
typedef _c_sqlite3_aggregate_count = ffi.Int32 Function(
@@ -12675,20 +13122,20 @@
typedef _dart_sqlite3_thread_cleanup = void Function();
-typedef _typedefC_47 = ffi.Void Function(
+typedef _typedefC_71 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
ffi.Int64,
ffi.Int32,
);
typedef _c_sqlite3_memory_alarm = ffi.Int32 Function(
- ffi.Pointer<ffi.NativeFunction<_typedefC_47>> arg0,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_71>> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Int64 arg2,
);
typedef _dart_sqlite3_memory_alarm = int Function(
- ffi.Pointer<ffi.NativeFunction<_typedefC_47>> arg0,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_71>> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
);
@@ -12875,7 +13322,7 @@
int N,
);
-typedef _typedefC_48 = ffi.Void Function(
+typedef _typedefC_72 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12883,17 +13330,17 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Int32 N,
ffi.Pointer<ffi.Void> arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_48>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_72>> arg3,
);
typedef _dart_sqlite3_set_auxdata = void Function(
ffi.Pointer<sqlite3_context> arg0,
int N,
ffi.Pointer<ffi.Void> arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_48>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_72>> arg3,
);
-typedef _typedefC_49 = ffi.Void Function(
+typedef _typedefC_73 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12901,17 +13348,17 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Int32 arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_49>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_73>> arg3,
);
typedef _dart_sqlite3_result_blob = void Function(
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_49>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_73>> arg3,
);
-typedef _typedefC_50 = ffi.Void Function(
+typedef _typedefC_74 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12919,14 +13366,14 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Uint64 arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_50>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_74>> arg3,
);
typedef _dart_sqlite3_result_blob64 = void Function(
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_50>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_74>> arg3,
);
typedef _c_sqlite3_result_double = ffi.Void Function(
@@ -13017,7 +13464,7 @@
ffi.Pointer<sqlite3_context> arg0,
);
-typedef _typedefC_51 = ffi.Void Function(
+typedef _typedefC_75 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -13025,17 +13472,17 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Int8> arg1,
ffi.Int32 arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_51>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_75>> arg3,
);
typedef _dart_sqlite3_result_text = void Function(
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Int8> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_51>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_75>> arg3,
);
-typedef _typedefC_52 = ffi.Void Function(
+typedef _typedefC_76 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -13043,7 +13490,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Int8> arg1,
ffi.Uint64 arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_52>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_76>> arg3,
ffi.Uint8 encoding,
);
@@ -13051,11 +13498,11 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Int8> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_52>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_76>> arg3,
int encoding,
);
-typedef _typedefC_53 = ffi.Void Function(
+typedef _typedefC_77 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -13063,17 +13510,17 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Int32 arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_53>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_77>> arg3,
);
typedef _dart_sqlite3_result_text16 = void Function(
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_53>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_77>> arg3,
);
-typedef _typedefC_54 = ffi.Void Function(
+typedef _typedefC_78 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -13081,17 +13528,17 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Int32 arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_54>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_78>> arg3,
);
typedef _dart_sqlite3_result_text16le = void Function(
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_54>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_78>> arg3,
);
-typedef _typedefC_55 = ffi.Void Function(
+typedef _typedefC_79 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -13099,14 +13546,14 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Int32 arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_55>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_79>> arg3,
);
typedef _dart_sqlite3_result_text16be = void Function(
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_55>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_79>> arg3,
);
typedef _c_sqlite3_result_value = ffi.Void Function(
@@ -13119,7 +13566,7 @@
ffi.Pointer<sqlite3_value> arg1,
);
-typedef _typedefC_56 = ffi.Void Function(
+typedef _typedefC_80 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -13127,14 +13574,14 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Pointer<ffi.Int8> arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_56>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_80>> arg3,
);
typedef _dart_sqlite3_result_pointer = void Function(
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Pointer<ffi.Int8> arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_56>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_80>> arg3,
);
typedef _c_sqlite3_result_zeroblob = ffi.Void Function(
@@ -13167,7 +13614,7 @@
int arg1,
);
-typedef _typedefC_57 = ffi.Int32 Function(
+typedef _typedefC_81 = ffi.Int32 Function(
ffi.Pointer<ffi.Void>,
ffi.Int32,
ffi.Pointer<ffi.Void>,
@@ -13180,7 +13627,7 @@
ffi.Pointer<ffi.Int8> zName,
ffi.Int32 eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_57>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_81>> xCompare,
);
typedef _dart_sqlite3_create_collation = int Function(
@@ -13188,10 +13635,10 @@
ffi.Pointer<ffi.Int8> zName,
int eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_57>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_81>> xCompare,
);
-typedef _typedefC_58 = ffi.Int32 Function(
+typedef _typedefC_82 = ffi.Int32 Function(
ffi.Pointer<ffi.Void>,
ffi.Int32,
ffi.Pointer<ffi.Void>,
@@ -13199,7 +13646,7 @@
ffi.Pointer<ffi.Void>,
);
-typedef _typedefC_59 = ffi.Void Function(
+typedef _typedefC_83 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -13208,8 +13655,8 @@
ffi.Pointer<ffi.Int8> zName,
ffi.Int32 eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_58>> xCompare,
- ffi.Pointer<ffi.NativeFunction<_typedefC_59>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_82>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_83>> xDestroy,
);
typedef _dart_sqlite3_create_collation_v2 = int Function(
@@ -13217,11 +13664,11 @@
ffi.Pointer<ffi.Int8> zName,
int eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_58>> xCompare,
- ffi.Pointer<ffi.NativeFunction<_typedefC_59>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_82>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_83>> xDestroy,
);
-typedef _typedefC_60 = ffi.Int32 Function(
+typedef _typedefC_84 = ffi.Int32 Function(
ffi.Pointer<ffi.Void>,
ffi.Int32,
ffi.Pointer<ffi.Void>,
@@ -13234,7 +13681,7 @@
ffi.Pointer<ffi.Void> zName,
ffi.Int32 eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_60>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_84>> xCompare,
);
typedef _dart_sqlite3_create_collation16 = int Function(
@@ -13242,10 +13689,10 @@
ffi.Pointer<ffi.Void> zName,
int eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_60>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_84>> xCompare,
);
-typedef _typedefC_61 = ffi.Void Function(
+typedef _typedefC_85 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
ffi.Pointer<sqlite3>,
ffi.Int32,
@@ -13255,16 +13702,16 @@
typedef _c_sqlite3_collation_needed = ffi.Int32 Function(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Void> arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_61>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_85>> arg2,
);
typedef _dart_sqlite3_collation_needed = int Function(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Void> arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_61>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_85>> arg2,
);
-typedef _typedefC_62 = ffi.Void Function(
+typedef _typedefC_86 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
ffi.Pointer<sqlite3>,
ffi.Int32,
@@ -13274,13 +13721,13 @@
typedef _c_sqlite3_collation_needed16 = ffi.Int32 Function(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Void> arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_62>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_86>> arg2,
);
typedef _dart_sqlite3_collation_needed16 = int Function(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Void> arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_62>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_86>> arg2,
);
typedef _c_sqlite3_sleep = ffi.Int32 Function(
@@ -13367,39 +13814,39 @@
ffi.Pointer<sqlite3_stmt> pStmt,
);
-typedef _typedefC_63 = ffi.Int32 Function(
+typedef _typedefC_87 = ffi.Int32 Function(
ffi.Pointer<ffi.Void>,
);
typedef _c_sqlite3_commit_hook = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_63>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_87>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
typedef _dart_sqlite3_commit_hook = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_63>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_87>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
-typedef _typedefC_64 = ffi.Void Function(
+typedef _typedefC_88 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
typedef _c_sqlite3_rollback_hook = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_64>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_88>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
typedef _dart_sqlite3_rollback_hook = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_64>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_88>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
-typedef _typedefC_65 = ffi.Void Function(
+typedef _typedefC_89 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
ffi.Int32,
ffi.Pointer<ffi.Int8>,
@@ -13409,13 +13856,13 @@
typedef _c_sqlite3_update_hook = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_65>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_89>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
typedef _dart_sqlite3_update_hook = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_65>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_89>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
@@ -13515,24 +13962,24 @@
int onoff,
);
-typedef _typedefC_66 = ffi.Void Function();
+typedef _typedefC_90 = ffi.Void Function();
typedef _c_sqlite3_auto_extension = ffi.Int32 Function(
- ffi.Pointer<ffi.NativeFunction<_typedefC_66>> xEntryPoint,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_90>> xEntryPoint,
);
typedef _dart_sqlite3_auto_extension = int Function(
- ffi.Pointer<ffi.NativeFunction<_typedefC_66>> xEntryPoint,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_90>> xEntryPoint,
);
-typedef _typedefC_67 = ffi.Void Function();
+typedef _typedefC_91 = ffi.Void Function();
typedef _c_sqlite3_cancel_auto_extension = ffi.Int32 Function(
- ffi.Pointer<ffi.NativeFunction<_typedefC_67>> xEntryPoint,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_91>> xEntryPoint,
);
typedef _dart_sqlite3_cancel_auto_extension = int Function(
- ffi.Pointer<ffi.NativeFunction<_typedefC_67>> xEntryPoint,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_91>> xEntryPoint,
);
typedef _c_sqlite3_reset_auto_extension = ffi.Void Function();
@@ -13553,7 +14000,7 @@
ffi.Pointer<ffi.Void> pClientData,
);
-typedef _typedefC_68 = ffi.Void Function(
+typedef _typedefC_116 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -13562,7 +14009,7 @@
ffi.Pointer<ffi.Int8> zName,
ffi.Pointer<sqlite3_module> p,
ffi.Pointer<ffi.Void> pClientData,
- ffi.Pointer<ffi.NativeFunction<_typedefC_68>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_116>> xDestroy,
);
typedef _dart_sqlite3_create_module_v2 = int Function(
@@ -13570,7 +14017,7 @@
ffi.Pointer<ffi.Int8> zName,
ffi.Pointer<sqlite3_module> p,
ffi.Pointer<ffi.Void> pClientData,
- ffi.Pointer<ffi.NativeFunction<_typedefC_68>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_116>> xDestroy,
);
typedef _c_sqlite3_drop_modules = ffi.Int32 Function(
@@ -14013,20 +14460,20 @@
ffi.Pointer<sqlite3_backup> p,
);
-typedef _typedefC_69 = ffi.Void Function(
+typedef _typedefC_147 = ffi.Void Function(
ffi.Pointer<ffi.Pointer<ffi.Void>>,
ffi.Int32,
);
typedef _c_sqlite3_unlock_notify = ffi.Int32 Function(
ffi.Pointer<sqlite3> pBlocked,
- ffi.Pointer<ffi.NativeFunction<_typedefC_69>> xNotify,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_147>> xNotify,
ffi.Pointer<ffi.Void> pNotifyArg,
);
typedef _dart_sqlite3_unlock_notify = int Function(
ffi.Pointer<sqlite3> pBlocked,
- ffi.Pointer<ffi.NativeFunction<_typedefC_69>> xNotify,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_147>> xNotify,
ffi.Pointer<ffi.Void> pNotifyArg,
);
@@ -14084,7 +14531,7 @@
ffi.Pointer<ffi.Int8> zFormat,
);
-typedef _typedefC_70 = ffi.Int32 Function(
+typedef _typedefC_148 = ffi.Int32 Function(
ffi.Pointer<ffi.Void>,
ffi.Pointer<sqlite3>,
ffi.Pointer<ffi.Int8>,
@@ -14093,13 +14540,13 @@
typedef _c_sqlite3_wal_hook = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_70>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_148>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
typedef _dart_sqlite3_wal_hook = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_70>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_148>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
@@ -14297,7 +14744,7 @@
int mFlags,
);
-typedef _typedefC_71 = ffi.Int32 Function(
+typedef _typedefC_151 = ffi.Int32 Function(
ffi.Pointer<sqlite3_rtree_geometry>,
ffi.Int32,
ffi.Pointer<ffi.Double>,
@@ -14307,39 +14754,39 @@
typedef _c_sqlite3_rtree_geometry_callback = ffi.Int32 Function(
ffi.Pointer<sqlite3> db,
ffi.Pointer<ffi.Int8> zGeom,
- ffi.Pointer<ffi.NativeFunction<_typedefC_71>> xGeom,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_151>> xGeom,
ffi.Pointer<ffi.Void> pContext,
);
typedef _dart_sqlite3_rtree_geometry_callback = int Function(
ffi.Pointer<sqlite3> db,
ffi.Pointer<ffi.Int8> zGeom,
- ffi.Pointer<ffi.NativeFunction<_typedefC_71>> xGeom,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_151>> xGeom,
ffi.Pointer<ffi.Void> pContext,
);
-typedef _typedefC_72 = ffi.Int32 Function(
+typedef _typedefC_152 = ffi.Int32 Function(
ffi.Pointer<sqlite3_rtree_query_info>,
);
-typedef _typedefC_73 = ffi.Void Function(
+typedef _typedefC_153 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
typedef _c_sqlite3_rtree_query_callback = ffi.Int32 Function(
ffi.Pointer<sqlite3> db,
ffi.Pointer<ffi.Int8> zQueryFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_72>> xQueryFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_152>> xQueryFunc,
ffi.Pointer<ffi.Void> pContext,
- ffi.Pointer<ffi.NativeFunction<_typedefC_73>> xDestructor,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_153>> xDestructor,
);
typedef _dart_sqlite3_rtree_query_callback = int Function(
ffi.Pointer<sqlite3> db,
ffi.Pointer<ffi.Int8> zQueryFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_72>> xQueryFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_152>> xQueryFunc,
ffi.Pointer<ffi.Void> pContext,
- ffi.Pointer<ffi.NativeFunction<_typedefC_73>> xDestructor,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_153>> xDestructor,
);
typedef _typedefC_2 = ffi.Int32 Function(
@@ -14440,3 +14887,602 @@
ffi.Int64,
ffi.Pointer<ffi.Void>,
);
+
+typedef _typedefC_20 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Pointer<ffi.Int8>,
+ ffi.Pointer<sqlite3_file>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Int32>,
+);
+
+typedef _typedefC_21 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Pointer<ffi.Int8>,
+ ffi.Int32,
+);
+
+typedef _typedefC_22 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Pointer<ffi.Int8>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Int32>,
+);
+
+typedef _typedefC_23 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Pointer<ffi.Int8>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Int8>,
+);
+
+typedef _typedefC_24 = ffi.Pointer<ffi.Void> Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Pointer<ffi.Int8>,
+);
+
+typedef _typedefC_25 = ffi.Void Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Int8>,
+);
+
+typedef _typedefC_27 = ffi.Void Function();
+
+typedef _typedefC_26 = ffi.Pointer<ffi.NativeFunction<_typedefC_27>> Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Pointer<ffi.Void>,
+ ffi.Pointer<ffi.Int8>,
+);
+
+typedef _typedefC_28 = ffi.Void Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_29 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Int8>,
+);
+
+typedef _typedefC_30 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Int32,
+);
+
+typedef _typedefC_31 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Pointer<ffi.Double>,
+);
+
+typedef _typedefC_32 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Int8>,
+);
+
+typedef _typedefC_33 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Pointer<ffi.Int64>,
+);
+
+typedef sqlite3_syscall_ptr = ffi.Void Function();
+
+typedef _typedefC_34 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Pointer<ffi.Int8>,
+ ffi.Pointer<ffi.NativeFunction<sqlite3_syscall_ptr>>,
+);
+
+typedef _typedefC_35 = ffi.Pointer<ffi.NativeFunction<sqlite3_syscall_ptr>>
+ Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Pointer<ffi.Int8>,
+);
+
+typedef _typedefC_36 = ffi.Pointer<ffi.Int8> Function(
+ ffi.Pointer<sqlite3_vfs>,
+ ffi.Pointer<ffi.Int8>,
+);
+
+typedef _typedefC_37 = ffi.Pointer<ffi.Void> Function(
+ ffi.Int32,
+);
+
+typedef _typedefC_38 = ffi.Void Function(
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_39 = ffi.Pointer<ffi.Void> Function(
+ ffi.Pointer<ffi.Void>,
+ ffi.Int32,
+);
+
+typedef _typedefC_40 = ffi.Int32 Function(
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_41 = ffi.Int32 Function(
+ ffi.Int32,
+);
+
+typedef _typedefC_42 = ffi.Int32 Function(
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_43 = ffi.Void Function(
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_92 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3>,
+ ffi.Pointer<ffi.Void>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+ ffi.Pointer<ffi.Pointer<sqlite3_vtab>>,
+ ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+);
+
+typedef _typedefC_93 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3>,
+ ffi.Pointer<ffi.Void>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+ ffi.Pointer<ffi.Pointer<sqlite3_vtab>>,
+ ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+);
+
+typedef _typedefC_94 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab>,
+ ffi.Pointer<sqlite3_index_info>,
+);
+
+typedef _typedefC_95 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab>,
+);
+
+typedef _typedefC_96 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab>,
+);
+
+typedef _typedefC_97 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab>,
+ ffi.Pointer<ffi.Pointer<sqlite3_vtab_cursor>>,
+);
+
+typedef _typedefC_98 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab_cursor>,
+);
+
+typedef _typedefC_99 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab_cursor>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Int8>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Pointer<sqlite3_value>>,
+);
+
+typedef _typedefC_100 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab_cursor>,
+);
+
+typedef _typedefC_101 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab_cursor>,
+);
+
+typedef _typedefC_102 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab_cursor>,
+ ffi.Pointer<sqlite3_context>,
+ ffi.Int32,
+);
+
+typedef _typedefC_103 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab_cursor>,
+ ffi.Pointer<ffi.Int64>,
+);
+
+typedef _typedefC_104 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Pointer<sqlite3_value>>,
+ ffi.Pointer<ffi.Int64>,
+);
+
+typedef _typedefC_105 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab>,
+);
+
+typedef _typedefC_106 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab>,
+);
+
+typedef _typedefC_107 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab>,
+);
+
+typedef _typedefC_108 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab>,
+);
+
+typedef _typedefC_109 = ffi.Void Function(
+ ffi.Pointer<sqlite3_context>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Pointer<sqlite3_value>>,
+);
+
+typedef _typedefC_110 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Int8>,
+ ffi.Pointer<ffi.Pointer<ffi.NativeFunction<_typedefC_109>>>,
+ ffi.Pointer<ffi.Pointer<ffi.Void>>,
+);
+
+typedef _typedefC_111 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab>,
+ ffi.Pointer<ffi.Int8>,
+);
+
+typedef _typedefC_112 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab>,
+ ffi.Int32,
+);
+
+typedef _typedefC_113 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab>,
+ ffi.Int32,
+);
+
+typedef _typedefC_114 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_vtab>,
+ ffi.Int32,
+);
+
+typedef _typedefC_115 = ffi.Int32 Function(
+ ffi.Pointer<ffi.Int8>,
+);
+
+typedef _typedefC_117 = ffi.Int32 Function();
+
+typedef _typedefC_118 = ffi.Int32 Function();
+
+typedef _typedefC_119 = ffi.Pointer<sqlite3_mutex> Function(
+ ffi.Int32,
+);
+
+typedef _typedefC_120 = ffi.Void Function(
+ ffi.Pointer<sqlite3_mutex>,
+);
+
+typedef _typedefC_121 = ffi.Void Function(
+ ffi.Pointer<sqlite3_mutex>,
+);
+
+typedef _typedefC_122 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_mutex>,
+);
+
+typedef _typedefC_123 = ffi.Void Function(
+ ffi.Pointer<sqlite3_mutex>,
+);
+
+typedef _typedefC_124 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_mutex>,
+);
+
+typedef _typedefC_125 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_mutex>,
+);
+
+typedef _typedefC_126 = ffi.Int32 Function(
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_127 = ffi.Void Function(
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_128 = ffi.Pointer<sqlite3_pcache> Function(
+ ffi.Int32,
+ ffi.Int32,
+ ffi.Int32,
+);
+
+typedef _typedefC_129 = ffi.Void Function(
+ ffi.Pointer<sqlite3_pcache>,
+ ffi.Int32,
+);
+
+typedef _typedefC_130 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_pcache>,
+);
+
+typedef _typedefC_131 = ffi.Pointer<sqlite3_pcache_page> Function(
+ ffi.Pointer<sqlite3_pcache>,
+ ffi.Uint32,
+ ffi.Int32,
+);
+
+typedef _typedefC_132 = ffi.Void Function(
+ ffi.Pointer<sqlite3_pcache>,
+ ffi.Pointer<sqlite3_pcache_page>,
+ ffi.Int32,
+);
+
+typedef _typedefC_133 = ffi.Void Function(
+ ffi.Pointer<sqlite3_pcache>,
+ ffi.Pointer<sqlite3_pcache_page>,
+ ffi.Uint32,
+ ffi.Uint32,
+);
+
+typedef _typedefC_134 = ffi.Void Function(
+ ffi.Pointer<sqlite3_pcache>,
+ ffi.Uint32,
+);
+
+typedef _typedefC_135 = ffi.Void Function(
+ ffi.Pointer<sqlite3_pcache>,
+);
+
+typedef _typedefC_136 = ffi.Void Function(
+ ffi.Pointer<sqlite3_pcache>,
+);
+
+typedef _typedefC_137 = ffi.Int32 Function(
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_138 = ffi.Void Function(
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_139 = ffi.Pointer<sqlite3_pcache> Function(
+ ffi.Int32,
+ ffi.Int32,
+);
+
+typedef _typedefC_140 = ffi.Void Function(
+ ffi.Pointer<sqlite3_pcache>,
+ ffi.Int32,
+);
+
+typedef _typedefC_141 = ffi.Int32 Function(
+ ffi.Pointer<sqlite3_pcache>,
+);
+
+typedef _typedefC_142 = ffi.Pointer<ffi.Void> Function(
+ ffi.Pointer<sqlite3_pcache>,
+ ffi.Uint32,
+ ffi.Int32,
+);
+
+typedef _typedefC_143 = ffi.Void Function(
+ ffi.Pointer<sqlite3_pcache>,
+ ffi.Pointer<ffi.Void>,
+ ffi.Int32,
+);
+
+typedef _typedefC_144 = ffi.Void Function(
+ ffi.Pointer<sqlite3_pcache>,
+ ffi.Pointer<ffi.Void>,
+ ffi.Uint32,
+ ffi.Uint32,
+);
+
+typedef _typedefC_145 = ffi.Void Function(
+ ffi.Pointer<sqlite3_pcache>,
+ ffi.Uint32,
+);
+
+typedef _typedefC_146 = ffi.Void Function(
+ ffi.Pointer<sqlite3_pcache>,
+);
+
+typedef _typedefC_149 = ffi.Void Function(
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_150 = ffi.Void Function(
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_154 = ffi.Pointer<ffi.Void> Function(
+ ffi.Pointer<Fts5Context>,
+);
+
+typedef _typedefC_155 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Context>,
+);
+
+typedef _typedefC_156 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Pointer<ffi.Int64>,
+);
+
+typedef _typedefC_157 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Int64>,
+);
+
+typedef _typedefC_158 = ffi.Int32 Function(
+ ffi.Pointer<ffi.Void>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Int8>,
+ ffi.Int32,
+ ffi.Int32,
+ ffi.Int32,
+);
+
+typedef _typedefC_159 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Pointer<ffi.Int8>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Void>,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_158>>,
+);
+
+typedef _typedefC_160 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Context>,
+);
+
+typedef _typedefC_161 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Int32,
+);
+
+typedef _typedefC_162 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Pointer<ffi.Int32>,
+);
+
+typedef _typedefC_163 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Int32>,
+ ffi.Pointer<ffi.Int32>,
+ ffi.Pointer<ffi.Int32>,
+);
+
+typedef _typedefC_164 = ffi.Int64 Function(
+ ffi.Pointer<Fts5Context>,
+);
+
+typedef _typedefC_165 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+ ffi.Pointer<ffi.Int32>,
+);
+
+typedef _typedefC_166 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Int32>,
+);
+
+typedef _typedefC_167 = ffi.Int32 Function(
+ ffi.Pointer<Fts5ExtensionApi>,
+ ffi.Pointer<Fts5Context>,
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_168 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Void>,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_167>>,
+);
+
+typedef _typedefC_169 = ffi.Void Function(
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_170 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Pointer<ffi.Void>,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_169>>,
+);
+
+typedef _typedefC_171 = ffi.Pointer<ffi.Void> Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Int32,
+);
+
+typedef _typedefC_172 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Int32,
+ ffi.Pointer<Fts5PhraseIter>,
+ ffi.Pointer<ffi.Int32>,
+ ffi.Pointer<ffi.Int32>,
+);
+
+typedef _typedefC_173 = ffi.Void Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Pointer<Fts5PhraseIter>,
+ ffi.Pointer<ffi.Int32>,
+ ffi.Pointer<ffi.Int32>,
+);
+
+typedef _typedefC_174 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Int32,
+ ffi.Pointer<Fts5PhraseIter>,
+ ffi.Pointer<ffi.Int32>,
+);
+
+typedef _typedefC_175 = ffi.Void Function(
+ ffi.Pointer<Fts5Context>,
+ ffi.Pointer<Fts5PhraseIter>,
+ ffi.Pointer<ffi.Int32>,
+);
+
+typedef _typedefC_176 = ffi.Int32 Function(
+ ffi.Pointer<ffi.Void>,
+ ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Pointer<Fts5Tokenizer>>,
+);
+
+typedef _typedefC_177 = ffi.Void Function(
+ ffi.Pointer<Fts5Tokenizer>,
+);
+
+typedef _typedefC_178 = ffi.Int32 Function(
+ ffi.Pointer<ffi.Void>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Int8>,
+ ffi.Int32,
+ ffi.Int32,
+ ffi.Int32,
+);
+
+typedef _typedefC_179 = ffi.Int32 Function(
+ ffi.Pointer<Fts5Tokenizer>,
+ ffi.Pointer<ffi.Void>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Int8>,
+ ffi.Int32,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_178>>,
+);
+
+typedef _typedefC_180 = ffi.Void Function(
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_181 = ffi.Int32 Function(
+ ffi.Pointer<fts5_api>,
+ ffi.Pointer<ffi.Int8>,
+ ffi.Pointer<ffi.Void>,
+ ffi.Pointer<fts5_tokenizer>,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_180>>,
+);
+
+typedef _typedefC_182 = ffi.Int32 Function(
+ ffi.Pointer<fts5_api>,
+ ffi.Pointer<ffi.Int8>,
+ ffi.Pointer<ffi.Pointer<ffi.Void>>,
+ ffi.Pointer<fts5_tokenizer>,
+);
+
+typedef fts5_extension_function = ffi.Void Function(
+ ffi.Pointer<Fts5ExtensionApi>,
+ ffi.Pointer<Fts5Context>,
+ ffi.Pointer<sqlite3_context>,
+ ffi.Int32,
+ ffi.Pointer<ffi.Pointer<sqlite3_value>>,
+);
+
+typedef _typedefC_183 = ffi.Void Function(
+ ffi.Pointer<ffi.Void>,
+);
+
+typedef _typedefC_184 = ffi.Int32 Function(
+ ffi.Pointer<fts5_api>,
+ ffi.Pointer<ffi.Int8>,
+ ffi.Pointer<ffi.Void>,
+ ffi.Pointer<ffi.NativeFunction<fts5_extension_function>>,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_183>>,
+);
diff --git a/tool/libclang_config.yaml b/tool/libclang_config.yaml
index a73d5cc..ec49446 100644
--- a/tool/libclang_config.yaml
+++ b/tool/libclang_config.yaml
@@ -103,3 +103,5 @@
- clang_getCursorUSR
- clang_getFieldDeclBitWidth
- clang_Cursor_isFunctionInlined
+ - clang_getCursorDefinition
+ - clang_Cursor_isNull