Simpler include/exclude, regexp based renaming for declarations (#62)
* Removes names/matches from include/exclude. Updated examples. Removed typedef incremental renaming.
* restored incremental typedef naming using IncrementalNamer, (this improves UniqueNamer's performance because there are less clashes
* added declaration renaming
* minor changes
* updated readme, changelog
* readme fix
* added to changelog
* simplified declaration using includer and renamer
* Includer: replaced firstMatch and end comparision with quiver.matchesFull
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bcd11c7..ba4e384 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,7 @@
# 0.2.0-dev
- Updated header config. Header `entry-points` and `include-directives` are now specified under `headers` key. Glob syntax is allowed.
+- Updated declaration `include`/`exclude` config. These are now specified as a list.
+- Added Regexp based declaration renaming using `rename` subkey.
# 0.1.5
- Added support for parsing macros and anonymous unnamed enums. These are generated as top level constants.
diff --git a/README.md b/README.md
index 7cee823..ed8ff82 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,8 @@
ffigen:
output: 'generated_bindings.dart'
headers:
- - 'example.h'
+ entry-points:
+ - 'example.h'
```
Output (_generated_bindings.dart_).
```dart
@@ -39,7 +40,7 @@
- Run the tool- `pub run ffigen`.
## Setup
-`package:ffigen` uses LLVM. Install LLVM in the following way.
+`package:ffigen` uses LLVM. Install LLVM (9+) in the following way.
#### ubuntu/linux
1. Install libclangdev - `sudo apt-get install libclang-dev`.
@@ -107,17 +108,16 @@
<td>Filters for declarations.<br><b>Default: all are included</b></td>
<td><pre lang="yaml"><code>
functions:
- include: # Exclude is also available.
- names: # Matches with exact name.
- - someFuncName
- - anotherName
- matches: # Matches using regexp.
- - prefix.*
- - [a-z][a-zA-Z0-9]*
- prefix: 'cx_' # Prefix added to all functions.
- prefix-replacement: # Replaces a functions's prefix.
- 'clang_': ''
- '_': 'C'</code></pre></td>
+ include: # 'exclude' is also available.
+ - [a-z][a-zA-Z0-9]* # Matches using regexp.
+ - prefix.* # '.' matches any character.
+ - someFuncName # Matches with exact name
+ - anotherName # full names have higher priority.
+ rename:
+ 'clang_(.*)': '$1' # Regexp groups based replacement.
+ 'clang_dispose': 'dispose' # full name matches have higher priority.
+ '_(.*)': '$1' # Removes '_' from beginning of a name.
+ </code></pre></td>
</tr>
<tr>
<td>array-workaround</td>
diff --git a/example/libclang-example/pubspec.yaml b/example/libclang-example/pubspec.yaml
index b05796f..246400a 100644
--- a/example/libclang-example/pubspec.yaml
+++ b/example/libclang-example/pubspec.yaml
@@ -27,19 +27,14 @@
compiler-opts: '-I/usr/lib/llvm-9/include/ -I/usr/lib/llvm-10/include/ -IC:\Progra~1\LLVM\include -I/usr/local/opt/llvm/include/ -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ -Wno-nullability-completeness'
functions:
include:
- matches:
- # Should be valid regexp.
- - 'clang_.*'
+ - 'clang_.*' # Can be a regexp, '.' matches any character.
structs:
include:
- matches:
- - 'CX.*'
+ - 'CX.*'
enums:
include:
- # Compares the exact name.
- names:
- - 'CXTypeKind'
- - 'CXGlobalOptFlags'
+ - 'CXTypeKind' # Full names are given higher priority than regexp.
+ - 'CXGlobalOptFlags'
# These are optional and also default,
# Omitting any and the default will be used.
diff --git a/lib/src/config_provider/config_types.dart b/lib/src/config_provider/config_types.dart
index a417a18..302e69a 100644
--- a/lib/src/config_provider/config_types.dart
+++ b/lib/src/config_provider/config_types.dart
@@ -91,72 +91,86 @@
}
}
-/// A generic declaration config.
+/// A generic declaration config, used for Functions, Structs and Enums.
class Declaration {
- // matchers
- List<RegExp> _includeMatchers = [];
- Set<String> _includeFull = {};
- List<RegExp> _excludeMatchers = [];
- Set<String> _excludeFull = {};
- String _globalPrefix = '';
- Map<String, String> _prefixReplacement = {};
+ final Includer _includer;
+ final Renamer _renamer;
Declaration({
- List<String> includeMatchers,
- List<String> includeFull,
- List<String> excludeMatchers,
- List<String> excludeFull,
- String globalPrefix,
- Map<String, String> prefixReplacement,
- }) {
- if (includeMatchers != null) {
- _includeMatchers =
- includeMatchers.map((e) => RegExp(e, dotAll: true)).toList();
- }
- if (includeFull != null) {
- _includeFull = includeFull.map((e) => e).toSet();
- }
- if (excludeMatchers != null) {
- _excludeMatchers =
- excludeMatchers.map((e) => RegExp(e, dotAll: true)).toList();
- }
- if (excludeFull != null) {
- _excludeFull = excludeFull.map((e) => e).toSet();
- }
- if (globalPrefix != null) {
- _globalPrefix = globalPrefix;
- }
- if (prefixReplacement != null) {
- _prefixReplacement = prefixReplacement;
- }
- }
+ Includer includer,
+ Renamer renamer,
+ }) : _includer = includer ?? Includer(),
+ _renamer = renamer ?? Renamer();
- /// Applies prefix and replacement and returns the result.
- ///
- /// Also logs warnings if declaration starts with '_'.
- String getPrefixedName(String name) {
- // Apply prefix replacement.
- for (final pattern in _prefixReplacement.keys) {
- if (name.startsWith(pattern)) {
- name = name.replaceFirst(pattern, _prefixReplacement[pattern]);
- break;
- }
- }
-
- // Apply global prefixes.
- name = '${_globalPrefix}$name';
-
- return name;
- }
+ /// Applies renaming and returns the result.
+ String renameUsingConfig(String name) => _renamer.renameUsingConfig(name);
/// Checks if a name is allowed by a filter.
+ bool shouldInclude(String name) => _includer.shouldInclude(name);
+}
+
+/// Matches `$<single_digit_int>`, value can be accessed in group 1 of match.
+final replaceGroupRegexp = RegExp(r'\$([0-9])');
+
+class RenamePattern {
+ final RegExp regExp;
+ final String replacementPattern;
+
+ RenamePattern(this.regExp, this.replacementPattern);
+
+ /// Returns true if [str] has a full match with [regExp].
+ bool matches(String str) => quiver.matchesFull(regExp, str);
+
+ /// Renames [str] according to [replacementPattern].
+ String rename(String str) {
+ if (quiver.matchesFull(regExp, str)) {
+ final regExpMatch = regExp.firstMatch(str);
+ final groups = regExpMatch.groups(
+ List.generate(regExpMatch.groupCount, (index) => index) +
+ [regExpMatch.groupCount]);
+
+ final result =
+ replacementPattern.replaceAllMapped(replaceGroupRegexp, (match) {
+ final groupInt = int.parse(match.group(1));
+ return groups[groupInt];
+ });
+ return result;
+ } else {
+ /// We return [str] if pattern doesn't have a full match.
+ return str;
+ }
+ }
+
+ @override
+ String toString() {
+ return 'Regexp: $regExp, ReplacementPattern: $replacementPattern';
+ }
+}
+
+class Includer {
+ // matchers
+ final List<RegExp> _includeMatchers;
+ final Set<String> _includeFull;
+ final List<RegExp> _excludeMatchers;
+ final Set<String> _excludeFull;
+
+ Includer({
+ List<RegExp> includeMatchers,
+ Set<String> includeFull,
+ List<RegExp> excludeMatchers,
+ Set<String> excludeFull,
+ }) : _includeMatchers = includeMatchers ?? [],
+ _includeFull = includeFull ?? {},
+ _excludeMatchers = excludeMatchers ?? [],
+ _excludeFull = excludeFull ?? {};
+
bool shouldInclude(String name) {
if (_excludeFull.contains(name)) {
return false;
}
for (final em in _excludeMatchers) {
- if (em.firstMatch(name)?.end == name.length) {
+ if (quiver.matchesFull(em, name)) {
return false;
}
}
@@ -166,7 +180,7 @@
}
for (final im in _includeMatchers) {
- if (im.firstMatch(name)?.end == name.length) {
+ if (quiver.matchesFull(im, name)) {
return true;
}
}
@@ -180,3 +194,31 @@
}
}
}
+
+class Renamer {
+ final Map<String, String> _renameFull;
+ final List<RenamePattern> _renameMatchers;
+
+ Renamer({
+ List<RenamePattern> renamePatterns,
+ Map<String, String> renameFull,
+ }) : _renameMatchers = renamePatterns ?? [],
+ _renameFull = renameFull ?? {};
+
+ String renameUsingConfig(String name) {
+ // Apply full rename (if any).
+ if (_renameFull.containsKey(name)) {
+ return _renameFull[name];
+ }
+
+ // Apply rename regexp (if matches).
+ for (final renamer in _renameMatchers) {
+ if (renamer.matches(name)) {
+ return renamer.rename(name);
+ }
+ }
+
+ // No renaming is provided for this declaration, return unchanged.
+ return name;
+ }
+}
diff --git a/lib/src/config_provider/spec_utils.dart b/lib/src/config_provider/spec_utils.dart
index d6d08cf..8b29d9d 100644
--- a/lib/src/config_provider/spec_utils.dart
+++ b/lib/src/config_provider/spec_utils.dart
@@ -26,9 +26,12 @@
}
/// Checks if type of value is [T], logs an error if it's not.
-bool checkType<T>(String key, dynamic value) {
+///
+/// [key] is printed as `'item1 -> item2 => item3'` in log message.
+bool checkType<T>(List<String> keys, dynamic value) {
if (value is! T) {
- _logger.severe("Expected value of key '$key' to be of type '${T}'.");
+ _logger.severe(
+ "Expected value of key '${keys.join(' -> ')}' to be of type '${T}'.");
return false;
}
return true;
@@ -37,7 +40,7 @@
bool booleanExtractor(dynamic value) => value as bool;
bool booleanValidator(String name, dynamic value) =>
- checkType<bool>(name, value);
+ checkType<bool>([name], value);
Map<int, SupportedNativeType> sizemapExtractor(dynamic yamlConfig) {
final resultMap = <int, SupportedNativeType>{};
@@ -56,7 +59,7 @@
}
bool sizemapValidator(String name, dynamic yamlConfig) {
- if (!checkType<YamlMap>(name, yamlConfig)) {
+ if (!checkType<YamlMap>([name], yamlConfig)) {
return false;
}
for (final key in (yamlConfig as YamlMap).keys) {
@@ -72,7 +75,7 @@
(value as String)?.split(' ');
bool compilerOptsValidator(String name, dynamic value) =>
- checkType<String>(name, value);
+ checkType<String>([name], value);
Headers headersExtractor(dynamic yamlConfig) {
final entryPoints = <String>[];
@@ -112,7 +115,7 @@
}
bool headersValidator(String name, dynamic value) {
- if (!checkType<YamlMap>(name, value)) {
+ if (!checkType<YamlMap>([name], value)) {
return false;
}
if (!(value as YamlMap).containsKey(strings.entryPoints)) {
@@ -121,8 +124,7 @@
} else {
for (final key in (value as YamlMap).keys) {
if (key == strings.entryPoints || key == strings.includeDirectives) {
- if (!checkType<YamlList>(key as String, value[key])) {
- _logger.severe("Expected '$name -> $key' to be a Map.");
+ if (!checkType<YamlList>([name, key as String], value[key])) {
return false;
}
} else {
@@ -137,7 +139,7 @@
String libclangDylibExtractor(dynamic value) => getDylibPath(value as String);
bool libclangDylibValidator(String name, dynamic value) {
- if (!checkType<String>(name, value)) {
+ if (!checkType<String>([name], value)) {
return false;
} else {
final dylibPath = getDylibPath(value as String);
@@ -167,37 +169,68 @@
String outputExtractor(dynamic value) => _replaceSeparators(value as String);
bool outputValidator(String name, dynamic value) =>
- checkType<String>(name, value);
+ checkType<String>([name], value);
+
+/// Returns true if [str] is not a full name.
+///
+/// E.g `abc` is a full name, `abc.*` is not.
+bool isFullDeclarationName(String str) =>
+ quiver.matchesFull(RegExp('[a-zA-Z_0-9]*'), str);
Declaration declarationConfigExtractor(dynamic yamlMap) {
- List<String> includeMatchers, includeFull, excludeMatchers, excludeFull;
- String prefix;
- Map<String, String> prefixReplacement;
+ final includeMatchers = <RegExp>[],
+ includeFull = <String>{},
+ excludeMatchers = <RegExp>[],
+ excludeFull = <String>{};
+ final renamePatterns = <RenamePattern>[];
+ final renameFull = <String, String>{};
- final include = yamlMap[strings.include] as YamlMap;
+ final include = (yamlMap[strings.include] as YamlList)?.cast<String>();
if (include != null) {
- includeMatchers = (include[strings.matches] as YamlList)?.cast<String>();
- includeFull = (include[strings.names] as YamlList)?.cast<String>();
+ for (final str in include) {
+ if (isFullDeclarationName(str)) {
+ includeFull.add(str);
+ } else {
+ includeMatchers.add(RegExp(str, dotAll: true));
+ }
+ }
}
- final exclude = yamlMap[strings.exclude] as YamlMap;
+ final exclude = (yamlMap[strings.exclude] as YamlList)?.cast<String>();
if (exclude != null) {
- excludeMatchers = (exclude[strings.matches] as YamlList)?.cast<String>();
- excludeFull = (exclude[strings.names] as YamlList)?.cast<String>();
+ for (final str in exclude) {
+ if (isFullDeclarationName(str)) {
+ excludeFull.add(str);
+ } else {
+ excludeMatchers.add(RegExp(str, dotAll: true));
+ }
+ }
}
- prefix = yamlMap[strings.prefix] as String;
+ final rename = (yamlMap[strings.rename] as YamlMap)?.cast<String, String>();
- prefixReplacement =
- (yamlMap[strings.prefix_replacement] as YamlMap)?.cast<String, String>();
+ if (rename != null) {
+ for (final str in rename.keys) {
+ if (isFullDeclarationName(str)) {
+ renameFull[str] = rename[str];
+ } else {
+ renamePatterns
+ .add(RenamePattern(RegExp(str, dotAll: true), rename[str]));
+ }
+ }
+ }
return Declaration(
- includeMatchers: includeMatchers,
- includeFull: includeFull,
- excludeMatchers: excludeMatchers,
- excludeFull: excludeFull,
- globalPrefix: prefix,
- prefixReplacement: prefixReplacement,
+ includer: Includer(
+ includeMatchers: includeMatchers,
+ includeFull: includeFull,
+ excludeMatchers: excludeMatchers,
+ excludeFull: excludeFull,
+ ),
+ renamer: Renamer(
+ renameFull: renameFull,
+ renamePatterns: renamePatterns,
+ ),
);
}
@@ -206,35 +239,16 @@
if (value is YamlMap) {
for (final key in value.keys) {
if (key == strings.include || key == strings.exclude) {
- if (value[key] is! YamlMap) {
- _logger.severe("Expected '$name -> $key' to be a Map.");
+ if (!checkType<YamlList>([name, key as String], value[key])) {
_result = false;
}
- for (final subkey in value[key].keys) {
- if (subkey == strings.matches || subkey == strings.names) {
- if (value[key][subkey] is! YamlList) {
- _logger
- .severe("Expected '$name -> $key -> $subkey' to be a List.");
- _result = false;
- }
- } else {
- _logger.severe("Unknown key '$subkey' in '$name -> $key'.");
- }
- }
- } else if (key == strings.prefix) {
- if (value[key] is! String) {
- _logger.severe("Expected '$name -> $key' to be a String.");
- _result = false;
- }
- } else if (key == strings.prefix_replacement) {
- if (value[key] is! YamlMap) {
- _logger.severe("Expected '$name -> $key' to be a Map.");
+ } else if (key == strings.rename) {
+ if (!checkType<YamlMap>([name, key as String], value[key])) {
_result = false;
} else {
for (final subkey in value[key].keys) {
- if (value[key][subkey] is! String) {
- _logger.severe(
- "Expected '$name -> $key -> $subkey' to be a String.");
+ if (!checkType<String>(
+ [name, key as String, subkey as String], value[key][subkey])) {
_result = false;
}
}
@@ -280,7 +294,7 @@
bool dartClassNameValidator(String name, dynamic value) {
if (value is String &&
- RegExp('[a-zA-Z]+[_a-zA-Z0-9]*').stringMatch(value) == value) {
+ quiver.matchesFull(RegExp('[a-zA-Z]+[_a-zA-Z0-9]*'), value)) {
return true;
} else {
_logger.severe(
diff --git a/lib/src/header_parser/data.dart b/lib/src/header_parser/data.dart
index ebda2dc..87551cb 100644
--- a/lib/src/header_parser/data.dart
+++ b/lib/src/header_parser/data.dart
@@ -8,6 +8,8 @@
import 'package:ffigen/src/config_provider.dart';
import 'clang_bindings/clang_bindings.dart' show Clang;
+import 'utils.dart';
+
/// Holds all Global shared variables.
/// Holds configurations.
@@ -16,6 +18,9 @@
/// Holds clang functions.
Clang clang;
+/// Used for naming typedefs.
+IncrementalNamer incrementalNamer;
+
/// Holds the unique id refering to this isolate.
///
/// Used by visitChildren_wrap to call the correct dart function from C.
diff --git a/lib/src/header_parser/parser.dart b/lib/src/header_parser/parser.dart
index 29a86e5..87e14ef 100644
--- a/lib/src/header_parser/parser.dart
+++ b/lib/src/header_parser/parser.dart
@@ -49,6 +49,7 @@
void initParser(Config c) {
// Set global configurations.
config = c;
+ incrementalNamer = IncrementalNamer();
// Find full path of dynamic library and initialise bindings.
if (findDotDartTool() == null) {
diff --git a/lib/src/header_parser/sub_parsers/enumdecl_parser.dart b/lib/src/header_parser/sub_parsers/enumdecl_parser.dart
index 293fa22..99b6b57 100644
--- a/lib/src/header_parser/sub_parsers/enumdecl_parser.dart
+++ b/lib/src/header_parser/sub_parsers/enumdecl_parser.dart
@@ -47,7 +47,7 @@
_stack.top.enumClass = EnumClass(
dartDoc: getCursorDocComment(cursor),
originalName: enumName,
- name: config.enumClassDecl.getPrefixedName(enumName),
+ name: config.enumClassDecl.renameUsingConfig(enumName),
);
addEnumClassToSeen(enumName, _stack.top.enumClass);
_addEnumConstant(cursor);
diff --git a/lib/src/header_parser/sub_parsers/functiondecl_parser.dart b/lib/src/header_parser/sub_parsers/functiondecl_parser.dart
index 8f35c24..f3e1507 100644
--- a/lib/src/header_parser/sub_parsers/functiondecl_parser.dart
+++ b/lib/src/header_parser/sub_parsers/functiondecl_parser.dart
@@ -65,7 +65,7 @@
cursor,
nesting.length + commentPrefix.length,
),
- name: config.functionDecl.getPrefixedName(funcName),
+ name: config.functionDecl.renameUsingConfig(funcName),
originalName: funcName,
returnType: rt,
parameters: parameters,
diff --git a/lib/src/header_parser/sub_parsers/macro_parser.dart b/lib/src/header_parser/sub_parsers/macro_parser.dart
index 87bb642..27a7b30 100644
--- a/lib/src/header_parser/sub_parsers/macro_parser.dart
+++ b/lib/src/header_parser/sub_parsers/macro_parser.dart
@@ -31,7 +31,7 @@
// Parse macro only if it's not builtin or function-like.
_logger.fine(
"++++ Saved Macro '$originalMacroName' for later : ${cursor.completeStringRepr()}");
- final prefixedName = config.macroDecl.getPrefixedName(originalMacroName);
+ final prefixedName = config.macroDecl.renameUsingConfig(originalMacroName);
addMacroToSeen(originalMacroName, prefixedName);
_saveMacro(prefixedName, originalMacroName);
}
diff --git a/lib/src/header_parser/sub_parsers/structdecl_parser.dart b/lib/src/header_parser/sub_parsers/structdecl_parser.dart
index 32e2fd7..32e3a76 100644
--- a/lib/src/header_parser/sub_parsers/structdecl_parser.dart
+++ b/lib/src/header_parser/sub_parsers/structdecl_parser.dart
@@ -47,7 +47,7 @@
'++++ Adding Structure: structName: ${structName}, ${cursor.completeStringRepr()}');
_stack.top.struc = Struc(
originalName: structName,
- name: config.structDecl.getPrefixedName(structName),
+ name: config.structDecl.renameUsingConfig(structName),
dartDoc: getCursorDocComment(cursor),
);
// Adding to seen here to stop recursion if a struct has itself as a
diff --git a/lib/src/header_parser/type_extractor/extractor.dart b/lib/src/header_parser/type_extractor/extractor.dart
index d95b771..1336d7e 100644
--- a/lib/src/header_parser/type_extractor/extractor.dart
+++ b/lib/src/header_parser/type_extractor/extractor.dart
@@ -100,7 +100,7 @@
structName = cxtype.spelling();
}
- final fixedStructName = config.structDecl.getPrefixedName(structName);
+ final fixedStructName = config.structDecl.renameUsingConfig(structName);
// Also add a struct binding, if its unseen.
// TODO(23): Check if we should auto add struct.
@@ -135,9 +135,9 @@
// Set a name for typedefc incase it was null or empty.
if (name == null || name == '') {
- name = _getNextIncrementedString('_typedefC');
+ name = incrementalNamer.name('_typedefC');
} else {
- name = _getNextIncrementedString(name);
+ name = incrementalNamer.name(name);
}
final _parameters = <Parameter>[];
final totalArgs = clang.clang_getNumArgTypes_wrap(cxtype);
@@ -165,13 +165,3 @@
return Type.nativeFunc(typedefC);
}
-
-/// Generate a unique string for naming in [Typedef].
-String _getNextIncrementedString(String prefix) {
- var i = _incrementedStringCounters[prefix] ?? 0;
- i++;
- _incrementedStringCounters[prefix] = i;
- return '${prefix}_$i';
-}
-
-Map<String, int> _incrementedStringCounters = {};
diff --git a/lib/src/header_parser/utils.dart b/lib/src/header_parser/utils.dart
index 3591e88..e8190bf 100644
--- a/lib/src/header_parser/utils.dart
+++ b/lib/src/header_parser/utils.dart
@@ -310,3 +310,15 @@
T pop() => _stack.removeLast();
void push(T item) => _stack.add(item);
}
+
+class IncrementalNamer {
+ final _incrementedStringCounters = <String, int>{};
+
+ /// Appends `_<int>` to base. <int> is incremented on every call.
+ String name(String base) {
+ var i = _incrementedStringCounters[base] ?? 0;
+ i++;
+ _incrementedStringCounters[base] = i;
+ return '${base}_$i';
+ }
+}
diff --git a/lib/src/strings.dart b/lib/src/strings.dart
index 6196075..b432442 100644
--- a/lib/src/strings.dart
+++ b/lib/src/strings.dart
@@ -45,13 +45,7 @@
// Sub-fields of Declarations.
const include = 'include';
const exclude = 'exclude';
-const prefix = 'prefix';
-const prefix_replacement = 'prefix-replacement';
-
-// Sub-fields of include/exclude.
-const matches = 'matches'; // regex
-const names = 'names'; // hashset
-
+const rename = 'rename';
const sizemap = 'size-map';
// Sizemap values.
diff --git a/test/example_tests/libclang_example_test.dart b/test/example_tests/libclang_example_test.dart
index 761dddc..80cd96d 100644
--- a/test/example_tests/libclang_example_test.dart
+++ b/test/example_tests/libclang_example_test.dart
@@ -23,24 +23,21 @@
${strings.headers}:
${strings.entryPoints}:
- third_party/libclang/include/clang-c/Index.h
- ${strings.include}-directives:
+ ${strings.includeDirectives}:
- '**CXString.h'
- '**Index.h'
${strings.compilerOpts}: '-I/usr/lib/llvm-9/include/ -I/usr/lib/llvm-10/include/ -IC:\Progra~1\LLVM\include -I/usr/local/opt/llvm/include/ -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ -Wno-nullability-completeness'
${strings.functions}:
${strings.include}:
- ${strings.matches}:
- - 'clang_.*'
+ - 'clang_.*'
${strings.structs}:
${strings.include}:
- ${strings.matches}:
- - 'CX.*'
+ - 'CX.*'
${strings.enums}:
${strings.include}:
- ${strings.names}:
- - 'CXTypeKind'
- - 'CXGlobalOptFlags'
+ - 'CXTypeKind'
+ - 'CXGlobalOptFlags'
${strings.name}: 'LibClang'
${strings.description}: 'Holds bindings to LibClang.'
diff --git a/test/header_parser_tests/nested_parsing_test.dart b/test/header_parser_tests/nested_parsing_test.dart
index ed1bacf..c4c01a7 100644
--- a/test/header_parser_tests/nested_parsing_test.dart
+++ b/test/header_parser_tests/nested_parsing_test.dart
@@ -29,8 +29,7 @@
- 'test/header_parser_tests/nested_parsing.h'
${strings.structs}:
${strings.include}:
- ${strings.names}:
- - Struct1
+ - Struct1
''') as yaml.YamlMap),
);
});
diff --git a/test/header_parser_tests/unnamed_enums_test.dart b/test/header_parser_tests/unnamed_enums_test.dart
index a7ee4c4..99456f3 100644
--- a/test/header_parser_tests/unnamed_enums_test.dart
+++ b/test/header_parser_tests/unnamed_enums_test.dart
@@ -28,8 +28,7 @@
- 'test/header_parser_tests/unnamed_enums.h'
${strings.enums}:
${strings.exclude}:
- ${strings.names}:
- - Named
+ - Named
''') as yaml.YamlMap),
);
});
diff --git a/test/large_integration_tests/_expected_cjson_bindings.dart b/test/large_integration_tests/_expected_cjson_bindings.dart
index 7beb2ef..2a33af3 100644
--- a/test/large_integration_tests/_expected_cjson_bindings.dart
+++ b/test/large_integration_tests/_expected_cjson_bindings.dart
@@ -1058,9 +1058,9 @@
}
class cJSON_Hooks extends ffi.Struct {
- ffi.Pointer<ffi.NativeFunction<_typedefC_11>> malloc_fn;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_1>> malloc_fn;
- ffi.Pointer<ffi.NativeFunction<_typedefC_12>> free_fn;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_2>> free_fn;
}
const int CJSON_VERSION_MAJOR = 1;
@@ -1775,10 +1775,10 @@
ffi.Pointer<ffi.Void> object,
);
-typedef _typedefC_11 = ffi.Pointer<ffi.Void> Function(
+typedef _typedefC_1 = ffi.Pointer<ffi.Void> Function(
ffi.Uint64,
);
-typedef _typedefC_12 = ffi.Void Function(
+typedef _typedefC_2 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
diff --git a/test/large_integration_tests/_expected_sqlite_bindings.dart b/test/large_integration_tests/_expected_sqlite_bindings.dart
index ad214b3..f2f0a23 100644
--- a/test/large_integration_tests/_expected_sqlite_bindings.dart
+++ b/test/large_integration_tests/_expected_sqlite_bindings.dart
@@ -231,7 +231,7 @@
int sqlite3_exec(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Int8> sql,
- ffi.Pointer<ffi.NativeFunction<_typedefC_13>> callback,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_1>> callback,
ffi.Pointer<ffi.Void> arg3,
ffi.Pointer<ffi.Pointer<ffi.Int8>> errmsg,
) {
@@ -816,7 +816,7 @@
/// or [prepared statement] that invoked the busy handler.
int sqlite3_busy_handler(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_32>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_20>> arg1,
ffi.Pointer<ffi.Void> arg2,
) {
_sqlite3_busy_handler ??= _dylib.lookupFunction<_c_sqlite3_busy_handler,
@@ -1356,7 +1356,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_33>> xAuth,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_21>> xAuth,
ffi.Pointer<ffi.Void> pUserData,
) {
_sqlite3_set_authorizer ??= _dylib.lookupFunction<_c_sqlite3_set_authorizer,
@@ -1402,7 +1402,7 @@
/// profile callback.
ffi.Pointer<ffi.Void> sqlite3_trace(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_34>> xTrace,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_22>> xTrace,
ffi.Pointer<ffi.Void> arg2,
) {
_sqlite3_trace ??= _dylib
@@ -1418,7 +1418,7 @@
ffi.Pointer<ffi.Void> sqlite3_profile(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_35>> xProfile,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_23>> xProfile,
ffi.Pointer<ffi.Void> arg2,
) {
_sqlite3_profile ??=
@@ -1463,7 +1463,7 @@
int sqlite3_trace_v2(
ffi.Pointer<sqlite3> arg0,
int uMask,
- ffi.Pointer<ffi.NativeFunction<_typedefC_36>> xCallback,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_24>> xCallback,
ffi.Pointer<ffi.Void> pCtx,
) {
_sqlite3_trace_v2 ??=
@@ -1511,7 +1511,7 @@
void sqlite3_progress_handler(
ffi.Pointer<sqlite3> arg0,
int arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_37>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_25>> arg2,
ffi.Pointer<ffi.Void> arg3,
) {
_sqlite3_progress_handler ??= _dylib.lookupFunction<
@@ -2819,7 +2819,7 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
int n,
- ffi.Pointer<ffi.NativeFunction<_typedefC_38>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_26>> arg4,
) {
_sqlite3_bind_blob ??=
_dylib.lookupFunction<_c_sqlite3_bind_blob, _dart_sqlite3_bind_blob>(
@@ -2840,7 +2840,7 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_39>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_27>> arg4,
) {
_sqlite3_bind_blob64 ??= _dylib.lookupFunction<_c_sqlite3_bind_blob64,
_dart_sqlite3_bind_blob64>('sqlite3_bind_blob64');
@@ -2925,7 +2925,7 @@
int arg1,
ffi.Pointer<ffi.Int8> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_40>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_28>> arg4,
) {
_sqlite3_bind_text ??=
_dylib.lookupFunction<_c_sqlite3_bind_text, _dart_sqlite3_bind_text>(
@@ -2946,7 +2946,7 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_41>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_29>> arg4,
) {
_sqlite3_bind_text16 ??= _dylib.lookupFunction<_c_sqlite3_bind_text16,
_dart_sqlite3_bind_text16>('sqlite3_bind_text16');
@@ -2966,7 +2966,7 @@
int arg1,
ffi.Pointer<ffi.Int8> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_42>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_30>> arg4,
int encoding,
) {
_sqlite3_bind_text64 ??= _dylib.lookupFunction<_c_sqlite3_bind_text64,
@@ -3005,7 +3005,7 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
ffi.Pointer<ffi.Int8> arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_43>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_31>> arg4,
) {
_sqlite3_bind_pointer ??= _dylib.lookupFunction<_c_sqlite3_bind_pointer,
_dart_sqlite3_bind_pointer>('sqlite3_bind_pointer');
@@ -4105,9 +4105,9 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_44>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_45>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_46>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_32>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_33>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_34>> xFinal,
) {
_sqlite3_create_function ??= _dylib.lookupFunction<
_c_sqlite3_create_function,
@@ -4132,9 +4132,9 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_47>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_48>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_49>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_35>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_36>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_37>> xFinal,
) {
_sqlite3_create_function16 ??= _dylib.lookupFunction<
_c_sqlite3_create_function16,
@@ -4159,10 +4159,10 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_50>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_51>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_52>> xFinal,
- ffi.Pointer<ffi.NativeFunction<_typedefC_53>> xDestroy,
+ 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,
) {
_sqlite3_create_function_v2 ??= _dylib.lookupFunction<
_c_sqlite3_create_function_v2,
@@ -4188,11 +4188,11 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_54>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_55>> xFinal,
- ffi.Pointer<ffi.NativeFunction<_typedefC_56>> xValue,
- ffi.Pointer<ffi.NativeFunction<_typedefC_57>> xInverse,
- ffi.Pointer<ffi.NativeFunction<_typedefC_58>> xDestroy,
+ 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,
) {
_sqlite3_create_window_function ??= _dylib.lookupFunction<
_c_sqlite3_create_window_function,
@@ -4271,7 +4271,7 @@
_dart_sqlite3_thread_cleanup _sqlite3_thread_cleanup;
int sqlite3_memory_alarm(
- ffi.Pointer<ffi.NativeFunction<_typedefC_59>> arg0,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_47>> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
) {
@@ -4831,7 +4831,7 @@
ffi.Pointer<sqlite3_context> arg0,
int N,
ffi.Pointer<ffi.Void> arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_60>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_48>> arg3,
) {
_sqlite3_set_auxdata ??= _dylib.lookupFunction<_c_sqlite3_set_auxdata,
_dart_sqlite3_set_auxdata>('sqlite3_set_auxdata');
@@ -4993,7 +4993,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_61>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_49>> arg3,
) {
_sqlite3_result_blob ??= _dylib.lookupFunction<_c_sqlite3_result_blob,
_dart_sqlite3_result_blob>('sqlite3_result_blob');
@@ -5011,7 +5011,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_62>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_50>> arg3,
) {
_sqlite3_result_blob64 ??= _dylib.lookupFunction<_c_sqlite3_result_blob64,
_dart_sqlite3_result_blob64>('sqlite3_result_blob64');
@@ -5157,7 +5157,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Int8> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_63>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_51>> arg3,
) {
_sqlite3_result_text ??= _dylib.lookupFunction<_c_sqlite3_result_text,
_dart_sqlite3_result_text>('sqlite3_result_text');
@@ -5175,7 +5175,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Int8> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_64>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_52>> arg3,
int encoding,
) {
_sqlite3_result_text64 ??= _dylib.lookupFunction<_c_sqlite3_result_text64,
@@ -5195,7 +5195,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_65>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_53>> arg3,
) {
_sqlite3_result_text16 ??= _dylib.lookupFunction<_c_sqlite3_result_text16,
_dart_sqlite3_result_text16>('sqlite3_result_text16');
@@ -5213,7 +5213,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_66>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_54>> arg3,
) {
_sqlite3_result_text16le ??= _dylib.lookupFunction<
_c_sqlite3_result_text16le,
@@ -5232,7 +5232,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_67>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_55>> arg3,
) {
_sqlite3_result_text16be ??= _dylib.lookupFunction<
_c_sqlite3_result_text16be,
@@ -5265,7 +5265,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Pointer<ffi.Int8> arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_68>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_56>> arg3,
) {
_sqlite3_result_pointer ??= _dylib.lookupFunction<_c_sqlite3_result_pointer,
_dart_sqlite3_result_pointer>('sqlite3_result_pointer');
@@ -5417,7 +5417,7 @@
ffi.Pointer<ffi.Int8> zName,
int eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_69>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_57>> xCompare,
) {
_sqlite3_create_collation ??= _dylib.lookupFunction<
_c_sqlite3_create_collation,
@@ -5438,8 +5438,8 @@
ffi.Pointer<ffi.Int8> zName,
int eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_70>> xCompare,
- ffi.Pointer<ffi.NativeFunction<_typedefC_71>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_58>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_59>> xDestroy,
) {
_sqlite3_create_collation_v2 ??= _dylib.lookupFunction<
_c_sqlite3_create_collation_v2,
@@ -5461,7 +5461,7 @@
ffi.Pointer<ffi.Void> zName,
int eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_72>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_60>> xCompare,
) {
_sqlite3_create_collation16 ??= _dylib.lookupFunction<
_c_sqlite3_create_collation16,
@@ -5505,7 +5505,7 @@
int sqlite3_collation_needed(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Void> arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_73>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_61>> arg2,
) {
_sqlite3_collation_needed ??= _dylib.lookupFunction<
_c_sqlite3_collation_needed,
@@ -5522,7 +5522,7 @@
int sqlite3_collation_needed16(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Void> arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_74>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_62>> arg2,
) {
_sqlite3_collation_needed16 ??= _dylib.lookupFunction<
_c_sqlite3_collation_needed16,
@@ -5815,7 +5815,7 @@
/// See also the [sqlite3_update_hook()] interface.
ffi.Pointer<ffi.Void> sqlite3_commit_hook(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_75>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_63>> arg1,
ffi.Pointer<ffi.Void> arg2,
) {
_sqlite3_commit_hook ??= _dylib.lookupFunction<_c_sqlite3_commit_hook,
@@ -5831,7 +5831,7 @@
ffi.Pointer<ffi.Void> sqlite3_rollback_hook(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_76>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_64>> arg1,
ffi.Pointer<ffi.Void> arg2,
) {
_sqlite3_rollback_hook ??= _dylib.lookupFunction<_c_sqlite3_rollback_hook,
@@ -5894,7 +5894,7 @@
/// and [sqlite3_preupdate_hook()] interfaces.
ffi.Pointer<ffi.Void> sqlite3_update_hook(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_77>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_65>> arg1,
ffi.Pointer<ffi.Void> arg2,
) {
_sqlite3_update_hook ??= _dylib.lookupFunction<_c_sqlite3_update_hook,
@@ -6342,7 +6342,7 @@
/// See also: [sqlite3_reset_auto_extension()]
/// and [sqlite3_cancel_auto_extension()]
int sqlite3_auto_extension(
- ffi.Pointer<ffi.NativeFunction<_typedefC_78>> xEntryPoint,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_66>> xEntryPoint,
) {
_sqlite3_auto_extension ??= _dylib.lookupFunction<_c_sqlite3_auto_extension,
_dart_sqlite3_auto_extension>('sqlite3_auto_extension');
@@ -6362,7 +6362,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_79>> xEntryPoint,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_67>> xEntryPoint,
) {
_sqlite3_cancel_auto_extension ??= _dylib.lookupFunction<
_c_sqlite3_cancel_auto_extension,
@@ -6440,7 +6440,7 @@
ffi.Pointer<ffi.Int8> zName,
ffi.Pointer<sqlite3_module> p,
ffi.Pointer<ffi.Void> pClientData,
- ffi.Pointer<ffi.NativeFunction<_typedefC_80>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_68>> xDestroy,
) {
_sqlite3_create_module_v2 ??= _dylib.lookupFunction<
_c_sqlite3_create_module_v2,
@@ -8024,7 +8024,7 @@
/// SQLITE_LOCKED.)^
int sqlite3_unlock_notify(
ffi.Pointer<sqlite3> pBlocked,
- ffi.Pointer<ffi.NativeFunction<_typedefC_81>> xNotify,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_69>> xNotify,
ffi.Pointer<ffi.Void> pNotifyArg,
) {
_sqlite3_unlock_notify ??= _dylib.lookupFunction<_c_sqlite3_unlock_notify,
@@ -8207,7 +8207,7 @@
/// overwrite any prior [sqlite3_wal_hook()] settings.
ffi.Pointer<ffi.Void> sqlite3_wal_hook(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_82>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_70>> arg1,
ffi.Pointer<ffi.Void> arg2,
) {
_sqlite3_wal_hook ??=
@@ -8955,7 +8955,7 @@
int sqlite3_rtree_geometry_callback(
ffi.Pointer<sqlite3> db,
ffi.Pointer<ffi.Int8> zGeom,
- ffi.Pointer<ffi.NativeFunction<_typedefC_83>> xGeom,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_71>> xGeom,
ffi.Pointer<ffi.Void> pContext,
) {
_sqlite3_rtree_geometry_callback ??= _dylib.lookupFunction<
@@ -8979,9 +8979,9 @@
int sqlite3_rtree_query_callback(
ffi.Pointer<sqlite3> db,
ffi.Pointer<ffi.Int8> zQueryFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_84>> xQueryFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_72>> xQueryFunc,
ffi.Pointer<ffi.Void> pContext,
- ffi.Pointer<ffi.NativeFunction<_typedefC_85>> xDestructor,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_73>> xDestructor,
) {
_sqlite3_rtree_query_callback ??= _dylib.lookupFunction<
_c_sqlite3_rtree_query_callback,
@@ -9006,43 +9006,43 @@
@ffi.Int32()
int iVersion;
- ffi.Pointer<ffi.NativeFunction<_typedefC_14>> xClose;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_2>> xClose;
- ffi.Pointer<ffi.NativeFunction<_typedefC_15>> xRead;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_3>> xRead;
- ffi.Pointer<ffi.NativeFunction<_typedefC_16>> xWrite;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_4>> xWrite;
- ffi.Pointer<ffi.NativeFunction<_typedefC_17>> xTruncate;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_5>> xTruncate;
- ffi.Pointer<ffi.NativeFunction<_typedefC_18>> xSync;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_6>> xSync;
- ffi.Pointer<ffi.NativeFunction<_typedefC_19>> xFileSize;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_7>> xFileSize;
- ffi.Pointer<ffi.NativeFunction<_typedefC_20>> xLock;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_8>> xLock;
- ffi.Pointer<ffi.NativeFunction<_typedefC_21>> xUnlock;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_9>> xUnlock;
- ffi.Pointer<ffi.NativeFunction<_typedefC_22>> xCheckReservedLock;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_10>> xCheckReservedLock;
- ffi.Pointer<ffi.NativeFunction<_typedefC_23>> xFileControl;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_11>> xFileControl;
- ffi.Pointer<ffi.NativeFunction<_typedefC_24>> xSectorSize;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_12>> xSectorSize;
- ffi.Pointer<ffi.NativeFunction<_typedefC_25>> xDeviceCharacteristics;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_13>> xDeviceCharacteristics;
/// Methods above are valid for version 1
- ffi.Pointer<ffi.NativeFunction<_typedefC_26>> xShmMap;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_14>> xShmMap;
- ffi.Pointer<ffi.NativeFunction<_typedefC_27>> xShmLock;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_15>> xShmLock;
- ffi.Pointer<ffi.NativeFunction<_typedefC_28>> xShmBarrier;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_16>> xShmBarrier;
- ffi.Pointer<ffi.NativeFunction<_typedefC_29>> xShmUnmap;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_17>> xShmUnmap;
/// Methods above are valid for version 2
- ffi.Pointer<ffi.NativeFunction<_typedefC_30>> xFetch;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_18>> xFetch;
- ffi.Pointer<ffi.NativeFunction<_typedefC_31>> xUnfetch;
+ ffi.Pointer<ffi.NativeFunction<_typedefC_19>> xUnfetch;
}
class sqlite3_mutex extends ffi.Struct {}
@@ -10785,7 +10785,7 @@
ffi.Pointer<sqlite3> arg0,
);
-typedef _typedefC_13 = ffi.Int32 Function(
+typedef _typedefC_1 = ffi.Int32 Function(
ffi.Pointer<ffi.Void>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<ffi.Int8>>,
@@ -10795,7 +10795,7 @@
typedef _c_sqlite3_exec = ffi.Int32 Function(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Int8> sql,
- ffi.Pointer<ffi.NativeFunction<_typedefC_13>> callback,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_1>> callback,
ffi.Pointer<ffi.Void> arg3,
ffi.Pointer<ffi.Pointer<ffi.Int8>> errmsg,
);
@@ -10803,7 +10803,7 @@
typedef _dart_sqlite3_exec = int Function(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Int8> sql,
- ffi.Pointer<ffi.NativeFunction<_typedefC_13>> callback,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_1>> callback,
ffi.Pointer<ffi.Void> arg3,
ffi.Pointer<ffi.Pointer<ffi.Int8>> errmsg,
);
@@ -10910,20 +10910,20 @@
ffi.Pointer<ffi.Void> sql,
);
-typedef _typedefC_32 = ffi.Int32 Function(
+typedef _typedefC_20 = 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_32>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_20>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
typedef _dart_sqlite3_busy_handler = int Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_32>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_20>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
@@ -11057,7 +11057,7 @@
ffi.Pointer<ffi.Void> P,
);
-typedef _typedefC_33 = ffi.Int32 Function(
+typedef _typedefC_21 = ffi.Int32 Function(
ffi.Pointer<ffi.Void>,
ffi.Int32,
ffi.Pointer<ffi.Int8>,
@@ -11068,34 +11068,34 @@
typedef _c_sqlite3_set_authorizer = ffi.Int32 Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_33>> xAuth,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_21>> xAuth,
ffi.Pointer<ffi.Void> pUserData,
);
typedef _dart_sqlite3_set_authorizer = int Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_33>> xAuth,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_21>> xAuth,
ffi.Pointer<ffi.Void> pUserData,
);
-typedef _typedefC_34 = ffi.Void Function(
+typedef _typedefC_22 = 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_34>> xTrace,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_22>> xTrace,
ffi.Pointer<ffi.Void> arg2,
);
typedef _dart_sqlite3_trace = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_34>> xTrace,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_22>> xTrace,
ffi.Pointer<ffi.Void> arg2,
);
-typedef _typedefC_35 = ffi.Void Function(
+typedef _typedefC_23 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
ffi.Pointer<ffi.Int8>,
ffi.Uint64,
@@ -11103,17 +11103,17 @@
typedef _c_sqlite3_profile = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_35>> xProfile,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_23>> xProfile,
ffi.Pointer<ffi.Void> arg2,
);
typedef _dart_sqlite3_profile = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_35>> xProfile,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_23>> xProfile,
ffi.Pointer<ffi.Void> arg2,
);
-typedef _typedefC_36 = ffi.Int32 Function(
+typedef _typedefC_24 = ffi.Int32 Function(
ffi.Uint32,
ffi.Pointer<ffi.Void>,
ffi.Pointer<ffi.Void>,
@@ -11123,32 +11123,32 @@
typedef _c_sqlite3_trace_v2 = ffi.Int32 Function(
ffi.Pointer<sqlite3> arg0,
ffi.Uint32 uMask,
- ffi.Pointer<ffi.NativeFunction<_typedefC_36>> xCallback,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_24>> xCallback,
ffi.Pointer<ffi.Void> pCtx,
);
typedef _dart_sqlite3_trace_v2 = int Function(
ffi.Pointer<sqlite3> arg0,
int uMask,
- ffi.Pointer<ffi.NativeFunction<_typedefC_36>> xCallback,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_24>> xCallback,
ffi.Pointer<ffi.Void> pCtx,
);
-typedef _typedefC_37 = ffi.Int32 Function(
+typedef _typedefC_25 = 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_37>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_25>> arg2,
ffi.Pointer<ffi.Void> arg3,
);
typedef _dart_sqlite3_progress_handler = void Function(
ffi.Pointer<sqlite3> arg0,
int arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_37>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_25>> arg2,
ffi.Pointer<ffi.Void> arg3,
);
@@ -11486,7 +11486,7 @@
ffi.Pointer<sqlite3_stmt> arg0,
);
-typedef _typedefC_38 = ffi.Void Function(
+typedef _typedefC_26 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -11495,7 +11495,7 @@
ffi.Int32 arg1,
ffi.Pointer<ffi.Void> arg2,
ffi.Int32 n,
- ffi.Pointer<ffi.NativeFunction<_typedefC_38>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_26>> arg4,
);
typedef _dart_sqlite3_bind_blob = int Function(
@@ -11503,10 +11503,10 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
int n,
- ffi.Pointer<ffi.NativeFunction<_typedefC_38>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_26>> arg4,
);
-typedef _typedefC_39 = ffi.Void Function(
+typedef _typedefC_27 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -11515,7 +11515,7 @@
ffi.Int32 arg1,
ffi.Pointer<ffi.Void> arg2,
ffi.Uint64 arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_39>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_27>> arg4,
);
typedef _dart_sqlite3_bind_blob64 = int Function(
@@ -11523,7 +11523,7 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_39>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_27>> arg4,
);
typedef _c_sqlite3_bind_double = ffi.Int32 Function(
@@ -11572,7 +11572,7 @@
int arg1,
);
-typedef _typedefC_40 = ffi.Void Function(
+typedef _typedefC_28 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -11581,7 +11581,7 @@
ffi.Int32 arg1,
ffi.Pointer<ffi.Int8> arg2,
ffi.Int32 arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_40>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_28>> arg4,
);
typedef _dart_sqlite3_bind_text = int Function(
@@ -11589,10 +11589,10 @@
int arg1,
ffi.Pointer<ffi.Int8> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_40>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_28>> arg4,
);
-typedef _typedefC_41 = ffi.Void Function(
+typedef _typedefC_29 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -11601,7 +11601,7 @@
ffi.Int32 arg1,
ffi.Pointer<ffi.Void> arg2,
ffi.Int32 arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_41>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_29>> arg4,
);
typedef _dart_sqlite3_bind_text16 = int Function(
@@ -11609,10 +11609,10 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_41>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_29>> arg4,
);
-typedef _typedefC_42 = ffi.Void Function(
+typedef _typedefC_30 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -11621,7 +11621,7 @@
ffi.Int32 arg1,
ffi.Pointer<ffi.Int8> arg2,
ffi.Uint64 arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_42>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_30>> arg4,
ffi.Uint8 encoding,
);
@@ -11630,7 +11630,7 @@
int arg1,
ffi.Pointer<ffi.Int8> arg2,
int arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_42>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_30>> arg4,
int encoding,
);
@@ -11646,7 +11646,7 @@
ffi.Pointer<sqlite3_value> arg2,
);
-typedef _typedefC_43 = ffi.Void Function(
+typedef _typedefC_31 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -11655,7 +11655,7 @@
ffi.Int32 arg1,
ffi.Pointer<ffi.Void> arg2,
ffi.Pointer<ffi.Int8> arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_43>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_31>> arg4,
);
typedef _dart_sqlite3_bind_pointer = int Function(
@@ -11663,7 +11663,7 @@
int arg1,
ffi.Pointer<ffi.Void> arg2,
ffi.Pointer<ffi.Int8> arg3,
- ffi.Pointer<ffi.NativeFunction<_typedefC_43>> arg4,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_31>> arg4,
);
typedef _c_sqlite3_bind_zeroblob = ffi.Int32 Function(
@@ -11966,19 +11966,19 @@
ffi.Pointer<sqlite3_stmt> pStmt,
);
-typedef _typedefC_44 = ffi.Void Function(
+typedef _typedefC_32 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_45 = ffi.Void Function(
+typedef _typedefC_33 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_46 = ffi.Void Function(
+typedef _typedefC_34 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
);
@@ -11988,9 +11988,9 @@
ffi.Int32 nArg,
ffi.Int32 eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_44>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_45>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_46>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_32>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_33>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_34>> xFinal,
);
typedef _dart_sqlite3_create_function = int Function(
@@ -11999,24 +11999,24 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_44>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_45>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_46>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_32>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_33>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_34>> xFinal,
);
-typedef _typedefC_47 = ffi.Void Function(
+typedef _typedefC_35 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_48 = ffi.Void Function(
+typedef _typedefC_36 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_49 = ffi.Void Function(
+typedef _typedefC_37 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
);
@@ -12026,9 +12026,9 @@
ffi.Int32 nArg,
ffi.Int32 eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_47>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_48>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_49>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_35>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_36>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_37>> xFinal,
);
typedef _dart_sqlite3_create_function16 = int Function(
@@ -12037,28 +12037,28 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_47>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_48>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_49>> xFinal,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_35>> xFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_36>> xStep,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_37>> xFinal,
);
-typedef _typedefC_50 = ffi.Void Function(
+typedef _typedefC_38 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_51 = ffi.Void Function(
+typedef _typedefC_39 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_52 = ffi.Void Function(
+typedef _typedefC_40 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
);
-typedef _typedefC_53 = ffi.Void Function(
+typedef _typedefC_41 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12068,10 +12068,10 @@
ffi.Int32 nArg,
ffi.Int32 eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_50>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_51>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_52>> xFinal,
- ffi.Pointer<ffi.NativeFunction<_typedefC_53>> xDestroy,
+ 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,
);
typedef _dart_sqlite3_create_function_v2 = int Function(
@@ -12080,33 +12080,33 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_50>> xFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_51>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_52>> xFinal,
- ffi.Pointer<ffi.NativeFunction<_typedefC_53>> xDestroy,
+ 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,
);
-typedef _typedefC_54 = ffi.Void Function(
+typedef _typedefC_42 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_55 = ffi.Void Function(
+typedef _typedefC_43 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
);
-typedef _typedefC_56 = ffi.Void Function(
+typedef _typedefC_44 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
);
-typedef _typedefC_57 = ffi.Void Function(
+typedef _typedefC_45 = ffi.Void Function(
ffi.Pointer<sqlite3_context>,
ffi.Int32,
ffi.Pointer<ffi.Pointer<sqlite3_value>>,
);
-typedef _typedefC_58 = ffi.Void Function(
+typedef _typedefC_46 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12116,11 +12116,11 @@
ffi.Int32 nArg,
ffi.Int32 eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_54>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_55>> xFinal,
- ffi.Pointer<ffi.NativeFunction<_typedefC_56>> xValue,
- ffi.Pointer<ffi.NativeFunction<_typedefC_57>> xInverse,
- ffi.Pointer<ffi.NativeFunction<_typedefC_58>> xDestroy,
+ 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,
);
typedef _dart_sqlite3_create_window_function = int Function(
@@ -12129,11 +12129,11 @@
int nArg,
int eTextRep,
ffi.Pointer<ffi.Void> pApp,
- ffi.Pointer<ffi.NativeFunction<_typedefC_54>> xStep,
- ffi.Pointer<ffi.NativeFunction<_typedefC_55>> xFinal,
- ffi.Pointer<ffi.NativeFunction<_typedefC_56>> xValue,
- ffi.Pointer<ffi.NativeFunction<_typedefC_57>> xInverse,
- ffi.Pointer<ffi.NativeFunction<_typedefC_58>> xDestroy,
+ 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,
);
typedef _c_sqlite3_aggregate_count = ffi.Int32 Function(
@@ -12170,20 +12170,20 @@
typedef _dart_sqlite3_thread_cleanup = void Function();
-typedef _typedefC_59 = ffi.Void Function(
+typedef _typedefC_47 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
ffi.Int64,
ffi.Int32,
);
typedef _c_sqlite3_memory_alarm = ffi.Int32 Function(
- ffi.Pointer<ffi.NativeFunction<_typedefC_59>> arg0,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_47>> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Int64 arg2,
);
typedef _dart_sqlite3_memory_alarm = int Function(
- ffi.Pointer<ffi.NativeFunction<_typedefC_59>> arg0,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_47>> arg0,
ffi.Pointer<ffi.Void> arg1,
int arg2,
);
@@ -12370,7 +12370,7 @@
int N,
);
-typedef _typedefC_60 = ffi.Void Function(
+typedef _typedefC_48 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12378,17 +12378,17 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Int32 N,
ffi.Pointer<ffi.Void> arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_60>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_48>> 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_60>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_48>> arg3,
);
-typedef _typedefC_61 = ffi.Void Function(
+typedef _typedefC_49 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12396,17 +12396,17 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Int32 arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_61>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_49>> 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_61>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_49>> arg3,
);
-typedef _typedefC_62 = ffi.Void Function(
+typedef _typedefC_50 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12414,14 +12414,14 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Uint64 arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_62>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_50>> 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_62>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_50>> arg3,
);
typedef _c_sqlite3_result_double = ffi.Void Function(
@@ -12512,7 +12512,7 @@
ffi.Pointer<sqlite3_context> arg0,
);
-typedef _typedefC_63 = ffi.Void Function(
+typedef _typedefC_51 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12520,17 +12520,17 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Int8> arg1,
ffi.Int32 arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_63>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_51>> 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_63>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_51>> arg3,
);
-typedef _typedefC_64 = ffi.Void Function(
+typedef _typedefC_52 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12538,7 +12538,7 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Int8> arg1,
ffi.Uint64 arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_64>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_52>> arg3,
ffi.Uint8 encoding,
);
@@ -12546,11 +12546,11 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Int8> arg1,
int arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_64>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_52>> arg3,
int encoding,
);
-typedef _typedefC_65 = ffi.Void Function(
+typedef _typedefC_53 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12558,17 +12558,17 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Int32 arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_65>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_53>> 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_65>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_53>> arg3,
);
-typedef _typedefC_66 = ffi.Void Function(
+typedef _typedefC_54 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12576,17 +12576,17 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Int32 arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_66>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_54>> 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_66>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_54>> arg3,
);
-typedef _typedefC_67 = ffi.Void Function(
+typedef _typedefC_55 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12594,14 +12594,14 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Int32 arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_67>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_55>> 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_67>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_55>> arg3,
);
typedef _c_sqlite3_result_value = ffi.Void Function(
@@ -12614,7 +12614,7 @@
ffi.Pointer<sqlite3_value> arg1,
);
-typedef _typedefC_68 = ffi.Void Function(
+typedef _typedefC_56 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12622,14 +12622,14 @@
ffi.Pointer<sqlite3_context> arg0,
ffi.Pointer<ffi.Void> arg1,
ffi.Pointer<ffi.Int8> arg2,
- ffi.Pointer<ffi.NativeFunction<_typedefC_68>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_56>> 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_68>> arg3,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_56>> arg3,
);
typedef _c_sqlite3_result_zeroblob = ffi.Void Function(
@@ -12662,7 +12662,7 @@
int arg1,
);
-typedef _typedefC_69 = ffi.Int32 Function(
+typedef _typedefC_57 = ffi.Int32 Function(
ffi.Pointer<ffi.Void>,
ffi.Int32,
ffi.Pointer<ffi.Void>,
@@ -12675,7 +12675,7 @@
ffi.Pointer<ffi.Int8> zName,
ffi.Int32 eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_69>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_57>> xCompare,
);
typedef _dart_sqlite3_create_collation = int Function(
@@ -12683,10 +12683,10 @@
ffi.Pointer<ffi.Int8> zName,
int eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_69>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_57>> xCompare,
);
-typedef _typedefC_70 = ffi.Int32 Function(
+typedef _typedefC_58 = ffi.Int32 Function(
ffi.Pointer<ffi.Void>,
ffi.Int32,
ffi.Pointer<ffi.Void>,
@@ -12694,7 +12694,7 @@
ffi.Pointer<ffi.Void>,
);
-typedef _typedefC_71 = ffi.Void Function(
+typedef _typedefC_59 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -12703,8 +12703,8 @@
ffi.Pointer<ffi.Int8> zName,
ffi.Int32 eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_70>> xCompare,
- ffi.Pointer<ffi.NativeFunction<_typedefC_71>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_58>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_59>> xDestroy,
);
typedef _dart_sqlite3_create_collation_v2 = int Function(
@@ -12712,11 +12712,11 @@
ffi.Pointer<ffi.Int8> zName,
int eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_70>> xCompare,
- ffi.Pointer<ffi.NativeFunction<_typedefC_71>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_58>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_59>> xDestroy,
);
-typedef _typedefC_72 = ffi.Int32 Function(
+typedef _typedefC_60 = ffi.Int32 Function(
ffi.Pointer<ffi.Void>,
ffi.Int32,
ffi.Pointer<ffi.Void>,
@@ -12729,7 +12729,7 @@
ffi.Pointer<ffi.Void> zName,
ffi.Int32 eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_72>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_60>> xCompare,
);
typedef _dart_sqlite3_create_collation16 = int Function(
@@ -12737,10 +12737,10 @@
ffi.Pointer<ffi.Void> zName,
int eTextRep,
ffi.Pointer<ffi.Void> pArg,
- ffi.Pointer<ffi.NativeFunction<_typedefC_72>> xCompare,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_60>> xCompare,
);
-typedef _typedefC_73 = ffi.Void Function(
+typedef _typedefC_61 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
ffi.Pointer<sqlite3>,
ffi.Int32,
@@ -12750,16 +12750,16 @@
typedef _c_sqlite3_collation_needed = ffi.Int32 Function(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Void> arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_73>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_61>> arg2,
);
typedef _dart_sqlite3_collation_needed = int Function(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Void> arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_73>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_61>> arg2,
);
-typedef _typedefC_74 = ffi.Void Function(
+typedef _typedefC_62 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
ffi.Pointer<sqlite3>,
ffi.Int32,
@@ -12769,13 +12769,13 @@
typedef _c_sqlite3_collation_needed16 = ffi.Int32 Function(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Void> arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_74>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_62>> arg2,
);
typedef _dart_sqlite3_collation_needed16 = int Function(
ffi.Pointer<sqlite3> arg0,
ffi.Pointer<ffi.Void> arg1,
- ffi.Pointer<ffi.NativeFunction<_typedefC_74>> arg2,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_62>> arg2,
);
typedef _c_sqlite3_sleep = ffi.Int32 Function(
@@ -12862,39 +12862,39 @@
ffi.Pointer<sqlite3_stmt> pStmt,
);
-typedef _typedefC_75 = ffi.Int32 Function(
+typedef _typedefC_63 = 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_75>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_63>> 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_75>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_63>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
-typedef _typedefC_76 = ffi.Void Function(
+typedef _typedefC_64 = 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_76>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_64>> 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_76>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_64>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
-typedef _typedefC_77 = ffi.Void Function(
+typedef _typedefC_65 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
ffi.Int32,
ffi.Pointer<ffi.Int8>,
@@ -12904,13 +12904,13 @@
typedef _c_sqlite3_update_hook = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_77>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_65>> 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_77>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_65>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
@@ -13010,24 +13010,24 @@
int onoff,
);
-typedef _typedefC_78 = ffi.Void Function();
+typedef _typedefC_66 = ffi.Void Function();
typedef _c_sqlite3_auto_extension = ffi.Int32 Function(
- ffi.Pointer<ffi.NativeFunction<_typedefC_78>> xEntryPoint,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_66>> xEntryPoint,
);
typedef _dart_sqlite3_auto_extension = int Function(
- ffi.Pointer<ffi.NativeFunction<_typedefC_78>> xEntryPoint,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_66>> xEntryPoint,
);
-typedef _typedefC_79 = ffi.Void Function();
+typedef _typedefC_67 = ffi.Void Function();
typedef _c_sqlite3_cancel_auto_extension = ffi.Int32 Function(
- ffi.Pointer<ffi.NativeFunction<_typedefC_79>> xEntryPoint,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_67>> xEntryPoint,
);
typedef _dart_sqlite3_cancel_auto_extension = int Function(
- ffi.Pointer<ffi.NativeFunction<_typedefC_79>> xEntryPoint,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_67>> xEntryPoint,
);
typedef _c_sqlite3_reset_auto_extension = ffi.Void Function();
@@ -13048,7 +13048,7 @@
ffi.Pointer<ffi.Void> pClientData,
);
-typedef _typedefC_80 = ffi.Void Function(
+typedef _typedefC_68 = ffi.Void Function(
ffi.Pointer<ffi.Void>,
);
@@ -13057,7 +13057,7 @@
ffi.Pointer<ffi.Int8> zName,
ffi.Pointer<sqlite3_module> p,
ffi.Pointer<ffi.Void> pClientData,
- ffi.Pointer<ffi.NativeFunction<_typedefC_80>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_68>> xDestroy,
);
typedef _dart_sqlite3_create_module_v2 = int Function(
@@ -13065,7 +13065,7 @@
ffi.Pointer<ffi.Int8> zName,
ffi.Pointer<sqlite3_module> p,
ffi.Pointer<ffi.Void> pClientData,
- ffi.Pointer<ffi.NativeFunction<_typedefC_80>> xDestroy,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_68>> xDestroy,
);
typedef _c_sqlite3_drop_modules = ffi.Int32 Function(
@@ -13508,20 +13508,20 @@
ffi.Pointer<sqlite3_backup> p,
);
-typedef _typedefC_81 = ffi.Void Function(
+typedef _typedefC_69 = 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_81>> xNotify,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_69>> xNotify,
ffi.Pointer<ffi.Void> pNotifyArg,
);
typedef _dart_sqlite3_unlock_notify = int Function(
ffi.Pointer<sqlite3> pBlocked,
- ffi.Pointer<ffi.NativeFunction<_typedefC_81>> xNotify,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_69>> xNotify,
ffi.Pointer<ffi.Void> pNotifyArg,
);
@@ -13579,7 +13579,7 @@
ffi.Pointer<ffi.Int8> zFormat,
);
-typedef _typedefC_82 = ffi.Int32 Function(
+typedef _typedefC_70 = ffi.Int32 Function(
ffi.Pointer<ffi.Void>,
ffi.Pointer<sqlite3>,
ffi.Pointer<ffi.Int8>,
@@ -13588,13 +13588,13 @@
typedef _c_sqlite3_wal_hook = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<sqlite3> arg0,
- ffi.Pointer<ffi.NativeFunction<_typedefC_82>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_70>> 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_82>> arg1,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_70>> arg1,
ffi.Pointer<ffi.Void> arg2,
);
@@ -13792,7 +13792,7 @@
int mFlags,
);
-typedef _typedefC_83 = ffi.Int32 Function(
+typedef _typedefC_71 = ffi.Int32 Function(
ffi.Pointer<sqlite3_rtree_geometry>,
ffi.Int32,
ffi.Pointer<ffi.Double>,
@@ -13802,104 +13802,104 @@
typedef _c_sqlite3_rtree_geometry_callback = ffi.Int32 Function(
ffi.Pointer<sqlite3> db,
ffi.Pointer<ffi.Int8> zGeom,
- ffi.Pointer<ffi.NativeFunction<_typedefC_83>> xGeom,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_71>> 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_83>> xGeom,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_71>> xGeom,
ffi.Pointer<ffi.Void> pContext,
);
-typedef _typedefC_84 = ffi.Int32 Function(
+typedef _typedefC_72 = ffi.Int32 Function(
ffi.Pointer<sqlite3_rtree_query_info>,
);
-typedef _typedefC_85 = ffi.Void Function(
+typedef _typedefC_73 = 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_84>> xQueryFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_72>> xQueryFunc,
ffi.Pointer<ffi.Void> pContext,
- ffi.Pointer<ffi.NativeFunction<_typedefC_85>> xDestructor,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_73>> xDestructor,
);
typedef _dart_sqlite3_rtree_query_callback = int Function(
ffi.Pointer<sqlite3> db,
ffi.Pointer<ffi.Int8> zQueryFunc,
- ffi.Pointer<ffi.NativeFunction<_typedefC_84>> xQueryFunc,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_72>> xQueryFunc,
ffi.Pointer<ffi.Void> pContext,
- ffi.Pointer<ffi.NativeFunction<_typedefC_85>> xDestructor,
+ ffi.Pointer<ffi.NativeFunction<_typedefC_73>> xDestructor,
);
-typedef _typedefC_14 = ffi.Int32 Function(
+typedef _typedefC_2 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
);
-typedef _typedefC_15 = ffi.Int32 Function(
+typedef _typedefC_3 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
ffi.Pointer<ffi.Void>,
ffi.Int32,
ffi.Int64,
);
-typedef _typedefC_16 = ffi.Int32 Function(
+typedef _typedefC_4 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
ffi.Pointer<ffi.Void>,
ffi.Int32,
ffi.Int64,
);
-typedef _typedefC_17 = ffi.Int32 Function(
+typedef _typedefC_5 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
ffi.Int64,
);
-typedef _typedefC_18 = ffi.Int32 Function(
+typedef _typedefC_6 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
ffi.Int32,
);
-typedef _typedefC_19 = ffi.Int32 Function(
+typedef _typedefC_7 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
ffi.Pointer<ffi.Int64>,
);
-typedef _typedefC_20 = ffi.Int32 Function(
+typedef _typedefC_8 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
ffi.Int32,
);
-typedef _typedefC_21 = ffi.Int32 Function(
+typedef _typedefC_9 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
ffi.Int32,
);
-typedef _typedefC_22 = ffi.Int32 Function(
+typedef _typedefC_10 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
ffi.Pointer<ffi.Int32>,
);
-typedef _typedefC_23 = ffi.Int32 Function(
+typedef _typedefC_11 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
ffi.Int32,
ffi.Pointer<ffi.Void>,
);
-typedef _typedefC_24 = ffi.Int32 Function(
+typedef _typedefC_12 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
);
-typedef _typedefC_25 = ffi.Int32 Function(
+typedef _typedefC_13 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
);
-typedef _typedefC_26 = ffi.Int32 Function(
+typedef _typedefC_14 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
ffi.Int32,
ffi.Int32,
@@ -13907,30 +13907,30 @@
ffi.Pointer<ffi.Pointer<ffi.Void>>,
);
-typedef _typedefC_27 = ffi.Int32 Function(
+typedef _typedefC_15 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
ffi.Int32,
ffi.Int32,
ffi.Int32,
);
-typedef _typedefC_28 = ffi.Void Function(
+typedef _typedefC_16 = ffi.Void Function(
ffi.Pointer<sqlite3_file>,
);
-typedef _typedefC_29 = ffi.Int32 Function(
+typedef _typedefC_17 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
ffi.Int32,
);
-typedef _typedefC_30 = ffi.Int32 Function(
+typedef _typedefC_18 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
ffi.Int64,
ffi.Int32,
ffi.Pointer<ffi.Pointer<ffi.Void>>,
);
-typedef _typedefC_31 = ffi.Int32 Function(
+typedef _typedefC_19 = ffi.Int32 Function(
ffi.Pointer<sqlite3_file>,
ffi.Int64,
ffi.Pointer<ffi.Void>,
diff --git a/test/large_integration_tests/large_test.dart b/test/large_integration_tests/large_test.dart
index b18f52b..2815a1f 100644
--- a/test/large_integration_tests/large_test.dart
+++ b/test/large_integration_tests/large_test.dart
@@ -89,10 +89,9 @@
- '**sqlite3.h'
${strings.functions}:
${strings.exclude}:
- ${strings.names}:
- - sqlite3_vmprintf
- - sqlite3_vsnprintf
- - sqlite3_str_vappendf
+ - sqlite3_vmprintf
+ - sqlite3_vsnprintf
+ - sqlite3_str_vappendf
''') as YamlMap);
final library = parse(config);
diff --git a/test/prefix_tests/prefix_test.dart b/test/prefix_tests/prefix_test.dart
deleted file mode 100644
index 55ebc8a..0000000
--- a/test/prefix_tests/prefix_test.dart
+++ /dev/null
@@ -1,173 +0,0 @@
-// Copyright (c) 2020, 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:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
-import 'package:ffigen/src/strings.dart' as strings;
-
-import '../test_utils.dart';
-
-Library actual, expected;
-final functionPrefix = 'fff';
-final structPrefix = 'sss';
-final enumPrefix = 'eee';
-final macroPrefix = 'mmm';
-
-final functionPrefixReplacedWith = 'rf';
-final structPrefixReplacedWith = 'rs';
-final enumPrefixReplacedWith = 're';
-final macroPrefixReplacedWith = 'rm';
-
-void main() {
- group('prefix_test', () {
- setUpAll(() {
- logWarnings();
- expected = expectedLibrary();
- actual = parser.parse(Config.fromYaml(yaml.loadYaml('''
-${strings.name}: 'NativeLibrary'
-${strings.description}: 'Prefix Test'
-${strings.output}: 'unused'
-
-${strings.headers}:
- ${strings.entryPoints}:
- - 'test/prefix_tests/prefix.h'
-
-functions:
- ${strings.prefix}: $functionPrefix
- ${strings.prefix_replacement}:
- 'test_': '$functionPrefixReplacedWith'
-
-structs:
- ${strings.prefix}: $structPrefix
- ${strings.prefix_replacement}:
- 'Test_': '$structPrefixReplacedWith'
-
-enums:
- ${strings.prefix}: $enumPrefix
- ${strings.prefix_replacement}:
- 'Test_': '$enumPrefixReplacedWith'
-
-macros:
- ${strings.prefix}: $macroPrefix
- ${strings.prefix_replacement}:
- 'Test_': '$macroPrefixReplacedWith'
- ''') as yaml.YamlMap));
- });
-
- test('Function prefix', () {
- expect(actual.getBindingAsString('${functionPrefix}func1'),
- expected.getBindingAsString('${functionPrefix}func1'));
- });
- test('Struct prefix', () {
- expect(actual.getBindingAsString('${structPrefix}Struct1'),
- expected.getBindingAsString('${structPrefix}Struct1'));
- });
- test('Enum prefix', () {
- expect(actual.getBindingAsString('${enumPrefix}Enum1'),
- expected.getBindingAsString('${enumPrefix}Enum1'));
- });
- test('Macro prefix', () {
- expect(actual.getBindingAsString('${macroPrefix}Macro1'),
- expected.getBindingAsString('${macroPrefix}Macro1'));
- });
- test('Function prefix-replacement', () {
- expect(
- actual.getBindingAsString(
- '${functionPrefix}${functionPrefixReplacedWith}func2'),
- expected.getBindingAsString(
- '${functionPrefix}${functionPrefixReplacedWith}func2'));
- });
- test('Struct prefix-replacement', () {
- expect(
- actual.getBindingAsString(
- '${structPrefix}${structPrefixReplacedWith}Struct2'),
- expected.getBindingAsString(
- '${structPrefix}${structPrefixReplacedWith}Struct2'));
- });
- test('Enum prefix-replacement', () {
- expect(
- actual.getBindingAsString(
- '${enumPrefix}${enumPrefixReplacedWith}Enum2'),
- expected.getBindingAsString(
- '${enumPrefix}${enumPrefixReplacedWith}Enum2'));
- });
- test('Macro prefix-replacement', () {
- expect(
- actual.getBindingAsString(
- '${macroPrefix}${macroPrefixReplacedWith}Macro2'),
- expected.getBindingAsString(
- '${macroPrefix}${macroPrefixReplacedWith}Macro2'));
- });
- });
-}
-
-Library expectedLibrary() {
- final struc1 = Struc(name: '${structPrefix}Struct1');
- final struc2 =
- Struc(name: '${structPrefix}${structPrefixReplacedWith}Struct2');
- return Library(
- name: 'Bindings',
- bindings: [
- Func(
- name: '${functionPrefix}func1',
- originalName: 'func1',
- returnType: Type.nativeType(
- SupportedNativeType.Void,
- ),
- parameters: [
- Parameter(
- name: 's',
- type: Type.pointer(Type.struct(struc1)),
- ),
- ],
- ),
- Func(
- name: '${functionPrefix}${functionPrefixReplacedWith}func2',
- originalName: 'test_func2',
- returnType: Type.nativeType(
- SupportedNativeType.Void,
- ),
- parameters: [
- Parameter(
- name: 's',
- type: Type.pointer(Type.struct(struc2)),
- ),
- ],
- ),
- struc1,
- struc2,
- EnumClass(
- name: '${enumPrefix}Enum1',
- enumConstants: [
- EnumConstant(name: 'a', value: 0),
- EnumConstant(name: 'b', value: 1),
- EnumConstant(name: 'c', value: 2),
- ],
- ),
- EnumClass(
- name: '${enumPrefix}${enumPrefixReplacedWith}Enum2',
- enumConstants: [
- EnumConstant(name: 'e', value: 0),
- EnumConstant(name: 'f', value: 1),
- EnumConstant(name: 'g', value: 2),
- ],
- ),
- Constant(
- originalName: 'Macro1',
- name: '${macroPrefix}Macro1',
- rawType: 'int',
- rawValue: '1',
- ),
- Constant(
- originalName: 'TestMacro2',
- name: '${macroPrefix}${macroPrefixReplacedWith}Macro2',
- rawType: 'int',
- rawValue: '2',
- ),
- ],
- );
-}
diff --git a/test/prefix_tests/prefix.h b/test/rename_tests/rename.h
similarity index 74%
rename from test/prefix_tests/prefix.h
rename to test/rename_tests/rename.h
index d63d92a..8ef04e8 100644
--- a/test/prefix_tests/prefix.h
+++ b/test/rename_tests/rename.h
@@ -4,6 +4,7 @@
#define Macro1 1
#define Test_Macro2 2
+#define FullMatchMacro3 3
struct Struct1
{
@@ -11,9 +12,13 @@
struct Test_Struct2
{
};
+struct FullMatchStruct3
+{
+};
void func1(struct Struct1 *s);
void test_func2(struct Test_Struct2 *s);
+void fullMatch_func3(struct FullMatchStruct3 *s);
enum Enum1
{
@@ -27,3 +32,9 @@
f = 1,
g = 2
};
+enum FullMatchEnum3
+{
+ i = 0,
+ j = 1,
+ k = 2
+};
diff --git a/test/rename_tests/rename_test.dart b/test/rename_tests/rename_test.dart
new file mode 100644
index 0000000..3461cb6
--- /dev/null
+++ b/test/rename_tests/rename_test.dart
@@ -0,0 +1,203 @@
+// Copyright (c) 2020, 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:test/test.dart';
+import 'package:yaml/yaml.dart' as yaml;
+import 'package:ffigen/src/strings.dart' as strings;
+
+import '../test_utils.dart';
+
+Library actual, expected;
+final functionPrefix = 'fff';
+final structPrefix = 'sss';
+final enumPrefix = 'eee';
+final macroPrefix = 'mmm';
+
+void main() {
+ group('rename_test', () {
+ setUpAll(() {
+ logWarnings();
+ expected = expectedLibrary();
+ actual = parser.parse(Config.fromYaml(yaml.loadYaml('''
+${strings.name}: 'NativeLibrary'
+${strings.description}: 'Rename Test'
+${strings.output}: 'unused'
+
+${strings.headers}:
+ ${strings.entryPoints}:
+ - 'test/rename_tests/rename.h'
+
+functions:
+ ${strings.rename}:
+ 'test_(.*)': '\$1'
+ '.*': '$functionPrefix\$0'
+ 'fullMatch_func3': 'func3'
+
+
+structs:
+ ${strings.rename}:
+ 'Test_(.*)': '\$1'
+ '.*': '$structPrefix\$0'
+ 'FullMatchStruct3': 'Struct3'
+
+enums:
+ ${strings.rename}:
+ 'Test_(.*)': '\$1'
+ '.*': '$enumPrefix\$0'
+ 'FullMatchEnum3': 'Enum3'
+
+macros:
+ ${strings.rename}:
+ 'Test_(.*)': '\$1'
+ '.*': '$macroPrefix\$0'
+ 'FullMatchMacro3': 'Macro3'
+
+ ''') as yaml.YamlMap));
+ });
+
+ test('Function addPrefix', () {
+ expect(actual.getBindingAsString('${functionPrefix}func1'),
+ expected.getBindingAsString('${functionPrefix}func1'));
+ });
+ test('Struct addPrefix', () {
+ expect(actual.getBindingAsString('${structPrefix}Struct1'),
+ expected.getBindingAsString('${structPrefix}Struct1'));
+ });
+ test('Enum addPrefix', () {
+ expect(actual.getBindingAsString('${enumPrefix}Enum1'),
+ expected.getBindingAsString('${enumPrefix}Enum1'));
+ });
+ test('Macro addPrefix', () {
+ expect(actual.getBindingAsString('${macroPrefix}Macro1'),
+ expected.getBindingAsString('${macroPrefix}Macro1'));
+ });
+ test('Function rename with pattern', () {
+ expect(actual.getBindingAsString('func2'),
+ expected.getBindingAsString('func2'));
+ });
+ test('Struct rename with pattern', () {
+ expect(actual.getBindingAsString('Struct2'),
+ expected.getBindingAsString('Struct2'));
+ });
+ test('Enum rename with pattern', () {
+ expect(actual.getBindingAsString('Enum2'),
+ expected.getBindingAsString('Enum2'));
+ });
+ test('Macro rename with pattern', () {
+ expect(actual.getBindingAsString('Macro2'),
+ expected.getBindingAsString('Macro2'));
+ });
+ test('Function full match rename', () {
+ expect(actual.getBindingAsString('func3'),
+ expected.getBindingAsString('func3'));
+ });
+ test('Struct full match rename', () {
+ expect(actual.getBindingAsString('Struct3'),
+ expected.getBindingAsString('Struct3'));
+ });
+ test('Enum full match rename', () {
+ expect(actual.getBindingAsString('Enum3'),
+ expected.getBindingAsString('Enum3'));
+ });
+ test('Macro full match rename', () {
+ expect(actual.getBindingAsString('Macro3'),
+ expected.getBindingAsString('Macro3'));
+ });
+ });
+}
+
+Library expectedLibrary() {
+ final struc1 = Struc(name: '${structPrefix}Struct1');
+ final struc2 = Struc(name: 'Struct2');
+ final struc3 = Struc(name: 'Struct3');
+ return Library(
+ name: 'Bindings',
+ bindings: [
+ Func(
+ name: '${functionPrefix}func1',
+ originalName: 'func1',
+ returnType: Type.nativeType(
+ SupportedNativeType.Void,
+ ),
+ parameters: [
+ Parameter(
+ name: 's',
+ type: Type.pointer(Type.struct(struc1)),
+ ),
+ ],
+ ),
+ Func(
+ name: 'func2',
+ originalName: 'test_func2',
+ returnType: Type.nativeType(
+ SupportedNativeType.Void,
+ ),
+ parameters: [
+ Parameter(
+ name: 's',
+ type: Type.pointer(Type.struct(struc2)),
+ ),
+ ],
+ ),
+ Func(
+ name: 'func3',
+ originalName: 'fullMatch_func3',
+ returnType: Type.nativeType(
+ SupportedNativeType.Void,
+ ),
+ parameters: [
+ Parameter(
+ name: 's',
+ type: Type.pointer(Type.struct(struc3)),
+ ),
+ ],
+ ),
+ struc1,
+ struc2,
+ struc3,
+ EnumClass(
+ name: '${enumPrefix}Enum1',
+ enumConstants: [
+ EnumConstant(name: 'a', value: 0),
+ EnumConstant(name: 'b', value: 1),
+ EnumConstant(name: 'c', value: 2),
+ ],
+ ),
+ EnumClass(
+ name: 'Enum2',
+ enumConstants: [
+ EnumConstant(name: 'e', value: 0),
+ EnumConstant(name: 'f', value: 1),
+ EnumConstant(name: 'g', value: 2),
+ ],
+ ),
+ EnumClass(
+ name: 'Enum3',
+ enumConstants: [
+ EnumConstant(name: 'i', value: 0),
+ EnumConstant(name: 'j', value: 1),
+ EnumConstant(name: 'k', value: 2),
+ ],
+ ),
+ Constant(
+ name: '${macroPrefix}Macro1',
+ rawType: 'int',
+ rawValue: '1',
+ ),
+ Constant(
+ name: 'Macro2',
+ rawType: 'int',
+ rawValue: '2',
+ ),
+ Constant(
+ name: 'Macro3',
+ rawType: 'int',
+ rawValue: '3',
+ ),
+ ],
+ );
+}
diff --git a/tool/libclang_config.yaml b/tool/libclang_config.yaml
index 8526317..a6db376 100644
--- a/tool/libclang_config.yaml
+++ b/tool/libclang_config.yaml
@@ -26,74 +26,71 @@
enums:
include:
- names:
- - CXChildVisitResult
- - CXCursorKind
- - CXTypeKind
- - CXDiagnosticDisplayOptions
- - CXTranslationUnit_Flags
- - CXEvalResultKind
+ - CXChildVisitResult
+ - CXCursorKind
+ - CXTypeKind
+ - CXDiagnosticDisplayOptions
+ - CXTranslationUnit_Flags
+ - CXEvalResultKind
structs:
include:
- names:
- - CXCursor
- - CXType
- - CXSourceLocation
- - CXString
- - CXTranslationUnitImpl
- - CXUnsavedFile
- - CXSourceRange
+ - CXCursor
+ - CXType
+ - CXSourceLocation
+ - CXString
+ - CXTranslationUnitImpl
+ - CXUnsavedFile
+ - CXSourceRange
functions:
include:
- names:
- - clang_createIndex
- - clang_disposeIndex
- - clang_getNumDiagnostics
- - clang_getDiagnostic
- - clang_disposeDiagnostic
- - clang_parseTranslationUnit
- - clang_disposeTranslationUnit
- - clang_EvalResult_getKind
- - clang_EvalResult_getAsInt
- - clang_EvalResult_getAsLongLong
- - clang_EvalResult_getAsDouble
- - clang_EvalResult_getAsStr
- - clang_EvalResult_dispose
- - clang_getCString_wrap
- - clang_disposeString_wrap
- - clang_getCursorKind_wrap
- - clang_getCursorKindSpelling_wrap
- - clang_getCursorType_wrap
- - clang_getTypeSpelling_wrap
- - clang_getTypeKindSpelling_wrap
- - clang_getResultType_wrap
- - clang_getPointeeType_wrap
- - clang_getCanonicalType_wrap
- - clang_Type_getNamedType_wrap
- - clang_getTypeDeclaration_wrap
- - clang_getTypedefDeclUnderlyingType_wrap
- - clang_getCursorSpelling_wrap
- - clang_getTranslationUnitCursor_wrap
- - clang_formatDiagnostic_wrap
- - clang_visitChildren_wrap
- - clang_Cursor_getNumArguments_wrap
- - clang_Cursor_getArgument_wrap
- - clang_getNumArgTypes_wrap
- - clang_getArgType_wrap
- - clang_getEnumConstantDeclValue_wrap
- - clang_equalRanges_wrap
- - clang_Cursor_getCommentRange_wrap
- - clang_Cursor_getRawCommentText_wrap
- - clang_Cursor_getBriefCommentText_wrap
- - clang_getCursorLocation_wrap
- - clang_getFileLocation_wrap
- - clang_getFileName_wrap
- - clang_getNumElements_wrap
- - clang_getArrayElementType_wrap
- - clang_Cursor_isMacroFunctionLike_wrap
- - clang_Cursor_isMacroBuiltin_wrap
- - clang_Cursor_Evaluate_wrap
- - clang_Cursor_isAnonymous_wrap
- - clang_Cursor_isAnonymousRecordDecl_wrap
+ - clang_createIndex
+ - clang_disposeIndex
+ - clang_getNumDiagnostics
+ - clang_getDiagnostic
+ - clang_disposeDiagnostic
+ - clang_parseTranslationUnit
+ - clang_disposeTranslationUnit
+ - clang_EvalResult_getKind
+ - clang_EvalResult_getAsInt
+ - clang_EvalResult_getAsLongLong
+ - clang_EvalResult_getAsDouble
+ - clang_EvalResult_getAsStr
+ - clang_EvalResult_dispose
+ - clang_getCString_wrap
+ - clang_disposeString_wrap
+ - clang_getCursorKind_wrap
+ - clang_getCursorKindSpelling_wrap
+ - clang_getCursorType_wrap
+ - clang_getTypeSpelling_wrap
+ - clang_getTypeKindSpelling_wrap
+ - clang_getResultType_wrap
+ - clang_getPointeeType_wrap
+ - clang_getCanonicalType_wrap
+ - clang_Type_getNamedType_wrap
+ - clang_getTypeDeclaration_wrap
+ - clang_getTypedefDeclUnderlyingType_wrap
+ - clang_getCursorSpelling_wrap
+ - clang_getTranslationUnitCursor_wrap
+ - clang_formatDiagnostic_wrap
+ - clang_visitChildren_wrap
+ - clang_Cursor_getNumArguments_wrap
+ - clang_Cursor_getArgument_wrap
+ - clang_getNumArgTypes_wrap
+ - clang_getArgType_wrap
+ - clang_getEnumConstantDeclValue_wrap
+ - clang_equalRanges_wrap
+ - clang_Cursor_getCommentRange_wrap
+ - clang_Cursor_getRawCommentText_wrap
+ - clang_Cursor_getBriefCommentText_wrap
+ - clang_getCursorLocation_wrap
+ - clang_getFileLocation_wrap
+ - clang_getFileName_wrap
+ - clang_getNumElements_wrap
+ - clang_getArrayElementType_wrap
+ - clang_Cursor_isMacroFunctionLike_wrap
+ - clang_Cursor_isMacroBuiltin_wrap
+ - clang_Cursor_Evaluate_wrap
+ - clang_Cursor_isAnonymous_wrap
+ - clang_Cursor_isAnonymousRecordDecl_wrap