in lib/src/code_generator/type.dart [260:291]
String getCType(Writer w) {
switch (broadType) {
case BroadType.NativeType:
return '${w.ffiLibraryPrefix}.${_primitives[nativeType!]!.c}';
case BroadType.Pointer:
return '${w.ffiLibraryPrefix}.Pointer<${child!.getCType(w)}>';
case BroadType.Compound:
return compound!.name;
case BroadType.Enum:
return '${w.ffiLibraryPrefix}.${_primitives[enumNativeType]!.c}';
case BroadType.NativeFunction:
return '${w.ffiLibraryPrefix}.NativeFunction<${nativeFunc!.type.getCType(w)}>';
case BroadType
.IncompleteArray: // Array parameters are treated as Pointers in C.
return '${w.ffiLibraryPrefix}.Pointer<${child!.getCType(w)}>';
case BroadType
.ConstantArray: // Array parameters are treated as Pointers in C.
return '${w.ffiLibraryPrefix}.Pointer<${child!.getCType(w)}>';
case BroadType.Boolean: // Booleans are treated as uint8.
return '${w.ffiLibraryPrefix}.${_primitives[SupportedNativeType.Uint8]!.c}';
case BroadType.Handle:
return '${w.ffiLibraryPrefix}.Handle';
case BroadType.FunctionType:
return functionType!.getCType(w);
case BroadType.ImportedType:
return '${importedType!.libraryImport.prefix}.${importedType!.cType}';
case BroadType.Typealias:
return typealias!.name;
case BroadType.Unimplemented:
throw UnimplementedError('C type unknown for ${broadType.toString()}');
}
}