[ffigen] Create more tests and move them to separate files. (#330)
diff --git a/pkgs/ffigen/test/native_objc_test/method_bindings.dart b/pkgs/ffigen/test/native_objc_test/method_bindings.dart new file mode 100644 index 0000000..4c74d24 --- /dev/null +++ b/pkgs/ffigen/test/native_objc_test/method_bindings.dart
@@ -0,0 +1,1594 @@ +// ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field + +// AUTO GENERATED FILE, DO NOT EDIT. +// +// Generated by `package:ffigen`. +import 'dart:ffi' as ffi; +import 'package:ffi/ffi.dart' as pkg_ffi; + +/// Tests calling Objective-C methods +class MethodTestObjCLibrary { + /// Holds the symbol lookup function. + final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName) + _lookup; + + /// The symbols are looked up in [dynamicLibrary]. + MethodTestObjCLibrary(ffi.DynamicLibrary dynamicLibrary) + : _lookup = dynamicLibrary.lookup; + + /// The symbols are looked up with [lookup]. + MethodTestObjCLibrary.fromLookup( + ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName) + lookup) + : _lookup = lookup; + + late final ffi.Pointer<ffi.Double> _NSFoundationVersionNumber = + _lookup<ffi.Double>('NSFoundationVersionNumber'); + + double get NSFoundationVersionNumber => _NSFoundationVersionNumber.value; + + set NSFoundationVersionNumber(double value) => + _NSFoundationVersionNumber.value = value; + + late final ffi.Pointer<NSInteger> _NSNotFound = + _lookup<NSInteger>('NSNotFound'); + + int get NSNotFound => _NSNotFound.value; + + set NSNotFound(int value) => _NSNotFound.value = value; + + late final ffi.Pointer<ffi.Double> _kCFCoreFoundationVersionNumber = + _lookup<ffi.Double>('kCFCoreFoundationVersionNumber'); + + double get kCFCoreFoundationVersionNumber => + _kCFCoreFoundationVersionNumber.value; + + set kCFCoreFoundationVersionNumber(double value) => + _kCFCoreFoundationVersionNumber.value = value; + + late final ffi.Pointer<CFIndex> _kCFNotFound = + _lookup<CFIndex>('kCFNotFound'); + + int get kCFNotFound => _kCFNotFound.value; + + set kCFNotFound(int value) => _kCFNotFound.value = value; + + late final ffi.Pointer<CFNullRef> _kCFNull = _lookup<CFNullRef>('kCFNull'); + + CFNullRef get kCFNull => _kCFNull.value; + + set kCFNull(CFNullRef value) => _kCFNull.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorDefault = + _lookup<CFAllocatorRef>('kCFAllocatorDefault'); + + CFAllocatorRef get kCFAllocatorDefault => _kCFAllocatorDefault.value; + + set kCFAllocatorDefault(CFAllocatorRef value) => + _kCFAllocatorDefault.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorSystemDefault = + _lookup<CFAllocatorRef>('kCFAllocatorSystemDefault'); + + CFAllocatorRef get kCFAllocatorSystemDefault => + _kCFAllocatorSystemDefault.value; + + set kCFAllocatorSystemDefault(CFAllocatorRef value) => + _kCFAllocatorSystemDefault.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorMalloc = + _lookup<CFAllocatorRef>('kCFAllocatorMalloc'); + + CFAllocatorRef get kCFAllocatorMalloc => _kCFAllocatorMalloc.value; + + set kCFAllocatorMalloc(CFAllocatorRef value) => + _kCFAllocatorMalloc.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorMallocZone = + _lookup<CFAllocatorRef>('kCFAllocatorMallocZone'); + + CFAllocatorRef get kCFAllocatorMallocZone => _kCFAllocatorMallocZone.value; + + set kCFAllocatorMallocZone(CFAllocatorRef value) => + _kCFAllocatorMallocZone.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorNull = + _lookup<CFAllocatorRef>('kCFAllocatorNull'); + + CFAllocatorRef get kCFAllocatorNull => _kCFAllocatorNull.value; + + set kCFAllocatorNull(CFAllocatorRef value) => _kCFAllocatorNull.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorUseContext = + _lookup<CFAllocatorRef>('kCFAllocatorUseContext'); + + CFAllocatorRef get kCFAllocatorUseContext => _kCFAllocatorUseContext.value; + + set kCFAllocatorUseContext(CFAllocatorRef value) => + _kCFAllocatorUseContext.value = value; + + ffi.Pointer<ObjCSel> _sel_registerName( + ffi.Pointer<pkg_ffi.Char> str, + ) { + return __sel_registerName( + str, + ); + } + + late final __sel_registerNamePtr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCSel> Function( + ffi.Pointer<pkg_ffi.Char>)>>('sel_registerName'); + late final __sel_registerName = __sel_registerNamePtr + .asFunction<ffi.Pointer<ObjCSel> Function(ffi.Pointer<pkg_ffi.Char>)>(); + + ffi.Pointer<ObjCObject> _objc_getClass( + ffi.Pointer<pkg_ffi.Char> str, + ) { + return __objc_getClass( + str, + ); + } + + late final __objc_getClassPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<pkg_ffi.Char>)>>('objc_getClass'); + late final __objc_getClass = __objc_getClassPtr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<pkg_ffi.Char>)>(); + + void _objc_msgSend_0( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_0( + obj, + sel, + ); + } + + late final __objc_msgSend_0Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_0 = __objc_msgSend_0Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + instancetype _objc_msgSend_1( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_1( + obj, + sel, + ); + } + + late final __objc_msgSend_1Ptr = _lookup< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_1 = __objc_msgSend_1Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + instancetype _objc_msgSend_2( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<_NSZone> zone, + ) { + return __objc_msgSend_2( + obj, + sel, + zone, + ); + } + + late final __objc_msgSend_2Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<_NSZone>)>>('objc_msgSend'); + late final __objc_msgSend_2 = __objc_msgSend_2Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<_NSZone>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_3( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_3( + obj, + sel, + ); + } + + late final __objc_msgSend_3Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_3 = __objc_msgSend_3Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_4( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_4( + obj, + sel, + ); + } + + late final __objc_msgSend_4Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_4 = __objc_msgSend_4Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_5( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<_NSZone> zone, + ) { + return __objc_msgSend_5( + obj, + sel, + zone, + ); + } + + late final __objc_msgSend_5Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<_NSZone>)>>('objc_msgSend'); + late final __objc_msgSend_5 = __objc_msgSend_5Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<_NSZone>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_6( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<_NSZone> zone, + ) { + return __objc_msgSend_6( + obj, + sel, + zone, + ); + } + + late final __objc_msgSend_6Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<_NSZone>)>>('objc_msgSend'); + late final __objc_msgSend_6 = __objc_msgSend_6Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<_NSZone>)>(); + + bool _objc_msgSend_7( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_7( + obj, + sel, + aSelector, + ) != + 0; + } + + late final __objc_msgSend_7Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_7 = __objc_msgSend_7Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + bool _objc_msgSend_8( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> protocol, + ) { + return __objc_msgSend_8( + obj, + sel, + protocol, + ) != + 0; + } + + late final __objc_msgSend_8Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_8 = __objc_msgSend_8Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + IMP _objc_msgSend_9( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_9( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_9Ptr = _lookup< + ffi.NativeFunction< + IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_9 = __objc_msgSend_9Ptr.asFunction< + IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + IMP _objc_msgSend_10( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_10( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_10Ptr = _lookup< + ffi.NativeFunction< + IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_10 = __objc_msgSend_10Ptr.asFunction< + IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + void _objc_msgSend_11( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_11( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_11Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_11 = __objc_msgSend_11Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_12( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_12( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_12Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_12 = __objc_msgSend_12Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>(); + + void _objc_msgSend_13( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> anInvocation, + ) { + return __objc_msgSend_13( + obj, + sel, + anInvocation, + ); + } + + late final __objc_msgSend_13Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_13 = __objc_msgSend_13Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_14( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_14( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_14Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_14 = __objc_msgSend_14Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_15( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_15( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_15Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_15 = __objc_msgSend_15Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>(); + + bool _objc_msgSend_16( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_16( + obj, + sel, + ) != + 0; + } + + late final __objc_msgSend_16Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_16 = __objc_msgSend_16Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + bool _objc_msgSend_17( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> aClass, + ) { + return __objc_msgSend_17( + obj, + sel, + aClass, + ) != + 0; + } + + late final __objc_msgSend_17Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_17 = __objc_msgSend_17Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + bool _objc_msgSend_18( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> sel1, + ) { + return __objc_msgSend_18( + obj, + sel, + sel1, + ) != + 0; + } + + late final __objc_msgSend_18Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_18 = __objc_msgSend_18Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + bool _objc_msgSend_19( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> sel1, + ) { + return __objc_msgSend_19( + obj, + sel, + sel1, + ) != + 0; + } + + late final __objc_msgSend_19Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_19 = __objc_msgSend_19Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_20( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_20( + obj, + sel, + ); + } + + late final __objc_msgSend_20Ptr = _lookup< + ffi.NativeFunction< + NSUInteger Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_20 = __objc_msgSend_20Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_21( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_21( + obj, + sel, + ); + } + + late final __objc_msgSend_21Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_21 = __objc_msgSend_21Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_22( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_22( + obj, + sel, + ); + } + + late final __objc_msgSend_22Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_22 = __objc_msgSend_22Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_23( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<pkg_ffi.Char> cString, + int enc, + ) { + return __objc_msgSend_23( + obj, + sel, + cString, + enc, + ); + } + + late final __objc_msgSend_23Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<pkg_ffi.Char>, + pkg_ffi.UnsignedInt)>>('objc_msgSend'); + late final __objc_msgSend_23 = __objc_msgSend_23Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<pkg_ffi.Char>, int)>(); + + ffi.Pointer<pkg_ffi.Char> _objc_msgSend_24( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_24( + obj, + sel, + ); + } + + late final __objc_msgSend_24Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<pkg_ffi.Char> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_24 = __objc_msgSend_24Ptr.asFunction< + ffi.Pointer<pkg_ffi.Char> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_25( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_25( + obj, + sel, + ); + } + + late final __objc_msgSend_25Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_25 = __objc_msgSend_25Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_26( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_26( + obj, + sel, + ); + } + + late final __objc_msgSend_26Ptr = _lookup< + ffi.NativeFunction< + ffi.Int32 Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_26 = __objc_msgSend_26Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_27( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int x, + ) { + return __objc_msgSend_27( + obj, + sel, + x, + ); + } + + late final __objc_msgSend_27Ptr = _lookup< + ffi.NativeFunction< + ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Int32)>>('objc_msgSend'); + late final __objc_msgSend_27 = __objc_msgSend_27Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + int _objc_msgSend_28( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int x, + int y, + ) { + return __objc_msgSend_28( + obj, + sel, + x, + y, + ); + } + + late final __objc_msgSend_28Ptr = _lookup< + ffi.NativeFunction< + ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Int32, ffi.Int32)>>('objc_msgSend'); + late final __objc_msgSend_28 = __objc_msgSend_28Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int)>(); + + int _objc_msgSend_29( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int x, + int y, + int z, + ) { + return __objc_msgSend_29( + obj, + sel, + x, + y, + z, + ); + } + + late final __objc_msgSend_29Ptr = _lookup< + ffi.NativeFunction< + ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Int32, ffi.Int32, ffi.Int32)>>('objc_msgSend'); + late final __objc_msgSend_29 = __objc_msgSend_29Ptr.asFunction< + int Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int, int)>(); +} + +abstract class NSComparisonResult { + static const int NSOrderedAscending = -1; + static const int NSOrderedSame = 0; + static const int NSOrderedDescending = 1; +} + +abstract class NSEnumerationOptions { + static const int NSEnumerationConcurrent = 1; + static const int NSEnumerationReverse = 2; +} + +abstract class NSSortOptions { + static const int NSSortConcurrent = 1; + static const int NSSortStable = 16; +} + +abstract class NSQualityOfService { + static const int NSQualityOfServiceUserInteractive = 33; + static const int NSQualityOfServiceUserInitiated = 25; + static const int NSQualityOfServiceUtility = 17; + static const int NSQualityOfServiceBackground = 9; + static const int NSQualityOfServiceDefault = -1; +} + +typedef NSInteger = pkg_ffi.Long; + +class __CFString extends ffi.Opaque {} + +abstract class CFComparisonResult { + static const int kCFCompareLessThan = -1; + static const int kCFCompareEqualTo = 0; + static const int kCFCompareGreaterThan = 1; +} + +typedef CFIndex = pkg_ffi.Long; + +class CFRange extends ffi.Struct { + @CFIndex() + external int location; + + @CFIndex() + external int length; +} + +class __CFNull extends ffi.Opaque {} + +typedef CFNullRef = ffi.Pointer<__CFNull>; + +class __CFAllocator extends ffi.Opaque {} + +typedef CFAllocatorRef = ffi.Pointer<__CFAllocator>; + +class CFAllocatorContext extends ffi.Struct { + @CFIndex() + external int version; + + external ffi.Pointer<ffi.Void> info; + + external CFAllocatorRetainCallBack retain; + + external CFAllocatorReleaseCallBack release; + + external CFAllocatorCopyDescriptionCallBack copyDescription; + + external CFAllocatorAllocateCallBack allocate; + + external CFAllocatorReallocateCallBack reallocate; + + external CFAllocatorDeallocateCallBack deallocate; + + external CFAllocatorPreferredSizeCallBack preferredSize; +} + +typedef CFAllocatorRetainCallBack = ffi.Pointer< + ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.Pointer<ffi.Void>)>>; +typedef CFAllocatorReleaseCallBack + = ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>; +typedef CFAllocatorCopyDescriptionCallBack = ffi + .Pointer<ffi.NativeFunction<CFStringRef Function(ffi.Pointer<ffi.Void>)>>; +typedef CFStringRef = ffi.Pointer<__CFString>; +typedef CFAllocatorAllocateCallBack = ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer<ffi.Void> Function( + CFIndex, CFOptionFlags, ffi.Pointer<ffi.Void>)>>; +typedef CFOptionFlags = pkg_ffi.UnsignedLong; +typedef CFAllocatorReallocateCallBack = ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer<ffi.Void> Function(ffi.Pointer<ffi.Void>, CFIndex, + CFOptionFlags, ffi.Pointer<ffi.Void>)>>; +typedef CFAllocatorDeallocateCallBack = ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Void>)>>; +typedef CFAllocatorPreferredSizeCallBack = ffi.Pointer< + ffi.NativeFunction< + CFIndex Function(CFIndex, CFOptionFlags, ffi.Pointer<ffi.Void>)>>; + +ffi.Pointer<ObjCSel> _registerName(MethodTestObjCLibrary _lib, String name) { + final cstr = name.toNativeUtf8(); + final sel = _lib._sel_registerName(cstr.cast()); + pkg_ffi.calloc.free(cstr); + return sel; +} + +ffi.Pointer<ObjCObject> _getClass(MethodTestObjCLibrary _lib, String name) { + final cstr = name.toNativeUtf8(); + final clazz = _lib._objc_getClass(cstr.cast()); + pkg_ffi.calloc.free(cstr); + return clazz; +} + +class _ObjCWrapper { + final ffi.Pointer<ObjCObject> _id; + final MethodTestObjCLibrary _lib; + _ObjCWrapper._(this._id, this._lib); +} + +class MethodInterface extends NSObject { + MethodInterface._(ffi.Pointer<ObjCObject> id, MethodTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static MethodInterface castFrom<T extends _ObjCWrapper>(T other) { + return MethodInterface._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_add; + int add() { + _sel_add ??= _registerName(_lib, "add"); + return _lib._objc_msgSend_26(_id, _sel_add!); + } + + static ffi.Pointer<ObjCSel>? _sel_add1; + int add1(int x) { + _sel_add1 ??= _registerName(_lib, "add:"); + return _lib._objc_msgSend_27(_id, _sel_add1!, x); + } + + static ffi.Pointer<ObjCSel>? _sel_add_Y; + int add_Y(int x, int y) { + _sel_add_Y ??= _registerName(_lib, "add:Y:"); + return _lib._objc_msgSend_28(_id, _sel_add_Y!, x, y); + } + + static ffi.Pointer<ObjCSel>? _sel_add_Y_Z; + int add_Y_Z(int x, int y, int z) { + _sel_add_Y_Z ??= _registerName(_lib, "add:Y:Z:"); + return _lib._objc_msgSend_29(_id, _sel_add_Y_Z!, x, y, z); + } + + static ffi.Pointer<ObjCSel>? _sel_sub; + static int sub(MethodTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "MethodInterface"); + _sel_sub ??= _registerName(_lib, "sub"); + return _lib._objc_msgSend_26(_class!, _sel_sub!); + } + + static ffi.Pointer<ObjCSel>? _sel_sub1; + static int sub1(MethodTestObjCLibrary _lib, int x) { + _class ??= _getClass(_lib, "MethodInterface"); + _sel_sub1 ??= _registerName(_lib, "sub:"); + return _lib._objc_msgSend_27(_class!, _sel_sub1!, x); + } + + static ffi.Pointer<ObjCSel>? _sel_sub_Y; + static int sub_Y(MethodTestObjCLibrary _lib, int x, int y) { + _class ??= _getClass(_lib, "MethodInterface"); + _sel_sub_Y ??= _registerName(_lib, "sub:Y:"); + return _lib._objc_msgSend_28(_class!, _sel_sub_Y!, x, y); + } + + static ffi.Pointer<ObjCSel>? _sel_sub_Y_Z; + static int sub_Y_Z(MethodTestObjCLibrary _lib, int x, int y, int z) { + _class ??= _getClass(_lib, "MethodInterface"); + _sel_sub_Y_Z ??= _registerName(_lib, "sub:Y:Z:"); + return _lib._objc_msgSend_29(_class!, _sel_sub_Y_Z!, x, y, z); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static MethodInterface new1(MethodTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "MethodInterface"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return MethodInterface._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static MethodInterface alloc(MethodTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "MethodInterface"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return MethodInterface._(_ret, _lib); + } +} + +class NSObject extends _ObjCWrapper { + NSObject._(ffi.Pointer<ObjCObject> id, MethodTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSObject castFrom<T extends _ObjCWrapper>(T other) { + return NSObject._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_load; + static void load(MethodTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_load ??= _registerName(_lib, "load"); + _lib._objc_msgSend_0(_class!, _sel_load!); + } + + static ffi.Pointer<ObjCSel>? _sel_initialize; + static void initialize(MethodTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_initialize ??= _registerName(_lib, "initialize"); + _lib._objc_msgSend_0(_class!, _sel_initialize!); + } + + static ffi.Pointer<ObjCSel>? _sel_init; + NSObject init() { + _sel_init ??= _registerName(_lib, "init"); + final _ret = _lib._objc_msgSend_1(_id, _sel_init!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSObject new1(MethodTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_allocWithZone; + static NSObject allocWithZone( + MethodTestObjCLibrary _lib, ffi.Pointer<_NSZone> zone) { + _class ??= _getClass(_lib, "NSObject"); + _sel_allocWithZone ??= _registerName(_lib, "allocWithZone:"); + final _ret = _lib._objc_msgSend_2(_class!, _sel_allocWithZone!, zone); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSObject alloc(MethodTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_dealloc; + void dealloc() { + _sel_dealloc ??= _registerName(_lib, "dealloc"); + _lib._objc_msgSend_0(_id, _sel_dealloc!); + } + + static ffi.Pointer<ObjCSel>? _sel_finalize; + void finalize() { + _sel_finalize ??= _registerName(_lib, "finalize"); + _lib._objc_msgSend_0(_id, _sel_finalize!); + } + + static ffi.Pointer<ObjCSel>? _sel_copy; + NSObject copy() { + _sel_copy ??= _registerName(_lib, "copy"); + final _ret = _lib._objc_msgSend_3(_id, _sel_copy!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_mutableCopy; + NSObject mutableCopy() { + _sel_mutableCopy ??= _registerName(_lib, "mutableCopy"); + final _ret = _lib._objc_msgSend_4(_id, _sel_mutableCopy!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_copyWithZone; + static NSObject copyWithZone( + MethodTestObjCLibrary _lib, ffi.Pointer<_NSZone> zone) { + _class ??= _getClass(_lib, "NSObject"); + _sel_copyWithZone ??= _registerName(_lib, "copyWithZone:"); + final _ret = _lib._objc_msgSend_5(_class!, _sel_copyWithZone!, zone); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_mutableCopyWithZone; + static NSObject mutableCopyWithZone( + MethodTestObjCLibrary _lib, ffi.Pointer<_NSZone> zone) { + _class ??= _getClass(_lib, "NSObject"); + _sel_mutableCopyWithZone ??= _registerName(_lib, "mutableCopyWithZone:"); + final _ret = _lib._objc_msgSend_6(_class!, _sel_mutableCopyWithZone!, zone); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_instancesRespondToSelector; + static bool instancesRespondToSelector( + MethodTestObjCLibrary _lib, ffi.Pointer<ObjCSel> aSelector) { + _class ??= _getClass(_lib, "NSObject"); + _sel_instancesRespondToSelector ??= + _registerName(_lib, "instancesRespondToSelector:"); + return _lib._objc_msgSend_7( + _class!, _sel_instancesRespondToSelector!, aSelector); + } + + static ffi.Pointer<ObjCSel>? _sel_conformsToProtocol; + static bool conformsToProtocol( + MethodTestObjCLibrary _lib, NSObject protocol) { + _class ??= _getClass(_lib, "NSObject"); + _sel_conformsToProtocol ??= _registerName(_lib, "conformsToProtocol:"); + return _lib._objc_msgSend_8( + _class!, _sel_conformsToProtocol!, protocol._id); + } + + static ffi.Pointer<ObjCSel>? _sel_methodForSelector; + IMP methodForSelector(ffi.Pointer<ObjCSel> aSelector) { + _sel_methodForSelector ??= _registerName(_lib, "methodForSelector:"); + return _lib._objc_msgSend_9(_id, _sel_methodForSelector!, aSelector); + } + + static ffi.Pointer<ObjCSel>? _sel_instanceMethodForSelector; + static IMP instanceMethodForSelector( + MethodTestObjCLibrary _lib, ffi.Pointer<ObjCSel> aSelector) { + _class ??= _getClass(_lib, "NSObject"); + _sel_instanceMethodForSelector ??= + _registerName(_lib, "instanceMethodForSelector:"); + return _lib._objc_msgSend_10( + _class!, _sel_instanceMethodForSelector!, aSelector); + } + + static ffi.Pointer<ObjCSel>? _sel_doesNotRecognizeSelector; + void doesNotRecognizeSelector(ffi.Pointer<ObjCSel> aSelector) { + _sel_doesNotRecognizeSelector ??= + _registerName(_lib, "doesNotRecognizeSelector:"); + _lib._objc_msgSend_11(_id, _sel_doesNotRecognizeSelector!, aSelector); + } + + static ffi.Pointer<ObjCSel>? _sel_forwardingTargetForSelector; + NSObject forwardingTargetForSelector(ffi.Pointer<ObjCSel> aSelector) { + _sel_forwardingTargetForSelector ??= + _registerName(_lib, "forwardingTargetForSelector:"); + final _ret = _lib._objc_msgSend_12( + _id, _sel_forwardingTargetForSelector!, aSelector); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_forwardInvocation; + void forwardInvocation(NSObject anInvocation) { + _sel_forwardInvocation ??= _registerName(_lib, "forwardInvocation:"); + _lib._objc_msgSend_13(_id, _sel_forwardInvocation!, anInvocation._id); + } + + static ffi.Pointer<ObjCSel>? _sel_methodSignatureForSelector; + NSMethodSignature methodSignatureForSelector(ffi.Pointer<ObjCSel> aSelector) { + _sel_methodSignatureForSelector ??= + _registerName(_lib, "methodSignatureForSelector:"); + final _ret = + _lib._objc_msgSend_14(_id, _sel_methodSignatureForSelector!, aSelector); + return NSMethodSignature._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_instanceMethodSignatureForSelector; + static NSMethodSignature instanceMethodSignatureForSelector( + MethodTestObjCLibrary _lib, ffi.Pointer<ObjCSel> aSelector) { + _class ??= _getClass(_lib, "NSObject"); + _sel_instanceMethodSignatureForSelector ??= + _registerName(_lib, "instanceMethodSignatureForSelector:"); + final _ret = _lib._objc_msgSend_15( + _class!, _sel_instanceMethodSignatureForSelector!, aSelector); + return NSMethodSignature._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_allowsWeakReference; + bool allowsWeakReference() { + _sel_allowsWeakReference ??= _registerName(_lib, "allowsWeakReference"); + return _lib._objc_msgSend_16(_id, _sel_allowsWeakReference!); + } + + static ffi.Pointer<ObjCSel>? _sel_retainWeakReference; + bool retainWeakReference() { + _sel_retainWeakReference ??= _registerName(_lib, "retainWeakReference"); + return _lib._objc_msgSend_16(_id, _sel_retainWeakReference!); + } + + static ffi.Pointer<ObjCSel>? _sel_isSubclassOfClass; + static bool isSubclassOfClass(MethodTestObjCLibrary _lib, NSObject aClass) { + _class ??= _getClass(_lib, "NSObject"); + _sel_isSubclassOfClass ??= _registerName(_lib, "isSubclassOfClass:"); + return _lib._objc_msgSend_17(_class!, _sel_isSubclassOfClass!, aClass._id); + } + + static ffi.Pointer<ObjCSel>? _sel_resolveClassMethod; + static bool resolveClassMethod( + MethodTestObjCLibrary _lib, ffi.Pointer<ObjCSel> sel) { + _class ??= _getClass(_lib, "NSObject"); + _sel_resolveClassMethod ??= _registerName(_lib, "resolveClassMethod:"); + return _lib._objc_msgSend_18(_class!, _sel_resolveClassMethod!, sel); + } + + static ffi.Pointer<ObjCSel>? _sel_resolveInstanceMethod; + static bool resolveInstanceMethod( + MethodTestObjCLibrary _lib, ffi.Pointer<ObjCSel> sel) { + _class ??= _getClass(_lib, "NSObject"); + _sel_resolveInstanceMethod ??= + _registerName(_lib, "resolveInstanceMethod:"); + return _lib._objc_msgSend_19(_class!, _sel_resolveInstanceMethod!, sel); + } + + static ffi.Pointer<ObjCSel>? _sel_hash; + static int hash(MethodTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_hash ??= _registerName(_lib, "hash"); + return _lib._objc_msgSend_20(_class!, _sel_hash!); + } + + static ffi.Pointer<ObjCSel>? _sel_superclass; + static NSObject superclass(MethodTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_superclass ??= _registerName(_lib, "superclass"); + final _ret = _lib._objc_msgSend_21(_class!, _sel_superclass!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_class1; + static NSObject class1(MethodTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_class1 ??= _registerName(_lib, "class"); + final _ret = _lib._objc_msgSend_22(_class!, _sel_class1!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_description; + static NSString description(MethodTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_description ??= _registerName(_lib, "description"); + final _ret = _lib._objc_msgSend_25(_class!, _sel_description!); + return NSString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_debugDescription; + static NSString debugDescription(MethodTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_debugDescription ??= _registerName(_lib, "debugDescription"); + final _ret = _lib._objc_msgSend_25(_class!, _sel_debugDescription!); + return NSString._(_ret, _lib); + } +} + +typedef instancetype = ffi.Pointer<ObjCObject>; + +class ObjCObject extends ffi.Opaque {} + +class _NSZone extends ffi.Opaque {} + +class ObjCSel extends ffi.Opaque {} + +typedef IMP = ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>; + +class NSMethodSignature extends _ObjCWrapper { + NSMethodSignature._(ffi.Pointer<ObjCObject> id, MethodTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSMethodSignature castFrom<T extends _ObjCWrapper>(T other) { + return NSMethodSignature._(other._id, other._lib); + } +} + +typedef NSUInteger = pkg_ffi.UnsignedLong; + +class NSString extends _ObjCWrapper { + NSString._(ffi.Pointer<ObjCObject> id, MethodTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSString castFrom<T extends _ObjCWrapper>(T other) { + return NSString._(other._id, other._lib); + } + + factory NSString(MethodTestObjCLibrary _lib, String str) { + final cstr = str.toNativeUtf8(); + final nsstr = stringWithCString_encoding(_lib, cstr.cast(), 4 /* UTF8 */); + pkg_ffi.calloc.free(cstr); + return nsstr; + } + + @override + String toString() => UTF8String().cast<pkg_ffi.Utf8>().toDartString(); + + static ffi.Pointer<ObjCSel>? _sel_stringWithCString_encoding; + static NSString stringWithCString_encoding( + MethodTestObjCLibrary _lib, ffi.Pointer<pkg_ffi.Char> cString, int enc) { + _class ??= _getClass(_lib, "NSString"); + _sel_stringWithCString_encoding ??= + _registerName(_lib, "stringWithCString:encoding:"); + final _ret = _lib._objc_msgSend_23( + _class!, _sel_stringWithCString_encoding!, cString, enc); + return NSString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_UTF8String; + ffi.Pointer<pkg_ffi.Char> UTF8String() { + _sel_UTF8String ??= _registerName(_lib, "UTF8String"); + return _lib._objc_msgSend_24(_id, _sel_UTF8String!); + } +} + +extension StringToNSString on String { + NSString toNSString(MethodTestObjCLibrary lib) => NSString(lib, this); +} + +const int NSScannedOption = 1; + +const int NSCollectorDisabledOption = 2; + +const int NS_BLOCKS_AVAILABLE = 1; + +const int __COREFOUNDATION_CFAVAILABILITY__ = 1; + +const int __CF_ENUM_FIXED_IS_AVAILABLE = 1; + +const double NSFoundationVersionNumber10_0 = 397.4; + +const double NSFoundationVersionNumber10_1 = 425.0; + +const double NSFoundationVersionNumber10_1_1 = 425.0; + +const double NSFoundationVersionNumber10_1_2 = 425.0; + +const double NSFoundationVersionNumber10_1_3 = 425.0; + +const double NSFoundationVersionNumber10_1_4 = 425.0; + +const double NSFoundationVersionNumber10_2 = 462.0; + +const double NSFoundationVersionNumber10_2_1 = 462.0; + +const double NSFoundationVersionNumber10_2_2 = 462.0; + +const double NSFoundationVersionNumber10_2_3 = 462.0; + +const double NSFoundationVersionNumber10_2_4 = 462.0; + +const double NSFoundationVersionNumber10_2_5 = 462.0; + +const double NSFoundationVersionNumber10_2_6 = 462.0; + +const double NSFoundationVersionNumber10_2_7 = 462.7; + +const double NSFoundationVersionNumber10_2_8 = 462.7; + +const double NSFoundationVersionNumber10_3 = 500.0; + +const double NSFoundationVersionNumber10_3_1 = 500.0; + +const double NSFoundationVersionNumber10_3_2 = 500.3; + +const double NSFoundationVersionNumber10_3_3 = 500.54; + +const double NSFoundationVersionNumber10_3_4 = 500.56; + +const double NSFoundationVersionNumber10_3_5 = 500.56; + +const double NSFoundationVersionNumber10_3_6 = 500.56; + +const double NSFoundationVersionNumber10_3_7 = 500.56; + +const double NSFoundationVersionNumber10_3_8 = 500.56; + +const double NSFoundationVersionNumber10_3_9 = 500.58; + +const double NSFoundationVersionNumber10_4 = 567.0; + +const double NSFoundationVersionNumber10_4_1 = 567.0; + +const double NSFoundationVersionNumber10_4_2 = 567.12; + +const double NSFoundationVersionNumber10_4_3 = 567.21; + +const double NSFoundationVersionNumber10_4_4_Intel = 567.23; + +const double NSFoundationVersionNumber10_4_4_PowerPC = 567.21; + +const double NSFoundationVersionNumber10_4_5 = 567.25; + +const double NSFoundationVersionNumber10_4_6 = 567.26; + +const double NSFoundationVersionNumber10_4_7 = 567.27; + +const double NSFoundationVersionNumber10_4_8 = 567.28; + +const double NSFoundationVersionNumber10_4_9 = 567.29; + +const double NSFoundationVersionNumber10_4_10 = 567.29; + +const double NSFoundationVersionNumber10_4_11 = 567.36; + +const double NSFoundationVersionNumber10_5 = 677.0; + +const double NSFoundationVersionNumber10_5_1 = 677.1; + +const double NSFoundationVersionNumber10_5_2 = 677.15; + +const double NSFoundationVersionNumber10_5_3 = 677.19; + +const double NSFoundationVersionNumber10_5_4 = 677.19; + +const double NSFoundationVersionNumber10_5_5 = 677.21; + +const double NSFoundationVersionNumber10_5_6 = 677.22; + +const double NSFoundationVersionNumber10_5_7 = 677.24; + +const double NSFoundationVersionNumber10_5_8 = 677.26; + +const double NSFoundationVersionNumber10_6 = 751.0; + +const double NSFoundationVersionNumber10_6_1 = 751.0; + +const double NSFoundationVersionNumber10_6_2 = 751.14; + +const double NSFoundationVersionNumber10_6_3 = 751.21; + +const double NSFoundationVersionNumber10_6_4 = 751.29; + +const double NSFoundationVersionNumber10_6_5 = 751.42; + +const double NSFoundationVersionNumber10_6_6 = 751.53; + +const double NSFoundationVersionNumber10_6_7 = 751.53; + +const double NSFoundationVersionNumber10_6_8 = 751.62; + +const double NSFoundationVersionNumber10_7 = 833.1; + +const double NSFoundationVersionNumber10_7_1 = 833.1; + +const double NSFoundationVersionNumber10_7_2 = 833.2; + +const double NSFoundationVersionNumber10_7_3 = 833.24; + +const double NSFoundationVersionNumber10_7_4 = 833.25; + +const double NSFoundationVersionNumber10_8 = 945.0; + +const double NSFoundationVersionNumber10_8_1 = 945.0; + +const double NSFoundationVersionNumber10_8_2 = 945.11; + +const double NSFoundationVersionNumber10_8_3 = 945.16; + +const double NSFoundationVersionNumber10_8_4 = 945.18; + +const int NSFoundationVersionNumber10_9 = 1056; + +const int NSFoundationVersionNumber10_9_1 = 1056; + +const double NSFoundationVersionNumber10_9_2 = 1056.13; + +const double NSFoundationVersionNumber10_10 = 1151.16; + +const double NSFoundationVersionNumber10_10_1 = 1151.16; + +const double NSFoundationVersionNumber10_10_2 = 1152.14; + +const double NSFoundationVersionNumber10_10_3 = 1153.2; + +const double NSFoundationVersionNumber10_10_4 = 1153.2; + +const int NSFoundationVersionNumber10_10_5 = 1154; + +const int NSFoundationVersionNumber10_10_Max = 1199; + +const int NSFoundationVersionNumber10_11 = 1252; + +const double NSFoundationVersionNumber10_11_1 = 1255.1; + +const double NSFoundationVersionNumber10_11_2 = 1256.1; + +const double NSFoundationVersionNumber10_11_3 = 1256.1; + +const int NSFoundationVersionNumber10_11_4 = 1258; + +const int NSFoundationVersionNumber10_11_Max = 1299; + +const int __COREFOUNDATION_CFBASE__ = 1; + +const int TRUE = 1; + +const int FALSE = 0; + +const double kCFCoreFoundationVersionNumber10_0 = 196.4; + +const double kCFCoreFoundationVersionNumber10_0_3 = 196.5; + +const double kCFCoreFoundationVersionNumber10_1 = 226.0; + +const double kCFCoreFoundationVersionNumber10_1_1 = 226.0; + +const double kCFCoreFoundationVersionNumber10_1_2 = 227.2; + +const double kCFCoreFoundationVersionNumber10_1_3 = 227.2; + +const double kCFCoreFoundationVersionNumber10_1_4 = 227.3; + +const double kCFCoreFoundationVersionNumber10_2 = 263.0; + +const double kCFCoreFoundationVersionNumber10_2_1 = 263.1; + +const double kCFCoreFoundationVersionNumber10_2_2 = 263.1; + +const double kCFCoreFoundationVersionNumber10_2_3 = 263.3; + +const double kCFCoreFoundationVersionNumber10_2_4 = 263.3; + +const double kCFCoreFoundationVersionNumber10_2_5 = 263.5; + +const double kCFCoreFoundationVersionNumber10_2_6 = 263.5; + +const double kCFCoreFoundationVersionNumber10_2_7 = 263.5; + +const double kCFCoreFoundationVersionNumber10_2_8 = 263.5; + +const double kCFCoreFoundationVersionNumber10_3 = 299.0; + +const double kCFCoreFoundationVersionNumber10_3_1 = 299.0; + +const double kCFCoreFoundationVersionNumber10_3_2 = 299.0; + +const double kCFCoreFoundationVersionNumber10_3_3 = 299.3; + +const double kCFCoreFoundationVersionNumber10_3_4 = 299.31; + +const double kCFCoreFoundationVersionNumber10_3_5 = 299.31; + +const double kCFCoreFoundationVersionNumber10_3_6 = 299.32; + +const double kCFCoreFoundationVersionNumber10_3_7 = 299.33; + +const double kCFCoreFoundationVersionNumber10_3_8 = 299.33; + +const double kCFCoreFoundationVersionNumber10_3_9 = 299.35; + +const double kCFCoreFoundationVersionNumber10_4 = 368.0; + +const double kCFCoreFoundationVersionNumber10_4_1 = 368.1; + +const double kCFCoreFoundationVersionNumber10_4_2 = 368.11; + +const double kCFCoreFoundationVersionNumber10_4_3 = 368.18; + +const double kCFCoreFoundationVersionNumber10_4_4_Intel = 368.26; + +const double kCFCoreFoundationVersionNumber10_4_4_PowerPC = 368.25; + +const double kCFCoreFoundationVersionNumber10_4_5_Intel = 368.26; + +const double kCFCoreFoundationVersionNumber10_4_5_PowerPC = 368.25; + +const double kCFCoreFoundationVersionNumber10_4_6_Intel = 368.26; + +const double kCFCoreFoundationVersionNumber10_4_6_PowerPC = 368.25; + +const double kCFCoreFoundationVersionNumber10_4_7 = 368.27; + +const double kCFCoreFoundationVersionNumber10_4_8 = 368.27; + +const double kCFCoreFoundationVersionNumber10_4_9 = 368.28; + +const double kCFCoreFoundationVersionNumber10_4_10 = 368.28; + +const double kCFCoreFoundationVersionNumber10_4_11 = 368.31; + +const double kCFCoreFoundationVersionNumber10_5 = 476.0; + +const double kCFCoreFoundationVersionNumber10_5_1 = 476.0; + +const double kCFCoreFoundationVersionNumber10_5_2 = 476.1; + +const double kCFCoreFoundationVersionNumber10_5_3 = 476.13; + +const double kCFCoreFoundationVersionNumber10_5_4 = 476.14; + +const double kCFCoreFoundationVersionNumber10_5_5 = 476.15; + +const double kCFCoreFoundationVersionNumber10_5_6 = 476.17; + +const double kCFCoreFoundationVersionNumber10_5_7 = 476.18; + +const double kCFCoreFoundationVersionNumber10_5_8 = 476.19; + +const double kCFCoreFoundationVersionNumber10_6 = 550.0; + +const double kCFCoreFoundationVersionNumber10_6_1 = 550.0; + +const double kCFCoreFoundationVersionNumber10_6_2 = 550.13; + +const double kCFCoreFoundationVersionNumber10_6_3 = 550.19; + +const double kCFCoreFoundationVersionNumber10_6_4 = 550.29; + +const double kCFCoreFoundationVersionNumber10_6_5 = 550.42; + +const double kCFCoreFoundationVersionNumber10_6_6 = 550.42; + +const double kCFCoreFoundationVersionNumber10_6_7 = 550.42; + +const double kCFCoreFoundationVersionNumber10_6_8 = 550.43; + +const double kCFCoreFoundationVersionNumber10_7 = 635.0; + +const double kCFCoreFoundationVersionNumber10_7_1 = 635.0; + +const double kCFCoreFoundationVersionNumber10_7_2 = 635.15; + +const double kCFCoreFoundationVersionNumber10_7_3 = 635.19; + +const double kCFCoreFoundationVersionNumber10_7_4 = 635.21; + +const double kCFCoreFoundationVersionNumber10_7_5 = 635.21; + +const double kCFCoreFoundationVersionNumber10_8 = 744.0; + +const double kCFCoreFoundationVersionNumber10_8_1 = 744.0; + +const double kCFCoreFoundationVersionNumber10_8_2 = 744.12; + +const double kCFCoreFoundationVersionNumber10_8_3 = 744.18; + +const double kCFCoreFoundationVersionNumber10_8_4 = 744.19; + +const double kCFCoreFoundationVersionNumber10_9 = 855.11; + +const double kCFCoreFoundationVersionNumber10_9_1 = 855.11; + +const double kCFCoreFoundationVersionNumber10_9_2 = 855.14; + +const double kCFCoreFoundationVersionNumber10_10 = 1151.16; + +const double kCFCoreFoundationVersionNumber10_10_1 = 1151.16; + +const int kCFCoreFoundationVersionNumber10_10_2 = 1152; + +const double kCFCoreFoundationVersionNumber10_10_3 = 1153.18; + +const double kCFCoreFoundationVersionNumber10_10_4 = 1153.18; + +const double kCFCoreFoundationVersionNumber10_10_5 = 1153.18; + +const int kCFCoreFoundationVersionNumber10_10_Max = 1199; + +const int kCFCoreFoundationVersionNumber10_11 = 1253; + +const double kCFCoreFoundationVersionNumber10_11_1 = 1255.1; + +const double kCFCoreFoundationVersionNumber10_11_2 = 1256.14; + +const double kCFCoreFoundationVersionNumber10_11_3 = 1256.14; + +const double kCFCoreFoundationVersionNumber10_11_4 = 1258.1; + +const int kCFCoreFoundationVersionNumber10_11_Max = 1299; + +const int ISA_PTRAUTH_DISCRIMINATOR = 27361;
diff --git a/pkgs/ffigen/test/native_objc_test/method_config.yaml b/pkgs/ffigen/test/native_objc_test/method_config.yaml new file mode 100644 index 0000000..0f68e59 --- /dev/null +++ b/pkgs/ffigen/test/native_objc_test/method_config.yaml
@@ -0,0 +1,12 @@ +name: MethodTestObjCLibrary +description: 'Tests calling Objective-C methods' +language: objc +output: 'test/native_objc_test/method_bindings.dart' +functions: + exclude: + - '.*' +headers: + entry-points: + - 'test/native_objc_test/method_test.m' +preamble: | + // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/pkgs/ffigen/test/native_objc_test/method_test.dart b/pkgs/ffigen/test/native_objc_test/method_test.dart new file mode 100644 index 0000000..d6c2990 --- /dev/null +++ b/pkgs/ffigen/test/native_objc_test/method_test.dart
@@ -0,0 +1,90 @@ +// Copyright (c) 2022, 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. + +// Objective C support is only available on mac. +@TestOn('mac-os') + +import 'dart:ffi'; +import 'dart:io'; + +import 'package:ffigen/ffigen.dart'; +import 'package:path/path.dart' as path; +import 'package:test/test.dart'; +import 'package:yaml/yaml.dart'; +import '../test_utils.dart'; +import 'method_bindings.dart'; + +void main() { + late MethodInterface testInstance; + late MethodTestObjCLibrary lib; + + group('method calls', () { + setUpAll(() { + logWarnings(); + final dylib = File('test/native_objc_test/method_test.dylib'); + verifySetupFile(dylib); + lib = MethodTestObjCLibrary(DynamicLibrary.open(dylib.absolute.path)); + testInstance = MethodInterface.new1(lib); + }); + + test('generate_bindings', () { + final config = Config.fromYaml(loadYaml( + File(path.join('test', 'native_objc_test', 'method_config.yaml')) + .readAsStringSync()) as YamlMap); + final library = parse(config); + final file = File( + path.join('test', 'debug_generated', 'method_test.dart'), + ); + library.generateFile(file); + + try { + final actual = file.readAsStringSync(); + final expected = File(path.join(config.output)).readAsStringSync(); + expect(actual, expected); + if (file.existsSync()) { + file.delete(); + } + } catch (e) { + print('Failed test: Debug generated file: ${file.absolute.path}'); + rethrow; + } + }); + + group('Instance methods', () { + test('No arguments', () { + expect(testInstance.add(), 5); + }); + + test('One argument', () { + expect(testInstance.add1(23), 23); + }); + + test('Two arguments', () { + expect(testInstance.add_Y(23, 17), 40); + }); + + test('Three arguments', () { + expect(testInstance.add_Y_Z(23, 17, 60), 100); + }); + }); + + group('Class methods', () { + test('No arguments', () { + expect(MethodInterface.sub(lib), -5); + }); + + test('One argument', () { + expect(MethodInterface.sub1(lib, 7), -7); + }); + + test('Two arguments', () { + expect(MethodInterface.sub_Y(lib, 7, 3), -10); + }); + + test('Three arguments', () { + expect(MethodInterface.sub_Y_Z(lib, 10, 7, 3), -20); + }); + }); + }); +}
diff --git a/pkgs/ffigen/test/native_objc_test/method_test.m b/pkgs/ffigen/test/native_objc_test/method_test.m new file mode 100644 index 0000000..86ea090 --- /dev/null +++ b/pkgs/ffigen/test/native_objc_test/method_test.m
@@ -0,0 +1,53 @@ +#import <Foundation/NSObject.h> + +@interface MethodInterface : NSObject { +} + + +-(int32_t)add; +-(int32_t)add:(int32_t)x; +-(int32_t)add:(int32_t)x Y:(int32_t) y; +-(int32_t)add:(int32_t)x Y:(int32_t) y Z:(int32_t) z; + ++(int32_t)sub; ++(int32_t)sub:(int32_t)x; ++(int32_t)sub:(int32_t)x Y:(int32_t) y; ++(int32_t)sub:(int32_t)x Y:(int32_t) y Z:(int32_t) z; + +@end + +@implementation MethodInterface + +-(int32_t)add { + return 5; +} + +-(int32_t)add:(int32_t)x { + return x; +} + +-(int32_t)add:(int32_t)x Y:(int32_t) y { + return x + y; +} + +-(int32_t)add:(int32_t)x Y:(int32_t) y Z:(int32_t) z { + return x + y + z; +} + ++(int32_t)sub { + return -5; +} + ++(int32_t)sub:(int32_t)x { + return -x; +} + ++(int32_t)sub:(int32_t)x Y:(int32_t) y { + return -x - y; +} + ++(int32_t)sub:(int32_t)x Y:(int32_t) y Z:(int32_t) z { + return - x - y - z; +} + +@end
diff --git a/pkgs/ffigen/test/native_objc_test/native_objc_test.dart b/pkgs/ffigen/test/native_objc_test/native_objc_test.dart index 8b23c2d..b1b9eed 100644 --- a/pkgs/ffigen/test/native_objc_test/native_objc_test.dart +++ b/pkgs/ffigen/test/native_objc_test/native_objc_test.dart
@@ -66,33 +66,5 @@ expect(foo1.multiply_withOtherFoo(false, foo2), 5); expect(foo1.multiply_withOtherFoo(true, foo2), 200); }); - - test('NSString manipulations', () { - final str1 = NSString(lib, "Hello"); - final str2 = "World!".toNSString(lib); - - expect(str1.length, 5); - expect(str2.length, 6); - - expect(str1.toString(), "Hello"); - expect(str2.toString(), "World!"); - - final str3 = StringUtil.strConcat_with(lib, str1, str2); - expect(str3.length, 11); - expect(str3.toString(), "HelloWorld!"); - }); - - test('Instance read-only property', () { - expect(Foo.makeFoo(lib, 42).readOnlyProperty, 7); - }); - - test('Class read-only property', () { - expect(Foo.getClassReadOnlyProperty(lib), 42); - }); - - test('Class read-write property', () { - Foo.setClassReadWriteProperty(lib, 101); - expect(Foo.getClassReadWriteProperty(lib), 101); - }); }); }
diff --git a/pkgs/ffigen/test/native_objc_test/native_objc_test.m b/pkgs/ffigen/test/native_objc_test/native_objc_test.m index 549cf35..ab7018e 100644 --- a/pkgs/ffigen/test/native_objc_test/native_objc_test.m +++ b/pkgs/ffigen/test/native_objc_test/native_objc_test.m
@@ -6,9 +6,6 @@ } @property int32_t intVal; -@property (readonly) int32_t readOnlyProperty; -@property (class, readonly) int32_t classReadOnlyProperty; -@property (class) int32_t classReadWriteProperty; + (Foo*)makeFoo:(double)x; @@ -20,24 +17,6 @@ @implementation Foo -static int32_t _classReadWriteProperty = 0; - -- (int32_t)readOnlyProperty { - return 7; -} - -+ (int32_t)classReadOnlyProperty { - return 42; -} - -+ (int32_t)classReadWriteProperty { - return _classReadWriteProperty; -} - -+ (void)setClassReadWriteProperty:(int32_t)x { - _classReadWriteProperty = x; -} - + (Foo*)makeFoo:(double)x { Foo* foo = [Foo new]; foo->doubleVal = x; @@ -58,14 +37,3 @@ } @end - -// TODO(#309): strConcat should just be a static function. -@interface StringUtil : NSObject {} -+ (NSString*)strConcat:(NSString*)a with:(NSString*)b; -@end - -@implementation StringUtil -+ (NSString*)strConcat:(NSString*)a with:(NSString*)b { - return [a stringByAppendingString:b]; -} -@end
diff --git a/pkgs/ffigen/test/native_objc_test/native_objc_test_bindings.dart b/pkgs/ffigen/test/native_objc_test/native_objc_test_bindings.dart index 25c41cf..ebcd7c6 100644 --- a/pkgs/ffigen/test/native_objc_test/native_objc_test_bindings.dart +++ b/pkgs/ffigen/test/native_objc_test/native_objc_test_bindings.dart
@@ -3252,42 +3252,6 @@ ffi.Double)>>('objc_msgSend'); late final __objc_msgSend_134 = __objc_msgSend_134Ptr.asFunction< void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>(); - - late final ffi.Pointer<ffi.Int32> __classReadWriteProperty = - _lookup<ffi.Int32>('_classReadWriteProperty'); - - int get _classReadWriteProperty => __classReadWriteProperty.value; - - set _classReadWriteProperty(int value) => - __classReadWriteProperty.value = value; - - ffi.Pointer<ObjCObject> _objc_msgSend_135( - ffi.Pointer<ObjCObject> obj, - ffi.Pointer<ObjCSel> sel, - ffi.Pointer<ObjCObject> a, - ffi.Pointer<ObjCObject> b, - ) { - return __objc_msgSend_135( - obj, - sel, - a, - b, - ); - } - - late final __objc_msgSend_135Ptr = _lookup< - ffi.NativeFunction< - ffi.Pointer<ObjCObject> Function( - ffi.Pointer<ObjCObject>, - ffi.Pointer<ObjCSel>, - ffi.Pointer<ObjCObject>, - ffi.Pointer<ObjCObject>)>>('objc_msgSend'); - late final __objc_msgSend_135 = __objc_msgSend_135Ptr.asFunction< - ffi.Pointer<ObjCObject> Function( - ffi.Pointer<ObjCObject>, - ffi.Pointer<ObjCSel>, - ffi.Pointer<ObjCObject>, - ffi.Pointer<ObjCObject>)>(); } abstract class NSComparisonResult { @@ -5338,35 +5302,6 @@ _lib._objc_msgSend_131(_id, _sel_intVal1!, value); } - static ffi.Pointer<ObjCSel>? _sel_readOnlyProperty; - int get readOnlyProperty { - _sel_readOnlyProperty ??= _registerName(_lib, "readOnlyProperty"); - return _lib._objc_msgSend_130(_id, _sel_readOnlyProperty!); - } - - static ffi.Pointer<ObjCSel>? _sel_classReadOnlyProperty; - static int getClassReadOnlyProperty(NativeObjCLibrary _lib) { - _class ??= _getClass(_lib, "Foo"); - _sel_classReadOnlyProperty ??= _registerName(_lib, "classReadOnlyProperty"); - return _lib._objc_msgSend_130(_class!, _sel_classReadOnlyProperty!); - } - - static ffi.Pointer<ObjCSel>? _sel_classReadWriteProperty; - static int getClassReadWriteProperty(NativeObjCLibrary _lib) { - _class ??= _getClass(_lib, "Foo"); - _sel_classReadWriteProperty ??= - _registerName(_lib, "classReadWriteProperty"); - return _lib._objc_msgSend_130(_class!, _sel_classReadWriteProperty!); - } - - static ffi.Pointer<ObjCSel>? _sel_classReadWriteProperty1; - static void setClassReadWriteProperty(NativeObjCLibrary _lib, int value) { - _class ??= _getClass(_lib, "Foo"); - _sel_classReadWriteProperty1 ??= - _registerName(_lib, "setClassReadWriteProperty:"); - _lib._objc_msgSend_131(_class!, _sel_classReadWriteProperty1!, value); - } - static ffi.Pointer<ObjCSel>? _sel_makeFoo; static Foo makeFoo(NativeObjCLibrary _lib, double x) { _class ??= _getClass(_lib, "Foo"); @@ -5406,43 +5341,6 @@ } } -class StringUtil extends NSObject { - StringUtil._(ffi.Pointer<ObjCObject> id, NativeObjCLibrary lib) - : super._(id, lib); - - static ffi.Pointer<ObjCObject>? _class; - - static StringUtil castFrom<T extends _ObjCWrapper>(T other) { - return StringUtil._(other._id, other._lib); - } - - static ffi.Pointer<ObjCSel>? _sel_strConcat_with; - static NSString strConcat_with( - NativeObjCLibrary _lib, NSObject a, NSObject b) { - _class ??= _getClass(_lib, "StringUtil"); - _sel_strConcat_with ??= _registerName(_lib, "strConcat:with:"); - final _ret = - _lib._objc_msgSend_135(_class!, _sel_strConcat_with!, a._id, b._id); - return NSString._(_ret, _lib); - } - - static ffi.Pointer<ObjCSel>? _sel_new1; - static StringUtil new1(NativeObjCLibrary _lib) { - _class ??= _getClass(_lib, "StringUtil"); - _sel_new1 ??= _registerName(_lib, "new"); - final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); - return StringUtil._(_ret, _lib); - } - - static ffi.Pointer<ObjCSel>? _sel_alloc; - static StringUtil alloc(NativeObjCLibrary _lib) { - _class ??= _getClass(_lib, "StringUtil"); - _sel_alloc ??= _registerName(_lib, "alloc"); - final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); - return StringUtil._(_ret, _lib); - } -} - const int NSScannedOption = 1; const int NSCollectorDisabledOption = 2;
diff --git a/pkgs/ffigen/test/native_objc_test/property_bindings.dart b/pkgs/ffigen/test/native_objc_test/property_bindings.dart new file mode 100644 index 0000000..85485e7 --- /dev/null +++ b/pkgs/ffigen/test/native_objc_test/property_bindings.dart
@@ -0,0 +1,1547 @@ +// ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field + +// AUTO GENERATED FILE, DO NOT EDIT. +// +// Generated by `package:ffigen`. +import 'dart:ffi' as ffi; +import 'package:ffi/ffi.dart' as pkg_ffi; + +/// Tests calling Objective-C properties i.e. getters and setters +class PropertyTestObjCLibrary { + /// Holds the symbol lookup function. + final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName) + _lookup; + + /// The symbols are looked up in [dynamicLibrary]. + PropertyTestObjCLibrary(ffi.DynamicLibrary dynamicLibrary) + : _lookup = dynamicLibrary.lookup; + + /// The symbols are looked up with [lookup]. + PropertyTestObjCLibrary.fromLookup( + ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName) + lookup) + : _lookup = lookup; + + late final ffi.Pointer<ffi.Double> _NSFoundationVersionNumber = + _lookup<ffi.Double>('NSFoundationVersionNumber'); + + double get NSFoundationVersionNumber => _NSFoundationVersionNumber.value; + + set NSFoundationVersionNumber(double value) => + _NSFoundationVersionNumber.value = value; + + late final ffi.Pointer<NSInteger> _NSNotFound = + _lookup<NSInteger>('NSNotFound'); + + int get NSNotFound => _NSNotFound.value; + + set NSNotFound(int value) => _NSNotFound.value = value; + + late final ffi.Pointer<ffi.Double> _kCFCoreFoundationVersionNumber = + _lookup<ffi.Double>('kCFCoreFoundationVersionNumber'); + + double get kCFCoreFoundationVersionNumber => + _kCFCoreFoundationVersionNumber.value; + + set kCFCoreFoundationVersionNumber(double value) => + _kCFCoreFoundationVersionNumber.value = value; + + late final ffi.Pointer<CFIndex> _kCFNotFound = + _lookup<CFIndex>('kCFNotFound'); + + int get kCFNotFound => _kCFNotFound.value; + + set kCFNotFound(int value) => _kCFNotFound.value = value; + + late final ffi.Pointer<CFNullRef> _kCFNull = _lookup<CFNullRef>('kCFNull'); + + CFNullRef get kCFNull => _kCFNull.value; + + set kCFNull(CFNullRef value) => _kCFNull.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorDefault = + _lookup<CFAllocatorRef>('kCFAllocatorDefault'); + + CFAllocatorRef get kCFAllocatorDefault => _kCFAllocatorDefault.value; + + set kCFAllocatorDefault(CFAllocatorRef value) => + _kCFAllocatorDefault.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorSystemDefault = + _lookup<CFAllocatorRef>('kCFAllocatorSystemDefault'); + + CFAllocatorRef get kCFAllocatorSystemDefault => + _kCFAllocatorSystemDefault.value; + + set kCFAllocatorSystemDefault(CFAllocatorRef value) => + _kCFAllocatorSystemDefault.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorMalloc = + _lookup<CFAllocatorRef>('kCFAllocatorMalloc'); + + CFAllocatorRef get kCFAllocatorMalloc => _kCFAllocatorMalloc.value; + + set kCFAllocatorMalloc(CFAllocatorRef value) => + _kCFAllocatorMalloc.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorMallocZone = + _lookup<CFAllocatorRef>('kCFAllocatorMallocZone'); + + CFAllocatorRef get kCFAllocatorMallocZone => _kCFAllocatorMallocZone.value; + + set kCFAllocatorMallocZone(CFAllocatorRef value) => + _kCFAllocatorMallocZone.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorNull = + _lookup<CFAllocatorRef>('kCFAllocatorNull'); + + CFAllocatorRef get kCFAllocatorNull => _kCFAllocatorNull.value; + + set kCFAllocatorNull(CFAllocatorRef value) => _kCFAllocatorNull.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorUseContext = + _lookup<CFAllocatorRef>('kCFAllocatorUseContext'); + + CFAllocatorRef get kCFAllocatorUseContext => _kCFAllocatorUseContext.value; + + set kCFAllocatorUseContext(CFAllocatorRef value) => + _kCFAllocatorUseContext.value = value; + + ffi.Pointer<ObjCSel> _sel_registerName( + ffi.Pointer<pkg_ffi.Char> str, + ) { + return __sel_registerName( + str, + ); + } + + late final __sel_registerNamePtr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCSel> Function( + ffi.Pointer<pkg_ffi.Char>)>>('sel_registerName'); + late final __sel_registerName = __sel_registerNamePtr + .asFunction<ffi.Pointer<ObjCSel> Function(ffi.Pointer<pkg_ffi.Char>)>(); + + ffi.Pointer<ObjCObject> _objc_getClass( + ffi.Pointer<pkg_ffi.Char> str, + ) { + return __objc_getClass( + str, + ); + } + + late final __objc_getClassPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<pkg_ffi.Char>)>>('objc_getClass'); + late final __objc_getClass = __objc_getClassPtr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<pkg_ffi.Char>)>(); + + void _objc_msgSend_0( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_0( + obj, + sel, + ); + } + + late final __objc_msgSend_0Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_0 = __objc_msgSend_0Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + instancetype _objc_msgSend_1( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_1( + obj, + sel, + ); + } + + late final __objc_msgSend_1Ptr = _lookup< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_1 = __objc_msgSend_1Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + instancetype _objc_msgSend_2( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<_NSZone> zone, + ) { + return __objc_msgSend_2( + obj, + sel, + zone, + ); + } + + late final __objc_msgSend_2Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<_NSZone>)>>('objc_msgSend'); + late final __objc_msgSend_2 = __objc_msgSend_2Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<_NSZone>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_3( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_3( + obj, + sel, + ); + } + + late final __objc_msgSend_3Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_3 = __objc_msgSend_3Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_4( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_4( + obj, + sel, + ); + } + + late final __objc_msgSend_4Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_4 = __objc_msgSend_4Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_5( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<_NSZone> zone, + ) { + return __objc_msgSend_5( + obj, + sel, + zone, + ); + } + + late final __objc_msgSend_5Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<_NSZone>)>>('objc_msgSend'); + late final __objc_msgSend_5 = __objc_msgSend_5Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<_NSZone>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_6( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<_NSZone> zone, + ) { + return __objc_msgSend_6( + obj, + sel, + zone, + ); + } + + late final __objc_msgSend_6Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<_NSZone>)>>('objc_msgSend'); + late final __objc_msgSend_6 = __objc_msgSend_6Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<_NSZone>)>(); + + bool _objc_msgSend_7( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_7( + obj, + sel, + aSelector, + ) != + 0; + } + + late final __objc_msgSend_7Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_7 = __objc_msgSend_7Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + bool _objc_msgSend_8( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> protocol, + ) { + return __objc_msgSend_8( + obj, + sel, + protocol, + ) != + 0; + } + + late final __objc_msgSend_8Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_8 = __objc_msgSend_8Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + IMP _objc_msgSend_9( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_9( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_9Ptr = _lookup< + ffi.NativeFunction< + IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_9 = __objc_msgSend_9Ptr.asFunction< + IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + IMP _objc_msgSend_10( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_10( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_10Ptr = _lookup< + ffi.NativeFunction< + IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_10 = __objc_msgSend_10Ptr.asFunction< + IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + void _objc_msgSend_11( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_11( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_11Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_11 = __objc_msgSend_11Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_12( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_12( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_12Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_12 = __objc_msgSend_12Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>(); + + void _objc_msgSend_13( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> anInvocation, + ) { + return __objc_msgSend_13( + obj, + sel, + anInvocation, + ); + } + + late final __objc_msgSend_13Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_13 = __objc_msgSend_13Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_14( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_14( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_14Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_14 = __objc_msgSend_14Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_15( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_15( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_15Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_15 = __objc_msgSend_15Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>(); + + bool _objc_msgSend_16( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_16( + obj, + sel, + ) != + 0; + } + + late final __objc_msgSend_16Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_16 = __objc_msgSend_16Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + bool _objc_msgSend_17( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> aClass, + ) { + return __objc_msgSend_17( + obj, + sel, + aClass, + ) != + 0; + } + + late final __objc_msgSend_17Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_17 = __objc_msgSend_17Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + bool _objc_msgSend_18( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> sel1, + ) { + return __objc_msgSend_18( + obj, + sel, + sel1, + ) != + 0; + } + + late final __objc_msgSend_18Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_18 = __objc_msgSend_18Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + bool _objc_msgSend_19( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> sel1, + ) { + return __objc_msgSend_19( + obj, + sel, + sel1, + ) != + 0; + } + + late final __objc_msgSend_19Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_19 = __objc_msgSend_19Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_20( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_20( + obj, + sel, + ); + } + + late final __objc_msgSend_20Ptr = _lookup< + ffi.NativeFunction< + NSUInteger Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_20 = __objc_msgSend_20Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_21( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_21( + obj, + sel, + ); + } + + late final __objc_msgSend_21Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_21 = __objc_msgSend_21Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_22( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_22( + obj, + sel, + ); + } + + late final __objc_msgSend_22Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_22 = __objc_msgSend_22Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_23( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<pkg_ffi.Char> cString, + int enc, + ) { + return __objc_msgSend_23( + obj, + sel, + cString, + enc, + ); + } + + late final __objc_msgSend_23Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<pkg_ffi.Char>, + pkg_ffi.UnsignedInt)>>('objc_msgSend'); + late final __objc_msgSend_23 = __objc_msgSend_23Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<pkg_ffi.Char>, int)>(); + + ffi.Pointer<pkg_ffi.Char> _objc_msgSend_24( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_24( + obj, + sel, + ); + } + + late final __objc_msgSend_24Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<pkg_ffi.Char> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_24 = __objc_msgSend_24Ptr.asFunction< + ffi.Pointer<pkg_ffi.Char> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_25( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_25( + obj, + sel, + ); + } + + late final __objc_msgSend_25Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_25 = __objc_msgSend_25Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_26( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_26( + obj, + sel, + ); + } + + late final __objc_msgSend_26Ptr = _lookup< + ffi.NativeFunction< + ffi.Int32 Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_26 = __objc_msgSend_26Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + void _objc_msgSend_27( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_27( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_27Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Int32)>>('objc_msgSend'); + late final __objc_msgSend_27 = __objc_msgSend_27Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + late final ffi.Pointer<ffi.Int32> __classReadWriteProperty = + _lookup<ffi.Int32>('_classReadWriteProperty'); + + int get _classReadWriteProperty => __classReadWriteProperty.value; + + set _classReadWriteProperty(int value) => + __classReadWriteProperty.value = value; +} + +abstract class NSComparisonResult { + static const int NSOrderedAscending = -1; + static const int NSOrderedSame = 0; + static const int NSOrderedDescending = 1; +} + +abstract class NSEnumerationOptions { + static const int NSEnumerationConcurrent = 1; + static const int NSEnumerationReverse = 2; +} + +abstract class NSSortOptions { + static const int NSSortConcurrent = 1; + static const int NSSortStable = 16; +} + +abstract class NSQualityOfService { + static const int NSQualityOfServiceUserInteractive = 33; + static const int NSQualityOfServiceUserInitiated = 25; + static const int NSQualityOfServiceUtility = 17; + static const int NSQualityOfServiceBackground = 9; + static const int NSQualityOfServiceDefault = -1; +} + +typedef NSInteger = pkg_ffi.Long; + +class __CFString extends ffi.Opaque {} + +abstract class CFComparisonResult { + static const int kCFCompareLessThan = -1; + static const int kCFCompareEqualTo = 0; + static const int kCFCompareGreaterThan = 1; +} + +typedef CFIndex = pkg_ffi.Long; + +class CFRange extends ffi.Struct { + @CFIndex() + external int location; + + @CFIndex() + external int length; +} + +class __CFNull extends ffi.Opaque {} + +typedef CFNullRef = ffi.Pointer<__CFNull>; + +class __CFAllocator extends ffi.Opaque {} + +typedef CFAllocatorRef = ffi.Pointer<__CFAllocator>; + +class CFAllocatorContext extends ffi.Struct { + @CFIndex() + external int version; + + external ffi.Pointer<ffi.Void> info; + + external CFAllocatorRetainCallBack retain; + + external CFAllocatorReleaseCallBack release; + + external CFAllocatorCopyDescriptionCallBack copyDescription; + + external CFAllocatorAllocateCallBack allocate; + + external CFAllocatorReallocateCallBack reallocate; + + external CFAllocatorDeallocateCallBack deallocate; + + external CFAllocatorPreferredSizeCallBack preferredSize; +} + +typedef CFAllocatorRetainCallBack = ffi.Pointer< + ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.Pointer<ffi.Void>)>>; +typedef CFAllocatorReleaseCallBack + = ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>; +typedef CFAllocatorCopyDescriptionCallBack = ffi + .Pointer<ffi.NativeFunction<CFStringRef Function(ffi.Pointer<ffi.Void>)>>; +typedef CFStringRef = ffi.Pointer<__CFString>; +typedef CFAllocatorAllocateCallBack = ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer<ffi.Void> Function( + CFIndex, CFOptionFlags, ffi.Pointer<ffi.Void>)>>; +typedef CFOptionFlags = pkg_ffi.UnsignedLong; +typedef CFAllocatorReallocateCallBack = ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer<ffi.Void> Function(ffi.Pointer<ffi.Void>, CFIndex, + CFOptionFlags, ffi.Pointer<ffi.Void>)>>; +typedef CFAllocatorDeallocateCallBack = ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Void>)>>; +typedef CFAllocatorPreferredSizeCallBack = ffi.Pointer< + ffi.NativeFunction< + CFIndex Function(CFIndex, CFOptionFlags, ffi.Pointer<ffi.Void>)>>; + +ffi.Pointer<ObjCSel> _registerName(PropertyTestObjCLibrary _lib, String name) { + final cstr = name.toNativeUtf8(); + final sel = _lib._sel_registerName(cstr.cast()); + pkg_ffi.calloc.free(cstr); + return sel; +} + +ffi.Pointer<ObjCObject> _getClass(PropertyTestObjCLibrary _lib, String name) { + final cstr = name.toNativeUtf8(); + final clazz = _lib._objc_getClass(cstr.cast()); + pkg_ffi.calloc.free(cstr); + return clazz; +} + +class _ObjCWrapper { + final ffi.Pointer<ObjCObject> _id; + final PropertyTestObjCLibrary _lib; + _ObjCWrapper._(this._id, this._lib); +} + +class PropertyInterface extends NSObject { + PropertyInterface._(ffi.Pointer<ObjCObject> id, PropertyTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static PropertyInterface castFrom<T extends _ObjCWrapper>(T other) { + return PropertyInterface._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_readOnlyProperty; + int get readOnlyProperty { + _sel_readOnlyProperty ??= _registerName(_lib, "readOnlyProperty"); + return _lib._objc_msgSend_26(_id, _sel_readOnlyProperty!); + } + + static ffi.Pointer<ObjCSel>? _sel_readWriteProperty; + int get readWriteProperty { + _sel_readWriteProperty ??= _registerName(_lib, "readWriteProperty"); + return _lib._objc_msgSend_26(_id, _sel_readWriteProperty!); + } + + static ffi.Pointer<ObjCSel>? _sel_readWriteProperty1; + set readWriteProperty(int value) { + _sel_readWriteProperty1 ??= _registerName(_lib, "setReadWriteProperty:"); + _lib._objc_msgSend_27(_id, _sel_readWriteProperty1!, value); + } + + static ffi.Pointer<ObjCSel>? _sel_classReadOnlyProperty; + static int getClassReadOnlyProperty(PropertyTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "PropertyInterface"); + _sel_classReadOnlyProperty ??= _registerName(_lib, "classReadOnlyProperty"); + return _lib._objc_msgSend_26(_class!, _sel_classReadOnlyProperty!); + } + + static ffi.Pointer<ObjCSel>? _sel_classReadWriteProperty; + static int getClassReadWriteProperty(PropertyTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "PropertyInterface"); + _sel_classReadWriteProperty ??= + _registerName(_lib, "classReadWriteProperty"); + return _lib._objc_msgSend_26(_class!, _sel_classReadWriteProperty!); + } + + static ffi.Pointer<ObjCSel>? _sel_classReadWriteProperty1; + static void setClassReadWriteProperty( + PropertyTestObjCLibrary _lib, int value) { + _class ??= _getClass(_lib, "PropertyInterface"); + _sel_classReadWriteProperty1 ??= + _registerName(_lib, "setClassReadWriteProperty:"); + _lib._objc_msgSend_27(_class!, _sel_classReadWriteProperty1!, value); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static PropertyInterface new1(PropertyTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "PropertyInterface"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return PropertyInterface._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static PropertyInterface alloc(PropertyTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "PropertyInterface"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return PropertyInterface._(_ret, _lib); + } +} + +class NSObject extends _ObjCWrapper { + NSObject._(ffi.Pointer<ObjCObject> id, PropertyTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSObject castFrom<T extends _ObjCWrapper>(T other) { + return NSObject._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_load; + static void load(PropertyTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_load ??= _registerName(_lib, "load"); + _lib._objc_msgSend_0(_class!, _sel_load!); + } + + static ffi.Pointer<ObjCSel>? _sel_initialize; + static void initialize(PropertyTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_initialize ??= _registerName(_lib, "initialize"); + _lib._objc_msgSend_0(_class!, _sel_initialize!); + } + + static ffi.Pointer<ObjCSel>? _sel_init; + NSObject init() { + _sel_init ??= _registerName(_lib, "init"); + final _ret = _lib._objc_msgSend_1(_id, _sel_init!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSObject new1(PropertyTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_allocWithZone; + static NSObject allocWithZone( + PropertyTestObjCLibrary _lib, ffi.Pointer<_NSZone> zone) { + _class ??= _getClass(_lib, "NSObject"); + _sel_allocWithZone ??= _registerName(_lib, "allocWithZone:"); + final _ret = _lib._objc_msgSend_2(_class!, _sel_allocWithZone!, zone); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSObject alloc(PropertyTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_dealloc; + void dealloc() { + _sel_dealloc ??= _registerName(_lib, "dealloc"); + _lib._objc_msgSend_0(_id, _sel_dealloc!); + } + + static ffi.Pointer<ObjCSel>? _sel_finalize; + void finalize() { + _sel_finalize ??= _registerName(_lib, "finalize"); + _lib._objc_msgSend_0(_id, _sel_finalize!); + } + + static ffi.Pointer<ObjCSel>? _sel_copy; + NSObject copy() { + _sel_copy ??= _registerName(_lib, "copy"); + final _ret = _lib._objc_msgSend_3(_id, _sel_copy!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_mutableCopy; + NSObject mutableCopy() { + _sel_mutableCopy ??= _registerName(_lib, "mutableCopy"); + final _ret = _lib._objc_msgSend_4(_id, _sel_mutableCopy!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_copyWithZone; + static NSObject copyWithZone( + PropertyTestObjCLibrary _lib, ffi.Pointer<_NSZone> zone) { + _class ??= _getClass(_lib, "NSObject"); + _sel_copyWithZone ??= _registerName(_lib, "copyWithZone:"); + final _ret = _lib._objc_msgSend_5(_class!, _sel_copyWithZone!, zone); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_mutableCopyWithZone; + static NSObject mutableCopyWithZone( + PropertyTestObjCLibrary _lib, ffi.Pointer<_NSZone> zone) { + _class ??= _getClass(_lib, "NSObject"); + _sel_mutableCopyWithZone ??= _registerName(_lib, "mutableCopyWithZone:"); + final _ret = _lib._objc_msgSend_6(_class!, _sel_mutableCopyWithZone!, zone); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_instancesRespondToSelector; + static bool instancesRespondToSelector( + PropertyTestObjCLibrary _lib, ffi.Pointer<ObjCSel> aSelector) { + _class ??= _getClass(_lib, "NSObject"); + _sel_instancesRespondToSelector ??= + _registerName(_lib, "instancesRespondToSelector:"); + return _lib._objc_msgSend_7( + _class!, _sel_instancesRespondToSelector!, aSelector); + } + + static ffi.Pointer<ObjCSel>? _sel_conformsToProtocol; + static bool conformsToProtocol( + PropertyTestObjCLibrary _lib, NSObject protocol) { + _class ??= _getClass(_lib, "NSObject"); + _sel_conformsToProtocol ??= _registerName(_lib, "conformsToProtocol:"); + return _lib._objc_msgSend_8( + _class!, _sel_conformsToProtocol!, protocol._id); + } + + static ffi.Pointer<ObjCSel>? _sel_methodForSelector; + IMP methodForSelector(ffi.Pointer<ObjCSel> aSelector) { + _sel_methodForSelector ??= _registerName(_lib, "methodForSelector:"); + return _lib._objc_msgSend_9(_id, _sel_methodForSelector!, aSelector); + } + + static ffi.Pointer<ObjCSel>? _sel_instanceMethodForSelector; + static IMP instanceMethodForSelector( + PropertyTestObjCLibrary _lib, ffi.Pointer<ObjCSel> aSelector) { + _class ??= _getClass(_lib, "NSObject"); + _sel_instanceMethodForSelector ??= + _registerName(_lib, "instanceMethodForSelector:"); + return _lib._objc_msgSend_10( + _class!, _sel_instanceMethodForSelector!, aSelector); + } + + static ffi.Pointer<ObjCSel>? _sel_doesNotRecognizeSelector; + void doesNotRecognizeSelector(ffi.Pointer<ObjCSel> aSelector) { + _sel_doesNotRecognizeSelector ??= + _registerName(_lib, "doesNotRecognizeSelector:"); + _lib._objc_msgSend_11(_id, _sel_doesNotRecognizeSelector!, aSelector); + } + + static ffi.Pointer<ObjCSel>? _sel_forwardingTargetForSelector; + NSObject forwardingTargetForSelector(ffi.Pointer<ObjCSel> aSelector) { + _sel_forwardingTargetForSelector ??= + _registerName(_lib, "forwardingTargetForSelector:"); + final _ret = _lib._objc_msgSend_12( + _id, _sel_forwardingTargetForSelector!, aSelector); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_forwardInvocation; + void forwardInvocation(NSObject anInvocation) { + _sel_forwardInvocation ??= _registerName(_lib, "forwardInvocation:"); + _lib._objc_msgSend_13(_id, _sel_forwardInvocation!, anInvocation._id); + } + + static ffi.Pointer<ObjCSel>? _sel_methodSignatureForSelector; + NSMethodSignature methodSignatureForSelector(ffi.Pointer<ObjCSel> aSelector) { + _sel_methodSignatureForSelector ??= + _registerName(_lib, "methodSignatureForSelector:"); + final _ret = + _lib._objc_msgSend_14(_id, _sel_methodSignatureForSelector!, aSelector); + return NSMethodSignature._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_instanceMethodSignatureForSelector; + static NSMethodSignature instanceMethodSignatureForSelector( + PropertyTestObjCLibrary _lib, ffi.Pointer<ObjCSel> aSelector) { + _class ??= _getClass(_lib, "NSObject"); + _sel_instanceMethodSignatureForSelector ??= + _registerName(_lib, "instanceMethodSignatureForSelector:"); + final _ret = _lib._objc_msgSend_15( + _class!, _sel_instanceMethodSignatureForSelector!, aSelector); + return NSMethodSignature._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_allowsWeakReference; + bool allowsWeakReference() { + _sel_allowsWeakReference ??= _registerName(_lib, "allowsWeakReference"); + return _lib._objc_msgSend_16(_id, _sel_allowsWeakReference!); + } + + static ffi.Pointer<ObjCSel>? _sel_retainWeakReference; + bool retainWeakReference() { + _sel_retainWeakReference ??= _registerName(_lib, "retainWeakReference"); + return _lib._objc_msgSend_16(_id, _sel_retainWeakReference!); + } + + static ffi.Pointer<ObjCSel>? _sel_isSubclassOfClass; + static bool isSubclassOfClass(PropertyTestObjCLibrary _lib, NSObject aClass) { + _class ??= _getClass(_lib, "NSObject"); + _sel_isSubclassOfClass ??= _registerName(_lib, "isSubclassOfClass:"); + return _lib._objc_msgSend_17(_class!, _sel_isSubclassOfClass!, aClass._id); + } + + static ffi.Pointer<ObjCSel>? _sel_resolveClassMethod; + static bool resolveClassMethod( + PropertyTestObjCLibrary _lib, ffi.Pointer<ObjCSel> sel) { + _class ??= _getClass(_lib, "NSObject"); + _sel_resolveClassMethod ??= _registerName(_lib, "resolveClassMethod:"); + return _lib._objc_msgSend_18(_class!, _sel_resolveClassMethod!, sel); + } + + static ffi.Pointer<ObjCSel>? _sel_resolveInstanceMethod; + static bool resolveInstanceMethod( + PropertyTestObjCLibrary _lib, ffi.Pointer<ObjCSel> sel) { + _class ??= _getClass(_lib, "NSObject"); + _sel_resolveInstanceMethod ??= + _registerName(_lib, "resolveInstanceMethod:"); + return _lib._objc_msgSend_19(_class!, _sel_resolveInstanceMethod!, sel); + } + + static ffi.Pointer<ObjCSel>? _sel_hash; + static int hash(PropertyTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_hash ??= _registerName(_lib, "hash"); + return _lib._objc_msgSend_20(_class!, _sel_hash!); + } + + static ffi.Pointer<ObjCSel>? _sel_superclass; + static NSObject superclass(PropertyTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_superclass ??= _registerName(_lib, "superclass"); + final _ret = _lib._objc_msgSend_21(_class!, _sel_superclass!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_class1; + static NSObject class1(PropertyTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_class1 ??= _registerName(_lib, "class"); + final _ret = _lib._objc_msgSend_22(_class!, _sel_class1!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_description; + static NSString description(PropertyTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_description ??= _registerName(_lib, "description"); + final _ret = _lib._objc_msgSend_25(_class!, _sel_description!); + return NSString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_debugDescription; + static NSString debugDescription(PropertyTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_debugDescription ??= _registerName(_lib, "debugDescription"); + final _ret = _lib._objc_msgSend_25(_class!, _sel_debugDescription!); + return NSString._(_ret, _lib); + } +} + +typedef instancetype = ffi.Pointer<ObjCObject>; + +class ObjCObject extends ffi.Opaque {} + +class _NSZone extends ffi.Opaque {} + +class ObjCSel extends ffi.Opaque {} + +typedef IMP = ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>; + +class NSMethodSignature extends _ObjCWrapper { + NSMethodSignature._(ffi.Pointer<ObjCObject> id, PropertyTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSMethodSignature castFrom<T extends _ObjCWrapper>(T other) { + return NSMethodSignature._(other._id, other._lib); + } +} + +typedef NSUInteger = pkg_ffi.UnsignedLong; + +class NSString extends _ObjCWrapper { + NSString._(ffi.Pointer<ObjCObject> id, PropertyTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSString castFrom<T extends _ObjCWrapper>(T other) { + return NSString._(other._id, other._lib); + } + + factory NSString(PropertyTestObjCLibrary _lib, String str) { + final cstr = str.toNativeUtf8(); + final nsstr = stringWithCString_encoding(_lib, cstr.cast(), 4 /* UTF8 */); + pkg_ffi.calloc.free(cstr); + return nsstr; + } + + @override + String toString() => UTF8String().cast<pkg_ffi.Utf8>().toDartString(); + + static ffi.Pointer<ObjCSel>? _sel_stringWithCString_encoding; + static NSString stringWithCString_encoding(PropertyTestObjCLibrary _lib, + ffi.Pointer<pkg_ffi.Char> cString, int enc) { + _class ??= _getClass(_lib, "NSString"); + _sel_stringWithCString_encoding ??= + _registerName(_lib, "stringWithCString:encoding:"); + final _ret = _lib._objc_msgSend_23( + _class!, _sel_stringWithCString_encoding!, cString, enc); + return NSString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_UTF8String; + ffi.Pointer<pkg_ffi.Char> UTF8String() { + _sel_UTF8String ??= _registerName(_lib, "UTF8String"); + return _lib._objc_msgSend_24(_id, _sel_UTF8String!); + } +} + +extension StringToNSString on String { + NSString toNSString(PropertyTestObjCLibrary lib) => NSString(lib, this); +} + +const int NSScannedOption = 1; + +const int NSCollectorDisabledOption = 2; + +const int NS_BLOCKS_AVAILABLE = 1; + +const int __COREFOUNDATION_CFAVAILABILITY__ = 1; + +const int __CF_ENUM_FIXED_IS_AVAILABLE = 1; + +const double NSFoundationVersionNumber10_0 = 397.4; + +const double NSFoundationVersionNumber10_1 = 425.0; + +const double NSFoundationVersionNumber10_1_1 = 425.0; + +const double NSFoundationVersionNumber10_1_2 = 425.0; + +const double NSFoundationVersionNumber10_1_3 = 425.0; + +const double NSFoundationVersionNumber10_1_4 = 425.0; + +const double NSFoundationVersionNumber10_2 = 462.0; + +const double NSFoundationVersionNumber10_2_1 = 462.0; + +const double NSFoundationVersionNumber10_2_2 = 462.0; + +const double NSFoundationVersionNumber10_2_3 = 462.0; + +const double NSFoundationVersionNumber10_2_4 = 462.0; + +const double NSFoundationVersionNumber10_2_5 = 462.0; + +const double NSFoundationVersionNumber10_2_6 = 462.0; + +const double NSFoundationVersionNumber10_2_7 = 462.7; + +const double NSFoundationVersionNumber10_2_8 = 462.7; + +const double NSFoundationVersionNumber10_3 = 500.0; + +const double NSFoundationVersionNumber10_3_1 = 500.0; + +const double NSFoundationVersionNumber10_3_2 = 500.3; + +const double NSFoundationVersionNumber10_3_3 = 500.54; + +const double NSFoundationVersionNumber10_3_4 = 500.56; + +const double NSFoundationVersionNumber10_3_5 = 500.56; + +const double NSFoundationVersionNumber10_3_6 = 500.56; + +const double NSFoundationVersionNumber10_3_7 = 500.56; + +const double NSFoundationVersionNumber10_3_8 = 500.56; + +const double NSFoundationVersionNumber10_3_9 = 500.58; + +const double NSFoundationVersionNumber10_4 = 567.0; + +const double NSFoundationVersionNumber10_4_1 = 567.0; + +const double NSFoundationVersionNumber10_4_2 = 567.12; + +const double NSFoundationVersionNumber10_4_3 = 567.21; + +const double NSFoundationVersionNumber10_4_4_Intel = 567.23; + +const double NSFoundationVersionNumber10_4_4_PowerPC = 567.21; + +const double NSFoundationVersionNumber10_4_5 = 567.25; + +const double NSFoundationVersionNumber10_4_6 = 567.26; + +const double NSFoundationVersionNumber10_4_7 = 567.27; + +const double NSFoundationVersionNumber10_4_8 = 567.28; + +const double NSFoundationVersionNumber10_4_9 = 567.29; + +const double NSFoundationVersionNumber10_4_10 = 567.29; + +const double NSFoundationVersionNumber10_4_11 = 567.36; + +const double NSFoundationVersionNumber10_5 = 677.0; + +const double NSFoundationVersionNumber10_5_1 = 677.1; + +const double NSFoundationVersionNumber10_5_2 = 677.15; + +const double NSFoundationVersionNumber10_5_3 = 677.19; + +const double NSFoundationVersionNumber10_5_4 = 677.19; + +const double NSFoundationVersionNumber10_5_5 = 677.21; + +const double NSFoundationVersionNumber10_5_6 = 677.22; + +const double NSFoundationVersionNumber10_5_7 = 677.24; + +const double NSFoundationVersionNumber10_5_8 = 677.26; + +const double NSFoundationVersionNumber10_6 = 751.0; + +const double NSFoundationVersionNumber10_6_1 = 751.0; + +const double NSFoundationVersionNumber10_6_2 = 751.14; + +const double NSFoundationVersionNumber10_6_3 = 751.21; + +const double NSFoundationVersionNumber10_6_4 = 751.29; + +const double NSFoundationVersionNumber10_6_5 = 751.42; + +const double NSFoundationVersionNumber10_6_6 = 751.53; + +const double NSFoundationVersionNumber10_6_7 = 751.53; + +const double NSFoundationVersionNumber10_6_8 = 751.62; + +const double NSFoundationVersionNumber10_7 = 833.1; + +const double NSFoundationVersionNumber10_7_1 = 833.1; + +const double NSFoundationVersionNumber10_7_2 = 833.2; + +const double NSFoundationVersionNumber10_7_3 = 833.24; + +const double NSFoundationVersionNumber10_7_4 = 833.25; + +const double NSFoundationVersionNumber10_8 = 945.0; + +const double NSFoundationVersionNumber10_8_1 = 945.0; + +const double NSFoundationVersionNumber10_8_2 = 945.11; + +const double NSFoundationVersionNumber10_8_3 = 945.16; + +const double NSFoundationVersionNumber10_8_4 = 945.18; + +const int NSFoundationVersionNumber10_9 = 1056; + +const int NSFoundationVersionNumber10_9_1 = 1056; + +const double NSFoundationVersionNumber10_9_2 = 1056.13; + +const double NSFoundationVersionNumber10_10 = 1151.16; + +const double NSFoundationVersionNumber10_10_1 = 1151.16; + +const double NSFoundationVersionNumber10_10_2 = 1152.14; + +const double NSFoundationVersionNumber10_10_3 = 1153.2; + +const double NSFoundationVersionNumber10_10_4 = 1153.2; + +const int NSFoundationVersionNumber10_10_5 = 1154; + +const int NSFoundationVersionNumber10_10_Max = 1199; + +const int NSFoundationVersionNumber10_11 = 1252; + +const double NSFoundationVersionNumber10_11_1 = 1255.1; + +const double NSFoundationVersionNumber10_11_2 = 1256.1; + +const double NSFoundationVersionNumber10_11_3 = 1256.1; + +const int NSFoundationVersionNumber10_11_4 = 1258; + +const int NSFoundationVersionNumber10_11_Max = 1299; + +const int __COREFOUNDATION_CFBASE__ = 1; + +const int TRUE = 1; + +const int FALSE = 0; + +const double kCFCoreFoundationVersionNumber10_0 = 196.4; + +const double kCFCoreFoundationVersionNumber10_0_3 = 196.5; + +const double kCFCoreFoundationVersionNumber10_1 = 226.0; + +const double kCFCoreFoundationVersionNumber10_1_1 = 226.0; + +const double kCFCoreFoundationVersionNumber10_1_2 = 227.2; + +const double kCFCoreFoundationVersionNumber10_1_3 = 227.2; + +const double kCFCoreFoundationVersionNumber10_1_4 = 227.3; + +const double kCFCoreFoundationVersionNumber10_2 = 263.0; + +const double kCFCoreFoundationVersionNumber10_2_1 = 263.1; + +const double kCFCoreFoundationVersionNumber10_2_2 = 263.1; + +const double kCFCoreFoundationVersionNumber10_2_3 = 263.3; + +const double kCFCoreFoundationVersionNumber10_2_4 = 263.3; + +const double kCFCoreFoundationVersionNumber10_2_5 = 263.5; + +const double kCFCoreFoundationVersionNumber10_2_6 = 263.5; + +const double kCFCoreFoundationVersionNumber10_2_7 = 263.5; + +const double kCFCoreFoundationVersionNumber10_2_8 = 263.5; + +const double kCFCoreFoundationVersionNumber10_3 = 299.0; + +const double kCFCoreFoundationVersionNumber10_3_1 = 299.0; + +const double kCFCoreFoundationVersionNumber10_3_2 = 299.0; + +const double kCFCoreFoundationVersionNumber10_3_3 = 299.3; + +const double kCFCoreFoundationVersionNumber10_3_4 = 299.31; + +const double kCFCoreFoundationVersionNumber10_3_5 = 299.31; + +const double kCFCoreFoundationVersionNumber10_3_6 = 299.32; + +const double kCFCoreFoundationVersionNumber10_3_7 = 299.33; + +const double kCFCoreFoundationVersionNumber10_3_8 = 299.33; + +const double kCFCoreFoundationVersionNumber10_3_9 = 299.35; + +const double kCFCoreFoundationVersionNumber10_4 = 368.0; + +const double kCFCoreFoundationVersionNumber10_4_1 = 368.1; + +const double kCFCoreFoundationVersionNumber10_4_2 = 368.11; + +const double kCFCoreFoundationVersionNumber10_4_3 = 368.18; + +const double kCFCoreFoundationVersionNumber10_4_4_Intel = 368.26; + +const double kCFCoreFoundationVersionNumber10_4_4_PowerPC = 368.25; + +const double kCFCoreFoundationVersionNumber10_4_5_Intel = 368.26; + +const double kCFCoreFoundationVersionNumber10_4_5_PowerPC = 368.25; + +const double kCFCoreFoundationVersionNumber10_4_6_Intel = 368.26; + +const double kCFCoreFoundationVersionNumber10_4_6_PowerPC = 368.25; + +const double kCFCoreFoundationVersionNumber10_4_7 = 368.27; + +const double kCFCoreFoundationVersionNumber10_4_8 = 368.27; + +const double kCFCoreFoundationVersionNumber10_4_9 = 368.28; + +const double kCFCoreFoundationVersionNumber10_4_10 = 368.28; + +const double kCFCoreFoundationVersionNumber10_4_11 = 368.31; + +const double kCFCoreFoundationVersionNumber10_5 = 476.0; + +const double kCFCoreFoundationVersionNumber10_5_1 = 476.0; + +const double kCFCoreFoundationVersionNumber10_5_2 = 476.1; + +const double kCFCoreFoundationVersionNumber10_5_3 = 476.13; + +const double kCFCoreFoundationVersionNumber10_5_4 = 476.14; + +const double kCFCoreFoundationVersionNumber10_5_5 = 476.15; + +const double kCFCoreFoundationVersionNumber10_5_6 = 476.17; + +const double kCFCoreFoundationVersionNumber10_5_7 = 476.18; + +const double kCFCoreFoundationVersionNumber10_5_8 = 476.19; + +const double kCFCoreFoundationVersionNumber10_6 = 550.0; + +const double kCFCoreFoundationVersionNumber10_6_1 = 550.0; + +const double kCFCoreFoundationVersionNumber10_6_2 = 550.13; + +const double kCFCoreFoundationVersionNumber10_6_3 = 550.19; + +const double kCFCoreFoundationVersionNumber10_6_4 = 550.29; + +const double kCFCoreFoundationVersionNumber10_6_5 = 550.42; + +const double kCFCoreFoundationVersionNumber10_6_6 = 550.42; + +const double kCFCoreFoundationVersionNumber10_6_7 = 550.42; + +const double kCFCoreFoundationVersionNumber10_6_8 = 550.43; + +const double kCFCoreFoundationVersionNumber10_7 = 635.0; + +const double kCFCoreFoundationVersionNumber10_7_1 = 635.0; + +const double kCFCoreFoundationVersionNumber10_7_2 = 635.15; + +const double kCFCoreFoundationVersionNumber10_7_3 = 635.19; + +const double kCFCoreFoundationVersionNumber10_7_4 = 635.21; + +const double kCFCoreFoundationVersionNumber10_7_5 = 635.21; + +const double kCFCoreFoundationVersionNumber10_8 = 744.0; + +const double kCFCoreFoundationVersionNumber10_8_1 = 744.0; + +const double kCFCoreFoundationVersionNumber10_8_2 = 744.12; + +const double kCFCoreFoundationVersionNumber10_8_3 = 744.18; + +const double kCFCoreFoundationVersionNumber10_8_4 = 744.19; + +const double kCFCoreFoundationVersionNumber10_9 = 855.11; + +const double kCFCoreFoundationVersionNumber10_9_1 = 855.11; + +const double kCFCoreFoundationVersionNumber10_9_2 = 855.14; + +const double kCFCoreFoundationVersionNumber10_10 = 1151.16; + +const double kCFCoreFoundationVersionNumber10_10_1 = 1151.16; + +const int kCFCoreFoundationVersionNumber10_10_2 = 1152; + +const double kCFCoreFoundationVersionNumber10_10_3 = 1153.18; + +const double kCFCoreFoundationVersionNumber10_10_4 = 1153.18; + +const double kCFCoreFoundationVersionNumber10_10_5 = 1153.18; + +const int kCFCoreFoundationVersionNumber10_10_Max = 1199; + +const int kCFCoreFoundationVersionNumber10_11 = 1253; + +const double kCFCoreFoundationVersionNumber10_11_1 = 1255.1; + +const double kCFCoreFoundationVersionNumber10_11_2 = 1256.14; + +const double kCFCoreFoundationVersionNumber10_11_3 = 1256.14; + +const double kCFCoreFoundationVersionNumber10_11_4 = 1258.1; + +const int kCFCoreFoundationVersionNumber10_11_Max = 1299; + +const int ISA_PTRAUTH_DISCRIMINATOR = 27361;
diff --git a/pkgs/ffigen/test/native_objc_test/property_config.yaml b/pkgs/ffigen/test/native_objc_test/property_config.yaml new file mode 100644 index 0000000..5caaad2 --- /dev/null +++ b/pkgs/ffigen/test/native_objc_test/property_config.yaml
@@ -0,0 +1,12 @@ +name: PropertyTestObjCLibrary +description: 'Tests calling Objective-C properties i.e. getters and setters' +language: objc +output: 'test/native_objc_test/property_bindings.dart' +functions: + exclude: + - '.*' +headers: + entry-points: + - 'test/native_objc_test/property_test.m' +preamble: | + // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/pkgs/ffigen/test/native_objc_test/property_test.dart b/pkgs/ffigen/test/native_objc_test/property_test.dart new file mode 100644 index 0000000..ada0cdf --- /dev/null +++ b/pkgs/ffigen/test/native_objc_test/property_test.dart
@@ -0,0 +1,76 @@ +// Copyright (c) 2022, 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. + +// Objective C support is only available on mac. +@TestOn('mac-os') + +import 'dart:ffi'; +import 'dart:io'; + +import 'package:ffigen/ffigen.dart'; +import 'package:path/path.dart' as path; +import 'package:test/test.dart'; +import 'package:yaml/yaml.dart'; +import '../test_utils.dart'; +import 'property_bindings.dart'; + +void main() { + late PropertyInterface testInstance; + late PropertyTestObjCLibrary lib; + + group('properties', () { + setUpAll(() { + logWarnings(); + final dylib = File('test/native_objc_test/property_test.dylib'); + verifySetupFile(dylib); + lib = PropertyTestObjCLibrary(DynamicLibrary.open(dylib.absolute.path)); + testInstance = PropertyInterface.new1(lib); + }); + + test('generate_bindings', () { + final config = Config.fromYaml(loadYaml( + File(path.join('test', 'native_objc_test', 'property_config.yaml')) + .readAsStringSync()) as YamlMap); + final library = parse(config); + final file = File( + path.join('test', 'debug_generated', 'property_test.dart'), + ); + library.generateFile(file); + + try { + final actual = file.readAsStringSync(); + final expected = File(path.join(config.output)).readAsStringSync(); + expect(actual, expected); + if (file.existsSync()) { + file.delete(); + } + } catch (e) { + print('Failed test: Debug generated file: ${file.absolute.path}'); + rethrow; + } + }); + + group('instance properties', () { + test('read-only property', () { + expect(testInstance.readOnlyProperty, 7); + }); + + test('read-write property', () { + testInstance.readWriteProperty = 23; + expect(testInstance.readWriteProperty, 23); + }); + }); + + group('class properties', () { + test('read-only property', () { + expect(PropertyInterface.getClassReadOnlyProperty(lib), 42); + }); + + test('read-write property', () { + PropertyInterface.setClassReadWriteProperty(lib, 101); + expect(PropertyInterface.getClassReadWriteProperty(lib), 101); + }); + }); + }); +}
diff --git a/pkgs/ffigen/test/native_objc_test/property_test.m b/pkgs/ffigen/test/native_objc_test/property_test.m new file mode 100644 index 0000000..74728e5 --- /dev/null +++ b/pkgs/ffigen/test/native_objc_test/property_test.m
@@ -0,0 +1,33 @@ +#import <Foundation/NSObject.h> + +@interface PropertyInterface : NSObject { +} + +@property (readonly) int32_t readOnlyProperty; +@property int32_t readWriteProperty; +@property (class, readonly) int32_t classReadOnlyProperty; +@property (class) int32_t classReadWriteProperty; + +@end + +@implementation PropertyInterface + +static int32_t _classReadWriteProperty = 0; + +- (int32_t)readOnlyProperty { + return 7; +} + ++ (int32_t)classReadOnlyProperty { + return 42; +} + ++ (int32_t)classReadWriteProperty { + return _classReadWriteProperty; +} + ++ (void)setClassReadWriteProperty:(int32_t)x { + _classReadWriteProperty = x; +} + +@end \ No newline at end of file
diff --git a/pkgs/ffigen/test/native_objc_test/setup.dart b/pkgs/ffigen/test/native_objc_test/setup.dart index c9dbf05..86368a1 100644 --- a/pkgs/ffigen/test/native_objc_test/setup.dart +++ b/pkgs/ffigen/test/native_objc_test/setup.dart
@@ -33,4 +33,7 @@ } print('Building Dynamic Library for Objective C Native Tests...'); await _buildLib('native_objc_test.m', 'native_objc_test.dylib'); + await _buildLib('method_test.m', 'method_test.dylib'); + await _buildLib('property_test.m', 'property_test.dylib'); + await _buildLib('string_test.m', 'string_test.dylib'); }
diff --git a/pkgs/ffigen/test/native_objc_test/string_bindings.dart b/pkgs/ffigen/test/native_objc_test/string_bindings.dart new file mode 100644 index 0000000..fc45dec --- /dev/null +++ b/pkgs/ffigen/test/native_objc_test/string_bindings.dart
@@ -0,0 +1,5658 @@ +// ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field + +// AUTO GENERATED FILE, DO NOT EDIT. +// +// Generated by `package:ffigen`. +import 'dart:ffi' as ffi; +import 'package:ffi/ffi.dart' as pkg_ffi; + +/// Tests calling Objective-C string methods +class StringTestObjCLibrary { + /// Holds the symbol lookup function. + final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName) + _lookup; + + /// The symbols are looked up in [dynamicLibrary]. + StringTestObjCLibrary(ffi.DynamicLibrary dynamicLibrary) + : _lookup = dynamicLibrary.lookup; + + /// The symbols are looked up with [lookup]. + StringTestObjCLibrary.fromLookup( + ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName) + lookup) + : _lookup = lookup; + + late final ffi.Pointer<ffi.Double> _NSFoundationVersionNumber = + _lookup<ffi.Double>('NSFoundationVersionNumber'); + + double get NSFoundationVersionNumber => _NSFoundationVersionNumber.value; + + set NSFoundationVersionNumber(double value) => + _NSFoundationVersionNumber.value = value; + + late final ffi.Pointer<NSInteger> _NSNotFound = + _lookup<NSInteger>('NSNotFound'); + + int get NSNotFound => _NSNotFound.value; + + set NSNotFound(int value) => _NSNotFound.value = value; + + late final ffi.Pointer<ffi.Double> _kCFCoreFoundationVersionNumber = + _lookup<ffi.Double>('kCFCoreFoundationVersionNumber'); + + double get kCFCoreFoundationVersionNumber => + _kCFCoreFoundationVersionNumber.value; + + set kCFCoreFoundationVersionNumber(double value) => + _kCFCoreFoundationVersionNumber.value = value; + + late final ffi.Pointer<CFIndex> _kCFNotFound = + _lookup<CFIndex>('kCFNotFound'); + + int get kCFNotFound => _kCFNotFound.value; + + set kCFNotFound(int value) => _kCFNotFound.value = value; + + late final ffi.Pointer<CFNullRef> _kCFNull = _lookup<CFNullRef>('kCFNull'); + + CFNullRef get kCFNull => _kCFNull.value; + + set kCFNull(CFNullRef value) => _kCFNull.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorDefault = + _lookup<CFAllocatorRef>('kCFAllocatorDefault'); + + CFAllocatorRef get kCFAllocatorDefault => _kCFAllocatorDefault.value; + + set kCFAllocatorDefault(CFAllocatorRef value) => + _kCFAllocatorDefault.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorSystemDefault = + _lookup<CFAllocatorRef>('kCFAllocatorSystemDefault'); + + CFAllocatorRef get kCFAllocatorSystemDefault => + _kCFAllocatorSystemDefault.value; + + set kCFAllocatorSystemDefault(CFAllocatorRef value) => + _kCFAllocatorSystemDefault.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorMalloc = + _lookup<CFAllocatorRef>('kCFAllocatorMalloc'); + + CFAllocatorRef get kCFAllocatorMalloc => _kCFAllocatorMalloc.value; + + set kCFAllocatorMalloc(CFAllocatorRef value) => + _kCFAllocatorMalloc.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorMallocZone = + _lookup<CFAllocatorRef>('kCFAllocatorMallocZone'); + + CFAllocatorRef get kCFAllocatorMallocZone => _kCFAllocatorMallocZone.value; + + set kCFAllocatorMallocZone(CFAllocatorRef value) => + _kCFAllocatorMallocZone.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorNull = + _lookup<CFAllocatorRef>('kCFAllocatorNull'); + + CFAllocatorRef get kCFAllocatorNull => _kCFAllocatorNull.value; + + set kCFAllocatorNull(CFAllocatorRef value) => _kCFAllocatorNull.value = value; + + late final ffi.Pointer<CFAllocatorRef> _kCFAllocatorUseContext = + _lookup<CFAllocatorRef>('kCFAllocatorUseContext'); + + CFAllocatorRef get kCFAllocatorUseContext => _kCFAllocatorUseContext.value; + + set kCFAllocatorUseContext(CFAllocatorRef value) => + _kCFAllocatorUseContext.value = value; + + ffi.Pointer<ObjCSel> _sel_registerName( + ffi.Pointer<pkg_ffi.Char> str, + ) { + return __sel_registerName( + str, + ); + } + + late final __sel_registerNamePtr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCSel> Function( + ffi.Pointer<pkg_ffi.Char>)>>('sel_registerName'); + late final __sel_registerName = __sel_registerNamePtr + .asFunction<ffi.Pointer<ObjCSel> Function(ffi.Pointer<pkg_ffi.Char>)>(); + + ffi.Pointer<ObjCObject> _objc_getClass( + ffi.Pointer<pkg_ffi.Char> str, + ) { + return __objc_getClass( + str, + ); + } + + late final __objc_getClassPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<pkg_ffi.Char>)>>('objc_getClass'); + late final __objc_getClass = __objc_getClassPtr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<pkg_ffi.Char>)>(); + + void _objc_msgSend_0( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_0( + obj, + sel, + ); + } + + late final __objc_msgSend_0Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_0 = __objc_msgSend_0Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + instancetype _objc_msgSend_1( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_1( + obj, + sel, + ); + } + + late final __objc_msgSend_1Ptr = _lookup< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_1 = __objc_msgSend_1Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + instancetype _objc_msgSend_2( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<_NSZone> zone, + ) { + return __objc_msgSend_2( + obj, + sel, + zone, + ); + } + + late final __objc_msgSend_2Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<_NSZone>)>>('objc_msgSend'); + late final __objc_msgSend_2 = __objc_msgSend_2Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<_NSZone>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_3( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_3( + obj, + sel, + ); + } + + late final __objc_msgSend_3Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_3 = __objc_msgSend_3Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_4( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_4( + obj, + sel, + ); + } + + late final __objc_msgSend_4Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_4 = __objc_msgSend_4Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_5( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<_NSZone> zone, + ) { + return __objc_msgSend_5( + obj, + sel, + zone, + ); + } + + late final __objc_msgSend_5Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<_NSZone>)>>('objc_msgSend'); + late final __objc_msgSend_5 = __objc_msgSend_5Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<_NSZone>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_6( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<_NSZone> zone, + ) { + return __objc_msgSend_6( + obj, + sel, + zone, + ); + } + + late final __objc_msgSend_6Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<_NSZone>)>>('objc_msgSend'); + late final __objc_msgSend_6 = __objc_msgSend_6Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<_NSZone>)>(); + + bool _objc_msgSend_7( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_7( + obj, + sel, + aSelector, + ) != + 0; + } + + late final __objc_msgSend_7Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_7 = __objc_msgSend_7Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + bool _objc_msgSend_8( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> protocol, + ) { + return __objc_msgSend_8( + obj, + sel, + protocol, + ) != + 0; + } + + late final __objc_msgSend_8Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_8 = __objc_msgSend_8Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + IMP _objc_msgSend_9( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_9( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_9Ptr = _lookup< + ffi.NativeFunction< + IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_9 = __objc_msgSend_9Ptr.asFunction< + IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + IMP _objc_msgSend_10( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_10( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_10Ptr = _lookup< + ffi.NativeFunction< + IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_10 = __objc_msgSend_10Ptr.asFunction< + IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + void _objc_msgSend_11( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_11( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_11Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_11 = __objc_msgSend_11Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_12( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_12( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_12Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_12 = __objc_msgSend_12Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>(); + + void _objc_msgSend_13( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> anInvocation, + ) { + return __objc_msgSend_13( + obj, + sel, + anInvocation, + ); + } + + late final __objc_msgSend_13Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_13 = __objc_msgSend_13Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_14( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_14( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_14Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_14 = __objc_msgSend_14Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_15( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> aSelector, + ) { + return __objc_msgSend_15( + obj, + sel, + aSelector, + ); + } + + late final __objc_msgSend_15Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_15 = __objc_msgSend_15Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>(); + + bool _objc_msgSend_16( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_16( + obj, + sel, + ) != + 0; + } + + late final __objc_msgSend_16Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_16 = __objc_msgSend_16Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + bool _objc_msgSend_17( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> aClass, + ) { + return __objc_msgSend_17( + obj, + sel, + aClass, + ) != + 0; + } + + late final __objc_msgSend_17Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_17 = __objc_msgSend_17Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + bool _objc_msgSend_18( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> sel1, + ) { + return __objc_msgSend_18( + obj, + sel, + sel1, + ) != + 0; + } + + late final __objc_msgSend_18Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_18 = __objc_msgSend_18Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + bool _objc_msgSend_19( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCSel> sel1, + ) { + return __objc_msgSend_19( + obj, + sel, + sel1, + ) != + 0; + } + + late final __objc_msgSend_19Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_19 = __objc_msgSend_19Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_20( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_20( + obj, + sel, + ); + } + + late final __objc_msgSend_20Ptr = _lookup< + ffi.NativeFunction< + NSUInteger Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_20 = __objc_msgSend_20Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_21( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_21( + obj, + sel, + ); + } + + late final __objc_msgSend_21Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_21 = __objc_msgSend_21Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_22( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_22( + obj, + sel, + ); + } + + late final __objc_msgSend_22Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_22 = __objc_msgSend_22Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_23( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int index, + ) { + return __objc_msgSend_23( + obj, + sel, + index, + ); + } + + late final __objc_msgSend_23Ptr = _lookup< + ffi.NativeFunction< + unichar Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSUInteger)>>('objc_msgSend'); + late final __objc_msgSend_23 = __objc_msgSend_23Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + instancetype _objc_msgSend_24( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> coder, + ) { + return __objc_msgSend_24( + obj, + sel, + coder, + ); + } + + late final __objc_msgSend_24Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_24 = __objc_msgSend_24Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_25( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<pkg_ffi.Char> cString, + int enc, + ) { + return __objc_msgSend_25( + obj, + sel, + cString, + enc, + ); + } + + late final __objc_msgSend_25Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<pkg_ffi.Char>, + pkg_ffi.UnsignedInt)>>('objc_msgSend'); + late final __objc_msgSend_25 = __objc_msgSend_25Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<pkg_ffi.Char>, int)>(); + + ffi.Pointer<pkg_ffi.Char> _objc_msgSend_26( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_26( + obj, + sel, + ); + } + + late final __objc_msgSend_26Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<pkg_ffi.Char> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_26 = __objc_msgSend_26Ptr.asFunction< + ffi.Pointer<pkg_ffi.Char> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_27( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_27( + obj, + sel, + ); + } + + late final __objc_msgSend_27Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_27 = __objc_msgSend_27Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + void _objc_msgSend_28( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ffi.Void> value, + int size, + ) { + return __objc_msgSend_28( + obj, + sel, + value, + size, + ); + } + + late final __objc_msgSend_28Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ffi.Void>, NSUInteger)>>('objc_msgSend'); + late final __objc_msgSend_28 = __objc_msgSend_28Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ffi.Void>, int)>(); + + ffi.Pointer<pkg_ffi.Char> _objc_msgSend_29( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_29( + obj, + sel, + ); + } + + late final __objc_msgSend_29Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<pkg_ffi.Char> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_29 = __objc_msgSend_29Ptr.asFunction< + ffi.Pointer<pkg_ffi.Char> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + instancetype _objc_msgSend_30( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ffi.Void> value, + ffi.Pointer<pkg_ffi.Char> type, + ) { + return __objc_msgSend_30( + obj, + sel, + value, + type, + ); + } + + late final __objc_msgSend_30Ptr = _lookup< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ffi.Void>, + ffi.Pointer<pkg_ffi.Char>)>>('objc_msgSend'); + late final __objc_msgSend_30 = __objc_msgSend_30Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ffi.Void>, ffi.Pointer<pkg_ffi.Char>)>(); + + instancetype _objc_msgSend_31( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> coder, + ) { + return __objc_msgSend_31( + obj, + sel, + coder, + ); + } + + late final __objc_msgSend_31Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_31 = __objc_msgSend_31Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + instancetype _objc_msgSend_32( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> coder, + ) { + return __objc_msgSend_32( + obj, + sel, + coder, + ); + } + + late final __objc_msgSend_32Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_32 = __objc_msgSend_32Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_33( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_33( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_33Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, pkg_ffi.Char)>>('objc_msgSend'); + late final __objc_msgSend_33 = __objc_msgSend_33Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_34( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_34( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_34Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, pkg_ffi.UnsignedChar)>>('objc_msgSend'); + late final __objc_msgSend_34 = __objc_msgSend_34Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_35( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_35( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_35Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, pkg_ffi.Short)>>('objc_msgSend'); + late final __objc_msgSend_35 = __objc_msgSend_35Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_36( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_36( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_36Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, pkg_ffi.UnsignedShort)>>('objc_msgSend'); + late final __objc_msgSend_36 = __objc_msgSend_36Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_37( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_37( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_37Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, pkg_ffi.Int)>>('objc_msgSend'); + late final __objc_msgSend_37 = __objc_msgSend_37Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_38( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_38( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_38Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, pkg_ffi.UnsignedInt)>>('objc_msgSend'); + late final __objc_msgSend_38 = __objc_msgSend_38Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_39( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_39( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_39Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, pkg_ffi.Long)>>('objc_msgSend'); + late final __objc_msgSend_39 = __objc_msgSend_39Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_40( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_40( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_40Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, pkg_ffi.UnsignedLong)>>('objc_msgSend'); + late final __objc_msgSend_40 = __objc_msgSend_40Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_41( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_41( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_41Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, pkg_ffi.LongLong)>>('objc_msgSend'); + late final __objc_msgSend_41 = __objc_msgSend_41Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_42( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_42( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_42Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, pkg_ffi.UnsignedLongLong)>>('objc_msgSend'); + late final __objc_msgSend_42 = __objc_msgSend_42Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_43( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + double value, + ) { + return __objc_msgSend_43( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_43Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Float)>>('objc_msgSend'); + late final __objc_msgSend_43 = __objc_msgSend_43Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_44( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + double value, + ) { + return __objc_msgSend_44( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_44Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Double)>>('objc_msgSend'); + late final __objc_msgSend_44 = __objc_msgSend_44Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_45( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + bool value, + ) { + return __objc_msgSend_45( + obj, + sel, + value ? 1 : 0, + ); + } + + late final __objc_msgSend_45Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Uint8)>>('objc_msgSend'); + late final __objc_msgSend_45 = __objc_msgSend_45Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_46( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_46( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_46Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, NSInteger)>>('objc_msgSend'); + late final __objc_msgSend_46 = __objc_msgSend_46Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_47( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_47( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_47Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend'); + late final __objc_msgSend_47 = __objc_msgSend_47Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + int _objc_msgSend_48( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_48( + obj, + sel, + ); + } + + late final __objc_msgSend_48Ptr = _lookup< + ffi.NativeFunction< + pkg_ffi.Char Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_48 = __objc_msgSend_48Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_49( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_49( + obj, + sel, + ); + } + + late final __objc_msgSend_49Ptr = _lookup< + ffi.NativeFunction< + pkg_ffi.UnsignedChar Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_49 = __objc_msgSend_49Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_50( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_50( + obj, + sel, + ); + } + + late final __objc_msgSend_50Ptr = _lookup< + ffi.NativeFunction< + pkg_ffi.Short Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_50 = __objc_msgSend_50Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_51( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_51( + obj, + sel, + ); + } + + late final __objc_msgSend_51Ptr = _lookup< + ffi.NativeFunction< + pkg_ffi.UnsignedShort Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_51 = __objc_msgSend_51Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_52( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_52( + obj, + sel, + ); + } + + late final __objc_msgSend_52Ptr = _lookup< + ffi.NativeFunction< + pkg_ffi.Int Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_52 = __objc_msgSend_52Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_53( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_53( + obj, + sel, + ); + } + + late final __objc_msgSend_53Ptr = _lookup< + ffi.NativeFunction< + pkg_ffi.UnsignedInt Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_53 = __objc_msgSend_53Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_54( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_54( + obj, + sel, + ); + } + + late final __objc_msgSend_54Ptr = _lookup< + ffi.NativeFunction< + pkg_ffi.Long Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_54 = __objc_msgSend_54Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_55( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_55( + obj, + sel, + ); + } + + late final __objc_msgSend_55Ptr = _lookup< + ffi.NativeFunction< + pkg_ffi.UnsignedLong Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_55 = __objc_msgSend_55Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_56( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_56( + obj, + sel, + ); + } + + late final __objc_msgSend_56Ptr = _lookup< + ffi.NativeFunction< + pkg_ffi.LongLong Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_56 = __objc_msgSend_56Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_57( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_57( + obj, + sel, + ); + } + + late final __objc_msgSend_57Ptr = _lookup< + ffi.NativeFunction< + pkg_ffi.UnsignedLongLong Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_57 = __objc_msgSend_57Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + double _objc_msgSend_58( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_58( + obj, + sel, + ); + } + + late final __objc_msgSend_58Ptr = _lookup< + ffi.NativeFunction< + ffi.Float Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_58 = __objc_msgSend_58Ptr.asFunction< + double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + double _objc_msgSend_59( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_59( + obj, + sel, + ); + } + + late final __objc_msgSend_59Ptr = _lookup< + ffi.NativeFunction< + ffi.Double Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_59 = __objc_msgSend_59Ptr.asFunction< + double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_60( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_60( + obj, + sel, + ); + } + + late final __objc_msgSend_60Ptr = _lookup< + ffi.NativeFunction< + NSInteger Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_60 = __objc_msgSend_60Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_61( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_61( + obj, + sel, + ); + } + + late final __objc_msgSend_61Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_61 = __objc_msgSend_61Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_62( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> otherNumber, + ) { + return __objc_msgSend_62( + obj, + sel, + otherNumber, + ); + } + + late final __objc_msgSend_62Ptr = _lookup< + ffi.NativeFunction< + ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_62 = __objc_msgSend_62Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + bool _objc_msgSend_63( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> number, + ) { + return __objc_msgSend_63( + obj, + sel, + number, + ) != + 0; + } + + late final __objc_msgSend_63Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_63 = __objc_msgSend_63Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_64( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> locale, + ) { + return __objc_msgSend_64( + obj, + sel, + locale, + ); + } + + late final __objc_msgSend_64Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_64 = __objc_msgSend_64Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_65( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_65( + obj, + sel, + ); + } + + late final __objc_msgSend_65Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_65 = __objc_msgSend_65Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_66( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_66( + obj, + sel, + ); + } + + late final __objc_msgSend_66Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_66 = __objc_msgSend_66Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + int _objc_msgSend_67( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_67( + obj, + sel, + ); + } + + late final __objc_msgSend_67Ptr = _lookup< + ffi.NativeFunction< + ffi.Int32 Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_67 = __objc_msgSend_67Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_68( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_68( + obj, + sel, + ); + } + + late final __objc_msgSend_68Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_68 = __objc_msgSend_68Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + instancetype _objc_msgSend_69( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> anObject, + int type, + int index, + ) { + return __objc_msgSend_69( + obj, + sel, + anObject, + type, + index, + ); + } + + late final __objc_msgSend_69Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, ffi.Int32, NSUInteger)>>('objc_msgSend'); + late final __objc_msgSend_69 = __objc_msgSend_69Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, int, int)>(); + + instancetype _objc_msgSend_70( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> anObject, + int type, + int index, + int associatedIndex, + ) { + return __objc_msgSend_70( + obj, + sel, + anObject, + type, + index, + associatedIndex, + ); + } + + late final __objc_msgSend_70Ptr = _lookup< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Int32, + NSUInteger, + NSUInteger)>>('objc_msgSend'); + late final __objc_msgSend_70 = __objc_msgSend_70Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, int, int, int)>(); + + instancetype _objc_msgSend_71( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_71( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_71Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSUInteger)>>('objc_msgSend'); + late final __objc_msgSend_71 = __objc_msgSend_71Ptr.asFunction< + instancetype Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + instancetype _objc_msgSend_72( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + NSRange range, + ) { + return __objc_msgSend_72( + obj, + sel, + range, + ); + } + + late final __objc_msgSend_72Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSRange)>>('objc_msgSend'); + late final __objc_msgSend_72 = __objc_msgSend_72Ptr.asFunction< + instancetype Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>(); + + instancetype _objc_msgSend_73( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> indexSet, + ) { + return __objc_msgSend_73( + obj, + sel, + indexSet, + ); + } + + late final __objc_msgSend_73Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_73 = __objc_msgSend_73Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + bool _objc_msgSend_74( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> indexSet, + ) { + return __objc_msgSend_74( + obj, + sel, + indexSet, + ) != + 0; + } + + late final __objc_msgSend_74Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_74 = __objc_msgSend_74Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + int _objc_msgSend_75( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_75( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_75Ptr = _lookup< + ffi.NativeFunction< + NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSUInteger)>>('objc_msgSend'); + late final __objc_msgSend_75 = __objc_msgSend_75Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + int _objc_msgSend_76( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<NSUInteger> indexBuffer, + int bufferSize, + NSRangePointer range, + ) { + return __objc_msgSend_76( + obj, + sel, + indexBuffer, + bufferSize, + range, + ); + } + + late final __objc_msgSend_76Ptr = _lookup< + ffi.NativeFunction< + NSUInteger Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<NSUInteger>, + NSUInteger, + NSRangePointer)>>('objc_msgSend'); + late final __objc_msgSend_76 = __objc_msgSend_76Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<NSUInteger>, int, NSRangePointer)>(); + + int _objc_msgSend_77( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + NSRange range, + ) { + return __objc_msgSend_77( + obj, + sel, + range, + ); + } + + late final __objc_msgSend_77Ptr = _lookup< + ffi.NativeFunction< + NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSRange)>>('objc_msgSend'); + late final __objc_msgSend_77 = __objc_msgSend_77Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>(); + + bool _objc_msgSend_78( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_78( + obj, + sel, + value, + ) != + 0; + } + + late final __objc_msgSend_78Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSUInteger)>>('objc_msgSend'); + late final __objc_msgSend_78 = __objc_msgSend_78Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + bool _objc_msgSend_79( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + NSRange range, + ) { + return __objc_msgSend_79( + obj, + sel, + range, + ) != + 0; + } + + late final __objc_msgSend_79Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSRange)>>('objc_msgSend'); + late final __objc_msgSend_79 = __objc_msgSend_79Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>(); + + bool _objc_msgSend_80( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> indexSet, + ) { + return __objc_msgSend_80( + obj, + sel, + indexSet, + ) != + 0; + } + + late final __objc_msgSend_80Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_80 = __objc_msgSend_80Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_81( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> block, + ) { + return __objc_msgSend_81( + obj, + sel, + block, + ); + } + + late final __objc_msgSend_81Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_81 = __objc_msgSend_81Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_82( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int opts, + ffi.Pointer<ObjCObject> block, + ) { + return __objc_msgSend_82( + obj, + sel, + opts, + block, + ); + } + + late final __objc_msgSend_82Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_82 = __objc_msgSend_82Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, + ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_83( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + NSRange range, + int opts, + ffi.Pointer<ObjCObject> block, + ) { + return __objc_msgSend_83( + obj, + sel, + range, + opts, + block, + ); + } + + late final __objc_msgSend_83Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSRange, ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_83 = __objc_msgSend_83Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int, + ffi.Pointer<ObjCObject>)>(); + + int _objc_msgSend_84( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> predicate, + ) { + return __objc_msgSend_84( + obj, + sel, + predicate, + ); + } + + late final __objc_msgSend_84Ptr = _lookup< + ffi.NativeFunction< + NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_84 = __objc_msgSend_84Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + int _objc_msgSend_85( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int opts, + ffi.Pointer<ObjCObject> predicate, + ) { + return __objc_msgSend_85( + obj, + sel, + opts, + predicate, + ); + } + + late final __objc_msgSend_85Ptr = _lookup< + ffi.NativeFunction< + NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_85 = __objc_msgSend_85Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, + ffi.Pointer<ObjCObject>)>(); + + int _objc_msgSend_86( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + NSRange range, + int opts, + ffi.Pointer<ObjCObject> predicate, + ) { + return __objc_msgSend_86( + obj, + sel, + range, + opts, + predicate, + ); + } + + late final __objc_msgSend_86Ptr = _lookup< + ffi.NativeFunction< + NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSRange, ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_86 = __objc_msgSend_86Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int, + ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_87( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> predicate, + ) { + return __objc_msgSend_87( + obj, + sel, + predicate, + ); + } + + late final __objc_msgSend_87Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_87 = __objc_msgSend_87Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_88( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int opts, + ffi.Pointer<ObjCObject> predicate, + ) { + return __objc_msgSend_88( + obj, + sel, + opts, + predicate, + ); + } + + late final __objc_msgSend_88Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Int32, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_88 = __objc_msgSend_88Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_89( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + NSRange range, + int opts, + ffi.Pointer<ObjCObject> predicate, + ) { + return __objc_msgSend_89( + obj, + sel, + range, + opts, + predicate, + ); + } + + late final __objc_msgSend_89Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + NSRange, + ffi.Int32, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_89 = __objc_msgSend_89Ptr.asFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, NSRange, int, ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_90( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> block, + ) { + return __objc_msgSend_90( + obj, + sel, + block, + ); + } + + late final __objc_msgSend_90Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_90 = __objc_msgSend_90Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_91( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int opts, + ffi.Pointer<ObjCObject> block, + ) { + return __objc_msgSend_91( + obj, + sel, + opts, + block, + ); + } + + late final __objc_msgSend_91Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_91 = __objc_msgSend_91Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, + ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_92( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + NSRange range, + int opts, + ffi.Pointer<ObjCObject> block, + ) { + return __objc_msgSend_92( + obj, + sel, + range, + opts, + block, + ); + } + + late final __objc_msgSend_92Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSRange, ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_92 = __objc_msgSend_92Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int, + ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_93( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> indexSet, + ) { + return __objc_msgSend_93( + obj, + sel, + indexSet, + ); + } + + late final __objc_msgSend_93Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_93 = __objc_msgSend_93Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_94( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> indexSet, + ) { + return __objc_msgSend_94( + obj, + sel, + indexSet, + ); + } + + late final __objc_msgSend_94Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_94 = __objc_msgSend_94Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_95( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int value, + ) { + return __objc_msgSend_95( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_95Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSUInteger)>>('objc_msgSend'); + late final __objc_msgSend_95 = __objc_msgSend_95Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + void _objc_msgSend_96( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + NSRange range, + ) { + return __objc_msgSend_96( + obj, + sel, + range, + ); + } + + late final __objc_msgSend_96Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSRange)>>('objc_msgSend'); + late final __objc_msgSend_96 = __objc_msgSend_96Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>(); + + void _objc_msgSend_97( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int index, + int delta, + ) { + return __objc_msgSend_97( + obj, + sel, + index, + delta, + ); + } + + late final __objc_msgSend_97Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSUInteger, NSInteger)>>('objc_msgSend'); + late final __objc_msgSend_97 = __objc_msgSend_97Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int)>(); + + instancetype _objc_msgSend_98( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> changes, + ) { + return __objc_msgSend_98( + obj, + sel, + changes, + ); + } + + late final __objc_msgSend_98Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_98 = __objc_msgSend_98Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + instancetype _objc_msgSend_99( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> inserts, + ffi.Pointer<ObjCObject> insertedObjects, + ffi.Pointer<ObjCObject> removes, + ffi.Pointer<ObjCObject> removedObjects, + ffi.Pointer<ObjCObject> changes, + ) { + return __objc_msgSend_99( + obj, + sel, + inserts, + insertedObjects, + removes, + removedObjects, + changes, + ); + } + + late final __objc_msgSend_99Ptr = _lookup< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_99 = __objc_msgSend_99Ptr.asFunction< + instancetype Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>(); + + instancetype _objc_msgSend_100( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> inserts, + ffi.Pointer<ObjCObject> insertedObjects, + ffi.Pointer<ObjCObject> removes, + ffi.Pointer<ObjCObject> removedObjects, + ) { + return __objc_msgSend_100( + obj, + sel, + inserts, + insertedObjects, + removes, + removedObjects, + ); + } + + late final __objc_msgSend_100Ptr = _lookup< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_100 = __objc_msgSend_100Ptr.asFunction< + instancetype Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_101( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_101( + obj, + sel, + ); + } + + late final __objc_msgSend_101Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_101 = __objc_msgSend_101Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_102( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_102( + obj, + sel, + ); + } + + late final __objc_msgSend_102Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_102 = __objc_msgSend_102Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_103( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int index, + ) { + return __objc_msgSend_103( + obj, + sel, + index, + ); + } + + late final __objc_msgSend_103Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend'); + late final __objc_msgSend_103 = __objc_msgSend_103Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>(); + + instancetype _objc_msgSend_104( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ffi.Pointer<ObjCObject>> objects, + int cnt, + ) { + return __objc_msgSend_104( + obj, + sel, + objects, + cnt, + ); + } + + late final __objc_msgSend_104Ptr = _lookup< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ffi.Pointer<ObjCObject>>, + NSUInteger)>>('objc_msgSend'); + late final __objc_msgSend_104 = __objc_msgSend_104Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ffi.Pointer<ObjCObject>>, int)>(); + + instancetype _objc_msgSend_105( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> coder, + ) { + return __objc_msgSend_105( + obj, + sel, + coder, + ); + } + + late final __objc_msgSend_105Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_105 = __objc_msgSend_105Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_106( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> anObject, + ) { + return __objc_msgSend_106( + obj, + sel, + anObject, + ); + } + + late final __objc_msgSend_106Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_106 = __objc_msgSend_106Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_107( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> anObject, + int index, + ) { + return __objc_msgSend_107( + obj, + sel, + anObject, + index, + ); + } + + late final __objc_msgSend_107Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend'); + late final __objc_msgSend_107 = __objc_msgSend_107Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, int)>(); + + void _objc_msgSend_108( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + int index, + ffi.Pointer<ObjCObject> anObject, + ) { + return __objc_msgSend_108( + obj, + sel, + index, + anObject, + ); + } + + late final __objc_msgSend_108Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSUInteger, ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_108 = __objc_msgSend_108Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, + ffi.Pointer<ObjCObject>)>(); + + instancetype _objc_msgSend_109( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> coder, + ) { + return __objc_msgSend_109( + obj, + sel, + coder, + ); + } + + late final __objc_msgSend_109Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_109 = __objc_msgSend_109Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_110( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> typeIdentifier, + int visibility, + ffi.Pointer<ObjCObject> loadHandler, + ) { + return __objc_msgSend_110( + obj, + sel, + typeIdentifier, + visibility, + loadHandler, + ); + } + + late final __objc_msgSend_110Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Int32, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_110 = __objc_msgSend_110Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, int, ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_111( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> typeIdentifier, + int fileOptions, + int visibility, + ffi.Pointer<ObjCObject> loadHandler, + ) { + return __objc_msgSend_111( + obj, + sel, + typeIdentifier, + fileOptions, + visibility, + loadHandler, + ); + } + + late final __objc_msgSend_111Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Int32, + ffi.Int32, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_111 = __objc_msgSend_111Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, int, int, ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_112( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_112( + obj, + sel, + ); + } + + late final __objc_msgSend_112Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_112 = __objc_msgSend_112Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + bool _objc_msgSend_113( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> typeIdentifier, + ) { + return __objc_msgSend_113( + obj, + sel, + typeIdentifier, + ) != + 0; + } + + late final __objc_msgSend_113Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_113 = __objc_msgSend_113Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + bool _objc_msgSend_114( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> typeIdentifier, + int fileOptions, + ) { + return __objc_msgSend_114( + obj, + sel, + typeIdentifier, + fileOptions, + ) != + 0; + } + + late final __objc_msgSend_114Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend'); + late final __objc_msgSend_114 = __objc_msgSend_114Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, int)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_115( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> typeIdentifier, + ffi.Pointer<ObjCObject> completionHandler, + ) { + return __objc_msgSend_115( + obj, + sel, + typeIdentifier, + completionHandler, + ); + } + + late final __objc_msgSend_115Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_115 = __objc_msgSend_115Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_116( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> typeIdentifier, + ffi.Pointer<ObjCObject> completionHandler, + ) { + return __objc_msgSend_116( + obj, + sel, + typeIdentifier, + completionHandler, + ); + } + + late final __objc_msgSend_116Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_116 = __objc_msgSend_116Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_117( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> typeIdentifier, + ffi.Pointer<ObjCObject> completionHandler, + ) { + return __objc_msgSend_117( + obj, + sel, + typeIdentifier, + completionHandler, + ); + } + + late final __objc_msgSend_117Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_117 = __objc_msgSend_117Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_118( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ) { + return __objc_msgSend_118( + obj, + sel, + ); + } + + late final __objc_msgSend_118Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend'); + late final __objc_msgSend_118 = __objc_msgSend_118Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>(); + + void _objc_msgSend_119( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> value, + ) { + return __objc_msgSend_119( + obj, + sel, + value, + ); + } + + late final __objc_msgSend_119Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_119 = __objc_msgSend_119Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + instancetype _objc_msgSend_120( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> object, + ) { + return __objc_msgSend_120( + obj, + sel, + object, + ); + } + + late final __objc_msgSend_120Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_120 = __objc_msgSend_120Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_121( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> object, + int visibility, + ) { + return __objc_msgSend_121( + obj, + sel, + object, + visibility, + ); + } + + late final __objc_msgSend_121Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend'); + late final __objc_msgSend_121 = __objc_msgSend_121Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, int)>(); + + void _objc_msgSend_122( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> aClass, + int visibility, + ffi.Pointer<ObjCObject> loadHandler, + ) { + return __objc_msgSend_122( + obj, + sel, + aClass, + visibility, + loadHandler, + ); + } + + late final __objc_msgSend_122Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Int32, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_122 = __objc_msgSend_122Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, int, ffi.Pointer<ObjCObject>)>(); + + bool _objc_msgSend_123( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> aClass, + ) { + return __objc_msgSend_123( + obj, + sel, + aClass, + ) != + 0; + } + + late final __objc_msgSend_123Ptr = _lookup< + ffi.NativeFunction< + ffi.Uint8 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_123 = __objc_msgSend_123Ptr.asFunction< + int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + ffi.Pointer<ObjCObject> _objc_msgSend_124( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> aClass, + ffi.Pointer<ObjCObject> completionHandler, + ) { + return __objc_msgSend_124( + obj, + sel, + aClass, + completionHandler, + ); + } + + late final __objc_msgSend_124Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_124 = __objc_msgSend_124Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>(); + + instancetype _objc_msgSend_125( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> item, + ffi.Pointer<ObjCObject> typeIdentifier, + ) { + return __objc_msgSend_125( + obj, + sel, + item, + typeIdentifier, + ); + } + + late final __objc_msgSend_125Ptr = _lookup< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_125 = __objc_msgSend_125Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>(); + + instancetype _objc_msgSend_126( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> fileURL, + ) { + return __objc_msgSend_126( + obj, + sel, + fileURL, + ); + } + + late final __objc_msgSend_126Ptr = _lookup< + ffi.NativeFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_126 = __objc_msgSend_126Ptr.asFunction< + instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>)>(); + + void _objc_msgSend_127( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> typeIdentifier, + NSItemProviderLoadHandler loadHandler, + ) { + return __objc_msgSend_127( + obj, + sel, + typeIdentifier, + loadHandler, + ); + } + + late final __objc_msgSend_127Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + NSItemProviderLoadHandler)>>('objc_msgSend'); + late final __objc_msgSend_127 = __objc_msgSend_127Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, NSItemProviderLoadHandler)>(); + + void _objc_msgSend_128( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> typeIdentifier, + ffi.Pointer<ObjCObject> options, + NSItemProviderCompletionHandler completionHandler, + ) { + return __objc_msgSend_128( + obj, + sel, + typeIdentifier, + options, + completionHandler, + ); + } + + late final __objc_msgSend_128Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>, + NSItemProviderCompletionHandler)>>('objc_msgSend'); + late final __objc_msgSend_128 = __objc_msgSend_128Ptr.asFunction< + void Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>, + NSItemProviderCompletionHandler)>(); + + late final ffi.Pointer<ffi.Pointer<ObjCObject>> + _NSItemProviderPreferredImageSizeKey = + _lookup<ffi.Pointer<ObjCObject>>('NSItemProviderPreferredImageSizeKey'); + + ffi.Pointer<ObjCObject> get NSItemProviderPreferredImageSizeKey => + _NSItemProviderPreferredImageSizeKey.value; + + set NSItemProviderPreferredImageSizeKey(ffi.Pointer<ObjCObject> value) => + _NSItemProviderPreferredImageSizeKey.value = value; + + late final ffi.Pointer<ffi.Pointer<ObjCObject>> + _NSExtensionJavaScriptPreprocessingResultsKey = + _lookup<ffi.Pointer<ObjCObject>>( + 'NSExtensionJavaScriptPreprocessingResultsKey'); + + ffi.Pointer<ObjCObject> get NSExtensionJavaScriptPreprocessingResultsKey => + _NSExtensionJavaScriptPreprocessingResultsKey.value; + + set NSExtensionJavaScriptPreprocessingResultsKey( + ffi.Pointer<ObjCObject> value) => + _NSExtensionJavaScriptPreprocessingResultsKey.value = value; + + late final ffi.Pointer<ffi.Pointer<ObjCObject>> + _NSExtensionJavaScriptFinalizeArgumentKey = + _lookup<ffi.Pointer<ObjCObject>>( + 'NSExtensionJavaScriptFinalizeArgumentKey'); + + ffi.Pointer<ObjCObject> get NSExtensionJavaScriptFinalizeArgumentKey => + _NSExtensionJavaScriptFinalizeArgumentKey.value; + + set NSExtensionJavaScriptFinalizeArgumentKey(ffi.Pointer<ObjCObject> value) => + _NSExtensionJavaScriptFinalizeArgumentKey.value = value; + + late final ffi.Pointer<ffi.Pointer<ObjCObject>> _NSItemProviderErrorDomain = + _lookup<ffi.Pointer<ObjCObject>>('NSItemProviderErrorDomain'); + + ffi.Pointer<ObjCObject> get NSItemProviderErrorDomain => + _NSItemProviderErrorDomain.value; + + set NSItemProviderErrorDomain(ffi.Pointer<ObjCObject> value) => + _NSItemProviderErrorDomain.value = value; + + late final ffi.Pointer<NSStringTransform> _NSStringTransformLatinToKatakana = + _lookup<NSStringTransform>('NSStringTransformLatinToKatakana'); + + NSStringTransform get NSStringTransformLatinToKatakana => + _NSStringTransformLatinToKatakana.value; + + set NSStringTransformLatinToKatakana(NSStringTransform value) => + _NSStringTransformLatinToKatakana.value = value; + + late final ffi.Pointer<NSStringTransform> _NSStringTransformLatinToHiragana = + _lookup<NSStringTransform>('NSStringTransformLatinToHiragana'); + + NSStringTransform get NSStringTransformLatinToHiragana => + _NSStringTransformLatinToHiragana.value; + + set NSStringTransformLatinToHiragana(NSStringTransform value) => + _NSStringTransformLatinToHiragana.value = value; + + late final ffi.Pointer<NSStringTransform> _NSStringTransformLatinToHangul = + _lookup<NSStringTransform>('NSStringTransformLatinToHangul'); + + NSStringTransform get NSStringTransformLatinToHangul => + _NSStringTransformLatinToHangul.value; + + set NSStringTransformLatinToHangul(NSStringTransform value) => + _NSStringTransformLatinToHangul.value = value; + + late final ffi.Pointer<NSStringTransform> _NSStringTransformLatinToArabic = + _lookup<NSStringTransform>('NSStringTransformLatinToArabic'); + + NSStringTransform get NSStringTransformLatinToArabic => + _NSStringTransformLatinToArabic.value; + + set NSStringTransformLatinToArabic(NSStringTransform value) => + _NSStringTransformLatinToArabic.value = value; + + late final ffi.Pointer<NSStringTransform> _NSStringTransformLatinToHebrew = + _lookup<NSStringTransform>('NSStringTransformLatinToHebrew'); + + NSStringTransform get NSStringTransformLatinToHebrew => + _NSStringTransformLatinToHebrew.value; + + set NSStringTransformLatinToHebrew(NSStringTransform value) => + _NSStringTransformLatinToHebrew.value = value; + + late final ffi.Pointer<NSStringTransform> _NSStringTransformLatinToThai = + _lookup<NSStringTransform>('NSStringTransformLatinToThai'); + + NSStringTransform get NSStringTransformLatinToThai => + _NSStringTransformLatinToThai.value; + + set NSStringTransformLatinToThai(NSStringTransform value) => + _NSStringTransformLatinToThai.value = value; + + late final ffi.Pointer<NSStringTransform> _NSStringTransformLatinToCyrillic = + _lookup<NSStringTransform>('NSStringTransformLatinToCyrillic'); + + NSStringTransform get NSStringTransformLatinToCyrillic => + _NSStringTransformLatinToCyrillic.value; + + set NSStringTransformLatinToCyrillic(NSStringTransform value) => + _NSStringTransformLatinToCyrillic.value = value; + + late final ffi.Pointer<NSStringTransform> _NSStringTransformLatinToGreek = + _lookup<NSStringTransform>('NSStringTransformLatinToGreek'); + + NSStringTransform get NSStringTransformLatinToGreek => + _NSStringTransformLatinToGreek.value; + + set NSStringTransformLatinToGreek(NSStringTransform value) => + _NSStringTransformLatinToGreek.value = value; + + late final ffi.Pointer<NSStringTransform> _NSStringTransformToLatin = + _lookup<NSStringTransform>('NSStringTransformToLatin'); + + NSStringTransform get NSStringTransformToLatin => + _NSStringTransformToLatin.value; + + set NSStringTransformToLatin(NSStringTransform value) => + _NSStringTransformToLatin.value = value; + + late final ffi.Pointer<NSStringTransform> _NSStringTransformMandarinToLatin = + _lookup<NSStringTransform>('NSStringTransformMandarinToLatin'); + + NSStringTransform get NSStringTransformMandarinToLatin => + _NSStringTransformMandarinToLatin.value; + + set NSStringTransformMandarinToLatin(NSStringTransform value) => + _NSStringTransformMandarinToLatin.value = value; + + late final ffi.Pointer<NSStringTransform> + _NSStringTransformHiraganaToKatakana = + _lookup<NSStringTransform>('NSStringTransformHiraganaToKatakana'); + + NSStringTransform get NSStringTransformHiraganaToKatakana => + _NSStringTransformHiraganaToKatakana.value; + + set NSStringTransformHiraganaToKatakana(NSStringTransform value) => + _NSStringTransformHiraganaToKatakana.value = value; + + late final ffi.Pointer<NSStringTransform> + _NSStringTransformFullwidthToHalfwidth = + _lookup<NSStringTransform>('NSStringTransformFullwidthToHalfwidth'); + + NSStringTransform get NSStringTransformFullwidthToHalfwidth => + _NSStringTransformFullwidthToHalfwidth.value; + + set NSStringTransformFullwidthToHalfwidth(NSStringTransform value) => + _NSStringTransformFullwidthToHalfwidth.value = value; + + late final ffi.Pointer<NSStringTransform> _NSStringTransformToXMLHex = + _lookup<NSStringTransform>('NSStringTransformToXMLHex'); + + NSStringTransform get NSStringTransformToXMLHex => + _NSStringTransformToXMLHex.value; + + set NSStringTransformToXMLHex(NSStringTransform value) => + _NSStringTransformToXMLHex.value = value; + + late final ffi.Pointer<NSStringTransform> _NSStringTransformToUnicodeName = + _lookup<NSStringTransform>('NSStringTransformToUnicodeName'); + + NSStringTransform get NSStringTransformToUnicodeName => + _NSStringTransformToUnicodeName.value; + + set NSStringTransformToUnicodeName(NSStringTransform value) => + _NSStringTransformToUnicodeName.value = value; + + late final ffi.Pointer<NSStringTransform> + _NSStringTransformStripCombiningMarks = + _lookup<NSStringTransform>('NSStringTransformStripCombiningMarks'); + + NSStringTransform get NSStringTransformStripCombiningMarks => + _NSStringTransformStripCombiningMarks.value; + + set NSStringTransformStripCombiningMarks(NSStringTransform value) => + _NSStringTransformStripCombiningMarks.value = value; + + late final ffi.Pointer<NSStringTransform> _NSStringTransformStripDiacritics = + _lookup<NSStringTransform>('NSStringTransformStripDiacritics'); + + NSStringTransform get NSStringTransformStripDiacritics => + _NSStringTransformStripDiacritics.value; + + set NSStringTransformStripDiacritics(NSStringTransform value) => + _NSStringTransformStripDiacritics.value = value; + + late final ffi.Pointer<NSStringEncodingDetectionOptionsKey> + _NSStringEncodingDetectionSuggestedEncodingsKey = + _lookup<NSStringEncodingDetectionOptionsKey>( + 'NSStringEncodingDetectionSuggestedEncodingsKey'); + + NSStringEncodingDetectionOptionsKey + get NSStringEncodingDetectionSuggestedEncodingsKey => + _NSStringEncodingDetectionSuggestedEncodingsKey.value; + + set NSStringEncodingDetectionSuggestedEncodingsKey( + NSStringEncodingDetectionOptionsKey value) => + _NSStringEncodingDetectionSuggestedEncodingsKey.value = value; + + late final ffi.Pointer<NSStringEncodingDetectionOptionsKey> + _NSStringEncodingDetectionDisallowedEncodingsKey = + _lookup<NSStringEncodingDetectionOptionsKey>( + 'NSStringEncodingDetectionDisallowedEncodingsKey'); + + NSStringEncodingDetectionOptionsKey + get NSStringEncodingDetectionDisallowedEncodingsKey => + _NSStringEncodingDetectionDisallowedEncodingsKey.value; + + set NSStringEncodingDetectionDisallowedEncodingsKey( + NSStringEncodingDetectionOptionsKey value) => + _NSStringEncodingDetectionDisallowedEncodingsKey.value = value; + + late final ffi.Pointer<NSStringEncodingDetectionOptionsKey> + _NSStringEncodingDetectionUseOnlySuggestedEncodingsKey = + _lookup<NSStringEncodingDetectionOptionsKey>( + 'NSStringEncodingDetectionUseOnlySuggestedEncodingsKey'); + + NSStringEncodingDetectionOptionsKey + get NSStringEncodingDetectionUseOnlySuggestedEncodingsKey => + _NSStringEncodingDetectionUseOnlySuggestedEncodingsKey.value; + + set NSStringEncodingDetectionUseOnlySuggestedEncodingsKey( + NSStringEncodingDetectionOptionsKey value) => + _NSStringEncodingDetectionUseOnlySuggestedEncodingsKey.value = value; + + late final ffi.Pointer<NSStringEncodingDetectionOptionsKey> + _NSStringEncodingDetectionAllowLossyKey = + _lookup<NSStringEncodingDetectionOptionsKey>( + 'NSStringEncodingDetectionAllowLossyKey'); + + NSStringEncodingDetectionOptionsKey + get NSStringEncodingDetectionAllowLossyKey => + _NSStringEncodingDetectionAllowLossyKey.value; + + set NSStringEncodingDetectionAllowLossyKey( + NSStringEncodingDetectionOptionsKey value) => + _NSStringEncodingDetectionAllowLossyKey.value = value; + + late final ffi.Pointer<NSStringEncodingDetectionOptionsKey> + _NSStringEncodingDetectionFromWindowsKey = + _lookup<NSStringEncodingDetectionOptionsKey>( + 'NSStringEncodingDetectionFromWindowsKey'); + + NSStringEncodingDetectionOptionsKey + get NSStringEncodingDetectionFromWindowsKey => + _NSStringEncodingDetectionFromWindowsKey.value; + + set NSStringEncodingDetectionFromWindowsKey( + NSStringEncodingDetectionOptionsKey value) => + _NSStringEncodingDetectionFromWindowsKey.value = value; + + late final ffi.Pointer<NSStringEncodingDetectionOptionsKey> + _NSStringEncodingDetectionLossySubstitutionKey = + _lookup<NSStringEncodingDetectionOptionsKey>( + 'NSStringEncodingDetectionLossySubstitutionKey'); + + NSStringEncodingDetectionOptionsKey + get NSStringEncodingDetectionLossySubstitutionKey => + _NSStringEncodingDetectionLossySubstitutionKey.value; + + set NSStringEncodingDetectionLossySubstitutionKey( + NSStringEncodingDetectionOptionsKey value) => + _NSStringEncodingDetectionLossySubstitutionKey.value = value; + + late final ffi.Pointer<NSStringEncodingDetectionOptionsKey> + _NSStringEncodingDetectionLikelyLanguageKey = + _lookup<NSStringEncodingDetectionOptionsKey>( + 'NSStringEncodingDetectionLikelyLanguageKey'); + + NSStringEncodingDetectionOptionsKey + get NSStringEncodingDetectionLikelyLanguageKey => + _NSStringEncodingDetectionLikelyLanguageKey.value; + + set NSStringEncodingDetectionLikelyLanguageKey( + NSStringEncodingDetectionOptionsKey value) => + _NSStringEncodingDetectionLikelyLanguageKey.value = value; + + void _objc_msgSend_129( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + NSRange range, + ffi.Pointer<ObjCObject> aString, + ) { + return __objc_msgSend_129( + obj, + sel, + range, + aString, + ); + } + + late final __objc_msgSend_129Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, + NSRange, ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_129 = __objc_msgSend_129Ptr.asFunction< + void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, + ffi.Pointer<ObjCObject>)>(); + + late final ffi.Pointer<NSExceptionName> _NSCharacterConversionException = + _lookup<NSExceptionName>('NSCharacterConversionException'); + + NSExceptionName get NSCharacterConversionException => + _NSCharacterConversionException.value; + + set NSCharacterConversionException(NSExceptionName value) => + _NSCharacterConversionException.value = value; + + late final ffi.Pointer<NSExceptionName> _NSParseErrorException = + _lookup<NSExceptionName>('NSParseErrorException'); + + NSExceptionName get NSParseErrorException => _NSParseErrorException.value; + + set NSParseErrorException(NSExceptionName value) => + _NSParseErrorException.value = value; + + ffi.Pointer<ObjCObject> _objc_msgSend_130( + ffi.Pointer<ObjCObject> obj, + ffi.Pointer<ObjCSel> sel, + ffi.Pointer<ObjCObject> a, + ffi.Pointer<ObjCObject> b, + ) { + return __objc_msgSend_130( + obj, + sel, + a, + b, + ); + } + + late final __objc_msgSend_130Ptr = _lookup< + ffi.NativeFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>>('objc_msgSend'); + late final __objc_msgSend_130 = __objc_msgSend_130Ptr.asFunction< + ffi.Pointer<ObjCObject> Function( + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCSel>, + ffi.Pointer<ObjCObject>, + ffi.Pointer<ObjCObject>)>(); +} + +abstract class NSComparisonResult { + static const int NSOrderedAscending = -1; + static const int NSOrderedSame = 0; + static const int NSOrderedDescending = 1; +} + +abstract class NSEnumerationOptions { + static const int NSEnumerationConcurrent = 1; + static const int NSEnumerationReverse = 2; +} + +abstract class NSSortOptions { + static const int NSSortConcurrent = 1; + static const int NSSortStable = 16; +} + +abstract class NSQualityOfService { + static const int NSQualityOfServiceUserInteractive = 33; + static const int NSQualityOfServiceUserInitiated = 25; + static const int NSQualityOfServiceUtility = 17; + static const int NSQualityOfServiceBackground = 9; + static const int NSQualityOfServiceDefault = -1; +} + +typedef NSInteger = pkg_ffi.Long; + +class __CFString extends ffi.Opaque {} + +abstract class CFComparisonResult { + static const int kCFCompareLessThan = -1; + static const int kCFCompareEqualTo = 0; + static const int kCFCompareGreaterThan = 1; +} + +typedef CFIndex = pkg_ffi.Long; + +class CFRange extends ffi.Struct { + @CFIndex() + external int location; + + @CFIndex() + external int length; +} + +class __CFNull extends ffi.Opaque {} + +typedef CFNullRef = ffi.Pointer<__CFNull>; + +class __CFAllocator extends ffi.Opaque {} + +typedef CFAllocatorRef = ffi.Pointer<__CFAllocator>; + +class CFAllocatorContext extends ffi.Struct { + @CFIndex() + external int version; + + external ffi.Pointer<ffi.Void> info; + + external CFAllocatorRetainCallBack retain; + + external CFAllocatorReleaseCallBack release; + + external CFAllocatorCopyDescriptionCallBack copyDescription; + + external CFAllocatorAllocateCallBack allocate; + + external CFAllocatorReallocateCallBack reallocate; + + external CFAllocatorDeallocateCallBack deallocate; + + external CFAllocatorPreferredSizeCallBack preferredSize; +} + +typedef CFAllocatorRetainCallBack = ffi.Pointer< + ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.Pointer<ffi.Void>)>>; +typedef CFAllocatorReleaseCallBack + = ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>; +typedef CFAllocatorCopyDescriptionCallBack = ffi + .Pointer<ffi.NativeFunction<CFStringRef Function(ffi.Pointer<ffi.Void>)>>; +typedef CFStringRef = ffi.Pointer<__CFString>; +typedef CFAllocatorAllocateCallBack = ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer<ffi.Void> Function( + CFIndex, CFOptionFlags, ffi.Pointer<ffi.Void>)>>; +typedef CFOptionFlags = pkg_ffi.UnsignedLong; +typedef CFAllocatorReallocateCallBack = ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer<ffi.Void> Function(ffi.Pointer<ffi.Void>, CFIndex, + CFOptionFlags, ffi.Pointer<ffi.Void>)>>; +typedef CFAllocatorDeallocateCallBack = ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Void>)>>; +typedef CFAllocatorPreferredSizeCallBack = ffi.Pointer< + ffi.NativeFunction< + CFIndex Function(CFIndex, CFOptionFlags, ffi.Pointer<ffi.Void>)>>; + +ffi.Pointer<ObjCSel> _registerName(StringTestObjCLibrary _lib, String name) { + final cstr = name.toNativeUtf8(); + final sel = _lib._sel_registerName(cstr.cast()); + pkg_ffi.calloc.free(cstr); + return sel; +} + +ffi.Pointer<ObjCObject> _getClass(StringTestObjCLibrary _lib, String name) { + final cstr = name.toNativeUtf8(); + final clazz = _lib._objc_getClass(cstr.cast()); + pkg_ffi.calloc.free(cstr); + return clazz; +} + +class _ObjCWrapper { + final ffi.Pointer<ObjCObject> _id; + final StringTestObjCLibrary _lib; + _ObjCWrapper._(this._id, this._lib); +} + +class NSValue extends NSObject { + NSValue._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSValue castFrom<T extends _ObjCWrapper>(T other) { + return NSValue._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_getValue_size; + void getValue_size(ffi.Pointer<ffi.Void> value, int size) { + _sel_getValue_size ??= _registerName(_lib, "getValue:size:"); + _lib._objc_msgSend_28(_id, _sel_getValue_size!, value, size); + } + + static ffi.Pointer<ObjCSel>? _sel_objCType; + ffi.Pointer<pkg_ffi.Char> get objCType { + _sel_objCType ??= _registerName(_lib, "objCType"); + return _lib._objc_msgSend_29(_id, _sel_objCType!); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithBytes_objCType; + NSValue initWithBytes_objCType( + ffi.Pointer<ffi.Void> value, ffi.Pointer<pkg_ffi.Char> type) { + _sel_initWithBytes_objCType ??= + _registerName(_lib, "initWithBytes:objCType:"); + final _ret = + _lib._objc_msgSend_30(_id, _sel_initWithBytes_objCType!, value, type); + return NSValue._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithCoder; + NSValue initWithCoder(NSObject coder) { + _sel_initWithCoder ??= _registerName(_lib, "initWithCoder:"); + final _ret = _lib._objc_msgSend_31(_id, _sel_initWithCoder!, coder._id); + return NSValue._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSValue new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSValue"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSValue._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSValue alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSValue"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSValue._(_ret, _lib); + } +} + +class NSObject extends _ObjCWrapper { + NSObject._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSObject castFrom<T extends _ObjCWrapper>(T other) { + return NSObject._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_load; + static void load(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_load ??= _registerName(_lib, "load"); + _lib._objc_msgSend_0(_class!, _sel_load!); + } + + static ffi.Pointer<ObjCSel>? _sel_initialize; + static void initialize(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_initialize ??= _registerName(_lib, "initialize"); + _lib._objc_msgSend_0(_class!, _sel_initialize!); + } + + static ffi.Pointer<ObjCSel>? _sel_init; + NSObject init() { + _sel_init ??= _registerName(_lib, "init"); + final _ret = _lib._objc_msgSend_1(_id, _sel_init!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSObject new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_allocWithZone; + static NSObject allocWithZone( + StringTestObjCLibrary _lib, ffi.Pointer<_NSZone> zone) { + _class ??= _getClass(_lib, "NSObject"); + _sel_allocWithZone ??= _registerName(_lib, "allocWithZone:"); + final _ret = _lib._objc_msgSend_2(_class!, _sel_allocWithZone!, zone); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSObject alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_dealloc; + void dealloc() { + _sel_dealloc ??= _registerName(_lib, "dealloc"); + _lib._objc_msgSend_0(_id, _sel_dealloc!); + } + + static ffi.Pointer<ObjCSel>? _sel_finalize; + void finalize() { + _sel_finalize ??= _registerName(_lib, "finalize"); + _lib._objc_msgSend_0(_id, _sel_finalize!); + } + + static ffi.Pointer<ObjCSel>? _sel_copy; + NSObject copy() { + _sel_copy ??= _registerName(_lib, "copy"); + final _ret = _lib._objc_msgSend_3(_id, _sel_copy!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_mutableCopy; + NSObject mutableCopy() { + _sel_mutableCopy ??= _registerName(_lib, "mutableCopy"); + final _ret = _lib._objc_msgSend_4(_id, _sel_mutableCopy!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_copyWithZone; + static NSObject copyWithZone( + StringTestObjCLibrary _lib, ffi.Pointer<_NSZone> zone) { + _class ??= _getClass(_lib, "NSObject"); + _sel_copyWithZone ??= _registerName(_lib, "copyWithZone:"); + final _ret = _lib._objc_msgSend_5(_class!, _sel_copyWithZone!, zone); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_mutableCopyWithZone; + static NSObject mutableCopyWithZone( + StringTestObjCLibrary _lib, ffi.Pointer<_NSZone> zone) { + _class ??= _getClass(_lib, "NSObject"); + _sel_mutableCopyWithZone ??= _registerName(_lib, "mutableCopyWithZone:"); + final _ret = _lib._objc_msgSend_6(_class!, _sel_mutableCopyWithZone!, zone); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_instancesRespondToSelector; + static bool instancesRespondToSelector( + StringTestObjCLibrary _lib, ffi.Pointer<ObjCSel> aSelector) { + _class ??= _getClass(_lib, "NSObject"); + _sel_instancesRespondToSelector ??= + _registerName(_lib, "instancesRespondToSelector:"); + return _lib._objc_msgSend_7( + _class!, _sel_instancesRespondToSelector!, aSelector); + } + + static ffi.Pointer<ObjCSel>? _sel_conformsToProtocol; + static bool conformsToProtocol( + StringTestObjCLibrary _lib, NSObject protocol) { + _class ??= _getClass(_lib, "NSObject"); + _sel_conformsToProtocol ??= _registerName(_lib, "conformsToProtocol:"); + return _lib._objc_msgSend_8( + _class!, _sel_conformsToProtocol!, protocol._id); + } + + static ffi.Pointer<ObjCSel>? _sel_methodForSelector; + IMP methodForSelector(ffi.Pointer<ObjCSel> aSelector) { + _sel_methodForSelector ??= _registerName(_lib, "methodForSelector:"); + return _lib._objc_msgSend_9(_id, _sel_methodForSelector!, aSelector); + } + + static ffi.Pointer<ObjCSel>? _sel_instanceMethodForSelector; + static IMP instanceMethodForSelector( + StringTestObjCLibrary _lib, ffi.Pointer<ObjCSel> aSelector) { + _class ??= _getClass(_lib, "NSObject"); + _sel_instanceMethodForSelector ??= + _registerName(_lib, "instanceMethodForSelector:"); + return _lib._objc_msgSend_10( + _class!, _sel_instanceMethodForSelector!, aSelector); + } + + static ffi.Pointer<ObjCSel>? _sel_doesNotRecognizeSelector; + void doesNotRecognizeSelector(ffi.Pointer<ObjCSel> aSelector) { + _sel_doesNotRecognizeSelector ??= + _registerName(_lib, "doesNotRecognizeSelector:"); + _lib._objc_msgSend_11(_id, _sel_doesNotRecognizeSelector!, aSelector); + } + + static ffi.Pointer<ObjCSel>? _sel_forwardingTargetForSelector; + NSObject forwardingTargetForSelector(ffi.Pointer<ObjCSel> aSelector) { + _sel_forwardingTargetForSelector ??= + _registerName(_lib, "forwardingTargetForSelector:"); + final _ret = _lib._objc_msgSend_12( + _id, _sel_forwardingTargetForSelector!, aSelector); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_forwardInvocation; + void forwardInvocation(NSObject anInvocation) { + _sel_forwardInvocation ??= _registerName(_lib, "forwardInvocation:"); + _lib._objc_msgSend_13(_id, _sel_forwardInvocation!, anInvocation._id); + } + + static ffi.Pointer<ObjCSel>? _sel_methodSignatureForSelector; + NSMethodSignature methodSignatureForSelector(ffi.Pointer<ObjCSel> aSelector) { + _sel_methodSignatureForSelector ??= + _registerName(_lib, "methodSignatureForSelector:"); + final _ret = + _lib._objc_msgSend_14(_id, _sel_methodSignatureForSelector!, aSelector); + return NSMethodSignature._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_instanceMethodSignatureForSelector; + static NSMethodSignature instanceMethodSignatureForSelector( + StringTestObjCLibrary _lib, ffi.Pointer<ObjCSel> aSelector) { + _class ??= _getClass(_lib, "NSObject"); + _sel_instanceMethodSignatureForSelector ??= + _registerName(_lib, "instanceMethodSignatureForSelector:"); + final _ret = _lib._objc_msgSend_15( + _class!, _sel_instanceMethodSignatureForSelector!, aSelector); + return NSMethodSignature._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_allowsWeakReference; + bool allowsWeakReference() { + _sel_allowsWeakReference ??= _registerName(_lib, "allowsWeakReference"); + return _lib._objc_msgSend_16(_id, _sel_allowsWeakReference!); + } + + static ffi.Pointer<ObjCSel>? _sel_retainWeakReference; + bool retainWeakReference() { + _sel_retainWeakReference ??= _registerName(_lib, "retainWeakReference"); + return _lib._objc_msgSend_16(_id, _sel_retainWeakReference!); + } + + static ffi.Pointer<ObjCSel>? _sel_isSubclassOfClass; + static bool isSubclassOfClass(StringTestObjCLibrary _lib, NSObject aClass) { + _class ??= _getClass(_lib, "NSObject"); + _sel_isSubclassOfClass ??= _registerName(_lib, "isSubclassOfClass:"); + return _lib._objc_msgSend_17(_class!, _sel_isSubclassOfClass!, aClass._id); + } + + static ffi.Pointer<ObjCSel>? _sel_resolveClassMethod; + static bool resolveClassMethod( + StringTestObjCLibrary _lib, ffi.Pointer<ObjCSel> sel) { + _class ??= _getClass(_lib, "NSObject"); + _sel_resolveClassMethod ??= _registerName(_lib, "resolveClassMethod:"); + return _lib._objc_msgSend_18(_class!, _sel_resolveClassMethod!, sel); + } + + static ffi.Pointer<ObjCSel>? _sel_resolveInstanceMethod; + static bool resolveInstanceMethod( + StringTestObjCLibrary _lib, ffi.Pointer<ObjCSel> sel) { + _class ??= _getClass(_lib, "NSObject"); + _sel_resolveInstanceMethod ??= + _registerName(_lib, "resolveInstanceMethod:"); + return _lib._objc_msgSend_19(_class!, _sel_resolveInstanceMethod!, sel); + } + + static ffi.Pointer<ObjCSel>? _sel_hash; + static int hash(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_hash ??= _registerName(_lib, "hash"); + return _lib._objc_msgSend_20(_class!, _sel_hash!); + } + + static ffi.Pointer<ObjCSel>? _sel_superclass; + static NSObject superclass(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_superclass ??= _registerName(_lib, "superclass"); + final _ret = _lib._objc_msgSend_21(_class!, _sel_superclass!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_class1; + static NSObject class1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_class1 ??= _registerName(_lib, "class"); + final _ret = _lib._objc_msgSend_22(_class!, _sel_class1!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_description; + static NSString description(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_description ??= _registerName(_lib, "description"); + final _ret = _lib._objc_msgSend_27(_class!, _sel_description!); + return NSString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_debugDescription; + static NSString debugDescription(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSObject"); + _sel_debugDescription ??= _registerName(_lib, "debugDescription"); + final _ret = _lib._objc_msgSend_27(_class!, _sel_debugDescription!); + return NSString._(_ret, _lib); + } +} + +typedef instancetype = ffi.Pointer<ObjCObject>; + +class ObjCObject extends ffi.Opaque {} + +class _NSZone extends ffi.Opaque {} + +class ObjCSel extends ffi.Opaque {} + +typedef IMP = ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>; + +class NSMethodSignature extends _ObjCWrapper { + NSMethodSignature._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSMethodSignature castFrom<T extends _ObjCWrapper>(T other) { + return NSMethodSignature._(other._id, other._lib); + } +} + +typedef NSUInteger = pkg_ffi.UnsignedLong; + +class NSString extends NSObject { + NSString._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSString castFrom<T extends _ObjCWrapper>(T other) { + return NSString._(other._id, other._lib); + } + + factory NSString(StringTestObjCLibrary _lib, String str) { + final cstr = str.toNativeUtf8(); + final nsstr = stringWithCString_encoding(_lib, cstr.cast(), 4 /* UTF8 */); + pkg_ffi.calloc.free(cstr); + return nsstr; + } + + @override + String toString() => UTF8String().cast<pkg_ffi.Utf8>().toDartString(); + + static ffi.Pointer<ObjCSel>? _sel_length; + int get length { + _sel_length ??= _registerName(_lib, "length"); + return _lib._objc_msgSend_20(_id, _sel_length!); + } + + static ffi.Pointer<ObjCSel>? _sel_characterAtIndex; + int characterAtIndex(int index) { + _sel_characterAtIndex ??= _registerName(_lib, "characterAtIndex:"); + return _lib._objc_msgSend_23(_id, _sel_characterAtIndex!, index); + } + + static ffi.Pointer<ObjCSel>? _sel_init; + @override + NSString init() { + _sel_init ??= _registerName(_lib, "init"); + final _ret = _lib._objc_msgSend_1(_id, _sel_init!); + return NSString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithCoder; + NSString initWithCoder(NSObject coder) { + _sel_initWithCoder ??= _registerName(_lib, "initWithCoder:"); + final _ret = _lib._objc_msgSend_24(_id, _sel_initWithCoder!, coder._id); + return NSString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_stringWithCString_encoding; + static NSString stringWithCString_encoding( + StringTestObjCLibrary _lib, ffi.Pointer<pkg_ffi.Char> cString, int enc) { + _class ??= _getClass(_lib, "NSString"); + _sel_stringWithCString_encoding ??= + _registerName(_lib, "stringWithCString:encoding:"); + final _ret = _lib._objc_msgSend_25( + _class!, _sel_stringWithCString_encoding!, cString, enc); + return NSString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_UTF8String; + ffi.Pointer<pkg_ffi.Char> UTF8String() { + _sel_UTF8String ??= _registerName(_lib, "UTF8String"); + return _lib._objc_msgSend_26(_id, _sel_UTF8String!); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSString new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSString"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSString alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSString"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSString._(_ret, _lib); + } +} + +extension StringToNSString on String { + NSString toNSString(StringTestObjCLibrary lib) => NSString(lib, this); +} + +typedef unichar = pkg_ffi.UnsignedShort; + +class NSNumber extends NSValue { + NSNumber._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSNumber castFrom<T extends _ObjCWrapper>(T other) { + return NSNumber._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithCoder; + @override + NSNumber initWithCoder(NSObject coder) { + _sel_initWithCoder ??= _registerName(_lib, "initWithCoder:"); + final _ret = _lib._objc_msgSend_32(_id, _sel_initWithCoder!, coder._id); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithChar; + NSNumber initWithChar(int value) { + _sel_initWithChar ??= _registerName(_lib, "initWithChar:"); + final _ret = _lib._objc_msgSend_33(_id, _sel_initWithChar!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithUnsignedChar; + NSNumber initWithUnsignedChar(int value) { + _sel_initWithUnsignedChar ??= _registerName(_lib, "initWithUnsignedChar:"); + final _ret = _lib._objc_msgSend_34(_id, _sel_initWithUnsignedChar!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithShort; + NSNumber initWithShort(int value) { + _sel_initWithShort ??= _registerName(_lib, "initWithShort:"); + final _ret = _lib._objc_msgSend_35(_id, _sel_initWithShort!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithUnsignedShort; + NSNumber initWithUnsignedShort(int value) { + _sel_initWithUnsignedShort ??= + _registerName(_lib, "initWithUnsignedShort:"); + final _ret = _lib._objc_msgSend_36(_id, _sel_initWithUnsignedShort!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithInt; + NSNumber initWithInt(int value) { + _sel_initWithInt ??= _registerName(_lib, "initWithInt:"); + final _ret = _lib._objc_msgSend_37(_id, _sel_initWithInt!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithUnsignedInt; + NSNumber initWithUnsignedInt(int value) { + _sel_initWithUnsignedInt ??= _registerName(_lib, "initWithUnsignedInt:"); + final _ret = _lib._objc_msgSend_38(_id, _sel_initWithUnsignedInt!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithLong; + NSNumber initWithLong(int value) { + _sel_initWithLong ??= _registerName(_lib, "initWithLong:"); + final _ret = _lib._objc_msgSend_39(_id, _sel_initWithLong!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithUnsignedLong; + NSNumber initWithUnsignedLong(int value) { + _sel_initWithUnsignedLong ??= _registerName(_lib, "initWithUnsignedLong:"); + final _ret = _lib._objc_msgSend_40(_id, _sel_initWithUnsignedLong!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithLongLong; + NSNumber initWithLongLong(int value) { + _sel_initWithLongLong ??= _registerName(_lib, "initWithLongLong:"); + final _ret = _lib._objc_msgSend_41(_id, _sel_initWithLongLong!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithUnsignedLongLong; + NSNumber initWithUnsignedLongLong(int value) { + _sel_initWithUnsignedLongLong ??= + _registerName(_lib, "initWithUnsignedLongLong:"); + final _ret = + _lib._objc_msgSend_42(_id, _sel_initWithUnsignedLongLong!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithFloat; + NSNumber initWithFloat(double value) { + _sel_initWithFloat ??= _registerName(_lib, "initWithFloat:"); + final _ret = _lib._objc_msgSend_43(_id, _sel_initWithFloat!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithDouble; + NSNumber initWithDouble(double value) { + _sel_initWithDouble ??= _registerName(_lib, "initWithDouble:"); + final _ret = _lib._objc_msgSend_44(_id, _sel_initWithDouble!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithBool; + NSNumber initWithBool(bool value) { + _sel_initWithBool ??= _registerName(_lib, "initWithBool:"); + final _ret = _lib._objc_msgSend_45(_id, _sel_initWithBool!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithInteger; + NSNumber initWithInteger(int value) { + _sel_initWithInteger ??= _registerName(_lib, "initWithInteger:"); + final _ret = _lib._objc_msgSend_46(_id, _sel_initWithInteger!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithUnsignedInteger; + NSNumber initWithUnsignedInteger(int value) { + _sel_initWithUnsignedInteger ??= + _registerName(_lib, "initWithUnsignedInteger:"); + final _ret = + _lib._objc_msgSend_47(_id, _sel_initWithUnsignedInteger!, value); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_charValue; + int get charValue { + _sel_charValue ??= _registerName(_lib, "charValue"); + return _lib._objc_msgSend_48(_id, _sel_charValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_unsignedCharValue; + int get unsignedCharValue { + _sel_unsignedCharValue ??= _registerName(_lib, "unsignedCharValue"); + return _lib._objc_msgSend_49(_id, _sel_unsignedCharValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_shortValue; + int get shortValue { + _sel_shortValue ??= _registerName(_lib, "shortValue"); + return _lib._objc_msgSend_50(_id, _sel_shortValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_unsignedShortValue; + int get unsignedShortValue { + _sel_unsignedShortValue ??= _registerName(_lib, "unsignedShortValue"); + return _lib._objc_msgSend_51(_id, _sel_unsignedShortValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_intValue; + int get intValue { + _sel_intValue ??= _registerName(_lib, "intValue"); + return _lib._objc_msgSend_52(_id, _sel_intValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_unsignedIntValue; + int get unsignedIntValue { + _sel_unsignedIntValue ??= _registerName(_lib, "unsignedIntValue"); + return _lib._objc_msgSend_53(_id, _sel_unsignedIntValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_longValue; + int get longValue { + _sel_longValue ??= _registerName(_lib, "longValue"); + return _lib._objc_msgSend_54(_id, _sel_longValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_unsignedLongValue; + int get unsignedLongValue { + _sel_unsignedLongValue ??= _registerName(_lib, "unsignedLongValue"); + return _lib._objc_msgSend_55(_id, _sel_unsignedLongValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_longLongValue; + int get longLongValue { + _sel_longLongValue ??= _registerName(_lib, "longLongValue"); + return _lib._objc_msgSend_56(_id, _sel_longLongValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_unsignedLongLongValue; + int get unsignedLongLongValue { + _sel_unsignedLongLongValue ??= _registerName(_lib, "unsignedLongLongValue"); + return _lib._objc_msgSend_57(_id, _sel_unsignedLongLongValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_floatValue; + double get floatValue { + _sel_floatValue ??= _registerName(_lib, "floatValue"); + return _lib._objc_msgSend_58(_id, _sel_floatValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_doubleValue; + double get doubleValue { + _sel_doubleValue ??= _registerName(_lib, "doubleValue"); + return _lib._objc_msgSend_59(_id, _sel_doubleValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_boolValue; + bool get boolValue { + _sel_boolValue ??= _registerName(_lib, "boolValue"); + return _lib._objc_msgSend_16(_id, _sel_boolValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_integerValue; + int get integerValue { + _sel_integerValue ??= _registerName(_lib, "integerValue"); + return _lib._objc_msgSend_60(_id, _sel_integerValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_unsignedIntegerValue; + int get unsignedIntegerValue { + _sel_unsignedIntegerValue ??= _registerName(_lib, "unsignedIntegerValue"); + return _lib._objc_msgSend_20(_id, _sel_unsignedIntegerValue!); + } + + static ffi.Pointer<ObjCSel>? _sel_stringValue; + NSObject get stringValue { + _sel_stringValue ??= _registerName(_lib, "stringValue"); + final _ret = _lib._objc_msgSend_61(_id, _sel_stringValue!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_compare; + int compare(NSObject otherNumber) { + _sel_compare ??= _registerName(_lib, "compare:"); + return _lib._objc_msgSend_62(_id, _sel_compare!, otherNumber._id); + } + + static ffi.Pointer<ObjCSel>? _sel_isEqualToNumber; + bool isEqualToNumber(NSObject number) { + _sel_isEqualToNumber ??= _registerName(_lib, "isEqualToNumber:"); + return _lib._objc_msgSend_63(_id, _sel_isEqualToNumber!, number._id); + } + + static ffi.Pointer<ObjCSel>? _sel_descriptionWithLocale; + NSString descriptionWithLocale(NSObject locale) { + _sel_descriptionWithLocale ??= + _registerName(_lib, "descriptionWithLocale:"); + final _ret = + _lib._objc_msgSend_64(_id, _sel_descriptionWithLocale!, locale._id); + return NSString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSNumber new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSNumber"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSNumber._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSNumber alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSNumber"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSNumber._(_ret, _lib); + } +} + +class _NSRange extends ffi.Struct { + @NSUInteger() + external int location; + + @NSUInteger() + external int length; +} + +class NSFastEnumerationState extends ffi.Struct { + @pkg_ffi.UnsignedLong() + external int state; + + external ffi.Pointer<ffi.Pointer<ObjCObject>> itemsPtr; + + external ffi.Pointer<pkg_ffi.UnsignedLong> mutationsPtr; + + @ffi.Array.multi([5]) + external ffi.Array<pkg_ffi.UnsignedLong> extra; +} + +class NSEnumerator extends NSObject { + NSEnumerator._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSEnumerator castFrom<T extends _ObjCWrapper>(T other) { + return NSEnumerator._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_nextObject; + NSObject nextObject() { + _sel_nextObject ??= _registerName(_lib, "nextObject"); + final _ret = _lib._objc_msgSend_65(_id, _sel_nextObject!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSEnumerator new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSEnumerator"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSEnumerator._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSEnumerator alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSEnumerator"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSEnumerator._(_ret, _lib); + } +} + +abstract class NSCollectionChangeType { + static const int NSCollectionChangeInsert = 0; + static const int NSCollectionChangeRemove = 1; +} + +class NSOrderedCollectionChange extends NSObject { + NSOrderedCollectionChange._( + ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSOrderedCollectionChange castFrom<T extends _ObjCWrapper>(T other) { + return NSOrderedCollectionChange._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_object; + NSObject get object { + _sel_object ??= _registerName(_lib, "object"); + final _ret = _lib._objc_msgSend_66(_id, _sel_object!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_changeType; + int get changeType { + _sel_changeType ??= _registerName(_lib, "changeType"); + return _lib._objc_msgSend_67(_id, _sel_changeType!); + } + + static ffi.Pointer<ObjCSel>? _sel_index; + int get index { + _sel_index ??= _registerName(_lib, "index"); + return _lib._objc_msgSend_20(_id, _sel_index!); + } + + static ffi.Pointer<ObjCSel>? _sel_associatedIndex; + int get associatedIndex { + _sel_associatedIndex ??= _registerName(_lib, "associatedIndex"); + return _lib._objc_msgSend_20(_id, _sel_associatedIndex!); + } + + static ffi.Pointer<ObjCSel>? _sel_init; + @override + NSObject init() { + _sel_init ??= _registerName(_lib, "init"); + final _ret = _lib._objc_msgSend_68(_id, _sel_init!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithObject_type_index; + NSOrderedCollectionChange initWithObject_type_index( + NSObject anObject, int type, int index) { + _sel_initWithObject_type_index ??= + _registerName(_lib, "initWithObject:type:index:"); + final _ret = _lib._objc_msgSend_69( + _id, _sel_initWithObject_type_index!, anObject._id, type, index); + return NSOrderedCollectionChange._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithObject_type_index_associatedIndex; + NSOrderedCollectionChange initWithObject_type_index_associatedIndex( + NSObject anObject, int type, int index, int associatedIndex) { + _sel_initWithObject_type_index_associatedIndex ??= + _registerName(_lib, "initWithObject:type:index:associatedIndex:"); + final _ret = _lib._objc_msgSend_70( + _id, + _sel_initWithObject_type_index_associatedIndex!, + anObject._id, + type, + index, + associatedIndex); + return NSOrderedCollectionChange._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSOrderedCollectionChange new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSOrderedCollectionChange"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSOrderedCollectionChange._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSOrderedCollectionChange alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSOrderedCollectionChange"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSOrderedCollectionChange._(_ret, _lib); + } +} + +class NSIndexSet extends NSObject { + NSIndexSet._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSIndexSet castFrom<T extends _ObjCWrapper>(T other) { + return NSIndexSet._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_indexSet; + static NSIndexSet indexSet(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSIndexSet"); + _sel_indexSet ??= _registerName(_lib, "indexSet"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_indexSet!); + return NSIndexSet._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_indexSetWithIndex; + static NSIndexSet indexSetWithIndex(StringTestObjCLibrary _lib, int value) { + _class ??= _getClass(_lib, "NSIndexSet"); + _sel_indexSetWithIndex ??= _registerName(_lib, "indexSetWithIndex:"); + final _ret = _lib._objc_msgSend_71(_class!, _sel_indexSetWithIndex!, value); + return NSIndexSet._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_indexSetWithIndexesInRange; + static NSIndexSet indexSetWithIndexesInRange( + StringTestObjCLibrary _lib, NSRange range) { + _class ??= _getClass(_lib, "NSIndexSet"); + _sel_indexSetWithIndexesInRange ??= + _registerName(_lib, "indexSetWithIndexesInRange:"); + final _ret = + _lib._objc_msgSend_72(_class!, _sel_indexSetWithIndexesInRange!, range); + return NSIndexSet._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithIndexesInRange; + NSIndexSet initWithIndexesInRange(NSRange range) { + _sel_initWithIndexesInRange ??= + _registerName(_lib, "initWithIndexesInRange:"); + final _ret = + _lib._objc_msgSend_72(_id, _sel_initWithIndexesInRange!, range); + return NSIndexSet._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithIndexSet; + NSIndexSet initWithIndexSet(NSObject indexSet) { + _sel_initWithIndexSet ??= _registerName(_lib, "initWithIndexSet:"); + final _ret = + _lib._objc_msgSend_73(_id, _sel_initWithIndexSet!, indexSet._id); + return NSIndexSet._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithIndex; + NSIndexSet initWithIndex(int value) { + _sel_initWithIndex ??= _registerName(_lib, "initWithIndex:"); + final _ret = _lib._objc_msgSend_71(_id, _sel_initWithIndex!, value); + return NSIndexSet._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_isEqualToIndexSet; + bool isEqualToIndexSet(NSObject indexSet) { + _sel_isEqualToIndexSet ??= _registerName(_lib, "isEqualToIndexSet:"); + return _lib._objc_msgSend_74(_id, _sel_isEqualToIndexSet!, indexSet._id); + } + + static ffi.Pointer<ObjCSel>? _sel_count; + int get count { + _sel_count ??= _registerName(_lib, "count"); + return _lib._objc_msgSend_20(_id, _sel_count!); + } + + static ffi.Pointer<ObjCSel>? _sel_firstIndex; + int get firstIndex { + _sel_firstIndex ??= _registerName(_lib, "firstIndex"); + return _lib._objc_msgSend_20(_id, _sel_firstIndex!); + } + + static ffi.Pointer<ObjCSel>? _sel_lastIndex; + int get lastIndex { + _sel_lastIndex ??= _registerName(_lib, "lastIndex"); + return _lib._objc_msgSend_20(_id, _sel_lastIndex!); + } + + static ffi.Pointer<ObjCSel>? _sel_indexGreaterThanIndex; + int indexGreaterThanIndex(int value) { + _sel_indexGreaterThanIndex ??= + _registerName(_lib, "indexGreaterThanIndex:"); + return _lib._objc_msgSend_75(_id, _sel_indexGreaterThanIndex!, value); + } + + static ffi.Pointer<ObjCSel>? _sel_indexLessThanIndex; + int indexLessThanIndex(int value) { + _sel_indexLessThanIndex ??= _registerName(_lib, "indexLessThanIndex:"); + return _lib._objc_msgSend_75(_id, _sel_indexLessThanIndex!, value); + } + + static ffi.Pointer<ObjCSel>? _sel_indexGreaterThanOrEqualToIndex; + int indexGreaterThanOrEqualToIndex(int value) { + _sel_indexGreaterThanOrEqualToIndex ??= + _registerName(_lib, "indexGreaterThanOrEqualToIndex:"); + return _lib._objc_msgSend_75( + _id, _sel_indexGreaterThanOrEqualToIndex!, value); + } + + static ffi.Pointer<ObjCSel>? _sel_indexLessThanOrEqualToIndex; + int indexLessThanOrEqualToIndex(int value) { + _sel_indexLessThanOrEqualToIndex ??= + _registerName(_lib, "indexLessThanOrEqualToIndex:"); + return _lib._objc_msgSend_75(_id, _sel_indexLessThanOrEqualToIndex!, value); + } + + static ffi.Pointer<ObjCSel>? _sel_getIndexes_maxCount_inIndexRange; + int getIndexes_maxCount_inIndexRange(ffi.Pointer<NSUInteger> indexBuffer, + int bufferSize, NSRangePointer range) { + _sel_getIndexes_maxCount_inIndexRange ??= + _registerName(_lib, "getIndexes:maxCount:inIndexRange:"); + return _lib._objc_msgSend_76(_id, _sel_getIndexes_maxCount_inIndexRange!, + indexBuffer, bufferSize, range); + } + + static ffi.Pointer<ObjCSel>? _sel_countOfIndexesInRange; + int countOfIndexesInRange(NSRange range) { + _sel_countOfIndexesInRange ??= + _registerName(_lib, "countOfIndexesInRange:"); + return _lib._objc_msgSend_77(_id, _sel_countOfIndexesInRange!, range); + } + + static ffi.Pointer<ObjCSel>? _sel_containsIndex; + bool containsIndex(int value) { + _sel_containsIndex ??= _registerName(_lib, "containsIndex:"); + return _lib._objc_msgSend_78(_id, _sel_containsIndex!, value); + } + + static ffi.Pointer<ObjCSel>? _sel_containsIndexesInRange; + bool containsIndexesInRange(NSRange range) { + _sel_containsIndexesInRange ??= + _registerName(_lib, "containsIndexesInRange:"); + return _lib._objc_msgSend_79(_id, _sel_containsIndexesInRange!, range); + } + + static ffi.Pointer<ObjCSel>? _sel_containsIndexes; + bool containsIndexes(NSObject indexSet) { + _sel_containsIndexes ??= _registerName(_lib, "containsIndexes:"); + return _lib._objc_msgSend_80(_id, _sel_containsIndexes!, indexSet._id); + } + + static ffi.Pointer<ObjCSel>? _sel_intersectsIndexesInRange; + bool intersectsIndexesInRange(NSRange range) { + _sel_intersectsIndexesInRange ??= + _registerName(_lib, "intersectsIndexesInRange:"); + return _lib._objc_msgSend_79(_id, _sel_intersectsIndexesInRange!, range); + } + + static ffi.Pointer<ObjCSel>? _sel_enumerateIndexesUsingBlock; + void enumerateIndexesUsingBlock(NSObject block) { + _sel_enumerateIndexesUsingBlock ??= + _registerName(_lib, "enumerateIndexesUsingBlock:"); + _lib._objc_msgSend_81(_id, _sel_enumerateIndexesUsingBlock!, block._id); + } + + static ffi.Pointer<ObjCSel>? _sel_enumerateIndexesWithOptions_usingBlock; + void enumerateIndexesWithOptions_usingBlock(int opts, NSObject block) { + _sel_enumerateIndexesWithOptions_usingBlock ??= + _registerName(_lib, "enumerateIndexesWithOptions:usingBlock:"); + _lib._objc_msgSend_82( + _id, _sel_enumerateIndexesWithOptions_usingBlock!, opts, block._id); + } + + static ffi.Pointer<ObjCSel>? _sel_enumerateIndexesInRange_options_usingBlock; + void enumerateIndexesInRange_options_usingBlock( + NSRange range, int opts, NSObject block) { + _sel_enumerateIndexesInRange_options_usingBlock ??= + _registerName(_lib, "enumerateIndexesInRange:options:usingBlock:"); + _lib._objc_msgSend_83(_id, _sel_enumerateIndexesInRange_options_usingBlock!, + range, opts, block._id); + } + + static ffi.Pointer<ObjCSel>? _sel_indexPassingTest; + int indexPassingTest(NSObject predicate) { + _sel_indexPassingTest ??= _registerName(_lib, "indexPassingTest:"); + return _lib._objc_msgSend_84(_id, _sel_indexPassingTest!, predicate._id); + } + + static ffi.Pointer<ObjCSel>? _sel_indexWithOptions_passingTest; + int indexWithOptions_passingTest(int opts, NSObject predicate) { + _sel_indexWithOptions_passingTest ??= + _registerName(_lib, "indexWithOptions:passingTest:"); + return _lib._objc_msgSend_85( + _id, _sel_indexWithOptions_passingTest!, opts, predicate._id); + } + + static ffi.Pointer<ObjCSel>? _sel_indexInRange_options_passingTest; + int indexInRange_options_passingTest( + NSRange range, int opts, NSObject predicate) { + _sel_indexInRange_options_passingTest ??= + _registerName(_lib, "indexInRange:options:passingTest:"); + return _lib._objc_msgSend_86(_id, _sel_indexInRange_options_passingTest!, + range, opts, predicate._id); + } + + static ffi.Pointer<ObjCSel>? _sel_indexesPassingTest; + NSIndexSet indexesPassingTest(NSObject predicate) { + _sel_indexesPassingTest ??= _registerName(_lib, "indexesPassingTest:"); + final _ret = + _lib._objc_msgSend_87(_id, _sel_indexesPassingTest!, predicate._id); + return NSIndexSet._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_indexesWithOptions_passingTest; + NSIndexSet indexesWithOptions_passingTest(int opts, NSObject predicate) { + _sel_indexesWithOptions_passingTest ??= + _registerName(_lib, "indexesWithOptions:passingTest:"); + final _ret = _lib._objc_msgSend_88( + _id, _sel_indexesWithOptions_passingTest!, opts, predicate._id); + return NSIndexSet._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_indexesInRange_options_passingTest; + NSIndexSet indexesInRange_options_passingTest( + NSRange range, int opts, NSObject predicate) { + _sel_indexesInRange_options_passingTest ??= + _registerName(_lib, "indexesInRange:options:passingTest:"); + final _ret = _lib._objc_msgSend_89(_id, + _sel_indexesInRange_options_passingTest!, range, opts, predicate._id); + return NSIndexSet._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_enumerateRangesUsingBlock; + void enumerateRangesUsingBlock(NSObject block) { + _sel_enumerateRangesUsingBlock ??= + _registerName(_lib, "enumerateRangesUsingBlock:"); + _lib._objc_msgSend_90(_id, _sel_enumerateRangesUsingBlock!, block._id); + } + + static ffi.Pointer<ObjCSel>? _sel_enumerateRangesWithOptions_usingBlock; + void enumerateRangesWithOptions_usingBlock(int opts, NSObject block) { + _sel_enumerateRangesWithOptions_usingBlock ??= + _registerName(_lib, "enumerateRangesWithOptions:usingBlock:"); + _lib._objc_msgSend_91( + _id, _sel_enumerateRangesWithOptions_usingBlock!, opts, block._id); + } + + static ffi.Pointer<ObjCSel>? _sel_enumerateRangesInRange_options_usingBlock; + void enumerateRangesInRange_options_usingBlock( + NSRange range, int opts, NSObject block) { + _sel_enumerateRangesInRange_options_usingBlock ??= + _registerName(_lib, "enumerateRangesInRange:options:usingBlock:"); + _lib._objc_msgSend_92(_id, _sel_enumerateRangesInRange_options_usingBlock!, + range, opts, block._id); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSIndexSet new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSIndexSet"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSIndexSet._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSIndexSet alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSIndexSet"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSIndexSet._(_ret, _lib); + } +} + +typedef NSRange = _NSRange; +typedef NSRangePointer = ffi.Pointer<NSRange>; + +class NSMutableIndexSet extends NSIndexSet { + NSMutableIndexSet._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSMutableIndexSet castFrom<T extends _ObjCWrapper>(T other) { + return NSMutableIndexSet._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_addIndexes; + void addIndexes(NSObject indexSet) { + _sel_addIndexes ??= _registerName(_lib, "addIndexes:"); + _lib._objc_msgSend_93(_id, _sel_addIndexes!, indexSet._id); + } + + static ffi.Pointer<ObjCSel>? _sel_removeIndexes; + void removeIndexes(NSObject indexSet) { + _sel_removeIndexes ??= _registerName(_lib, "removeIndexes:"); + _lib._objc_msgSend_94(_id, _sel_removeIndexes!, indexSet._id); + } + + static ffi.Pointer<ObjCSel>? _sel_removeAllIndexes; + void removeAllIndexes() { + _sel_removeAllIndexes ??= _registerName(_lib, "removeAllIndexes"); + _lib._objc_msgSend_0(_id, _sel_removeAllIndexes!); + } + + static ffi.Pointer<ObjCSel>? _sel_addIndex; + void addIndex(int value) { + _sel_addIndex ??= _registerName(_lib, "addIndex:"); + _lib._objc_msgSend_95(_id, _sel_addIndex!, value); + } + + static ffi.Pointer<ObjCSel>? _sel_removeIndex; + void removeIndex(int value) { + _sel_removeIndex ??= _registerName(_lib, "removeIndex:"); + _lib._objc_msgSend_95(_id, _sel_removeIndex!, value); + } + + static ffi.Pointer<ObjCSel>? _sel_addIndexesInRange; + void addIndexesInRange(NSRange range) { + _sel_addIndexesInRange ??= _registerName(_lib, "addIndexesInRange:"); + _lib._objc_msgSend_96(_id, _sel_addIndexesInRange!, range); + } + + static ffi.Pointer<ObjCSel>? _sel_removeIndexesInRange; + void removeIndexesInRange(NSRange range) { + _sel_removeIndexesInRange ??= _registerName(_lib, "removeIndexesInRange:"); + _lib._objc_msgSend_96(_id, _sel_removeIndexesInRange!, range); + } + + static ffi.Pointer<ObjCSel>? _sel_shiftIndexesStartingAtIndex_by; + void shiftIndexesStartingAtIndex_by(int index, int delta) { + _sel_shiftIndexesStartingAtIndex_by ??= + _registerName(_lib, "shiftIndexesStartingAtIndex:by:"); + _lib._objc_msgSend_97( + _id, _sel_shiftIndexesStartingAtIndex_by!, index, delta); + } + + static ffi.Pointer<ObjCSel>? _sel_indexSet; + static NSMutableIndexSet indexSet(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSMutableIndexSet"); + _sel_indexSet ??= _registerName(_lib, "indexSet"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_indexSet!); + return NSMutableIndexSet._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_indexSetWithIndex; + static NSMutableIndexSet indexSetWithIndex( + StringTestObjCLibrary _lib, int value) { + _class ??= _getClass(_lib, "NSMutableIndexSet"); + _sel_indexSetWithIndex ??= _registerName(_lib, "indexSetWithIndex:"); + final _ret = _lib._objc_msgSend_71(_class!, _sel_indexSetWithIndex!, value); + return NSMutableIndexSet._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_indexSetWithIndexesInRange; + static NSMutableIndexSet indexSetWithIndexesInRange( + StringTestObjCLibrary _lib, NSRange range) { + _class ??= _getClass(_lib, "NSMutableIndexSet"); + _sel_indexSetWithIndexesInRange ??= + _registerName(_lib, "indexSetWithIndexesInRange:"); + final _ret = + _lib._objc_msgSend_72(_class!, _sel_indexSetWithIndexesInRange!, range); + return NSMutableIndexSet._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSMutableIndexSet new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSMutableIndexSet"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSMutableIndexSet._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSMutableIndexSet alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSMutableIndexSet"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSMutableIndexSet._(_ret, _lib); + } +} + +abstract class NSOrderedCollectionDifferenceCalculationOptions { + static const int NSOrderedCollectionDifferenceCalculationOmitInsertedObjects = + 1; + static const int NSOrderedCollectionDifferenceCalculationOmitRemovedObjects = + 2; + static const int NSOrderedCollectionDifferenceCalculationInferMoves = 4; +} + +class NSOrderedCollectionDifference extends NSObject { + NSOrderedCollectionDifference._( + ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSOrderedCollectionDifference castFrom<T extends _ObjCWrapper>( + T other) { + return NSOrderedCollectionDifference._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithChanges; + NSOrderedCollectionDifference initWithChanges(NSObject changes) { + _sel_initWithChanges ??= _registerName(_lib, "initWithChanges:"); + final _ret = _lib._objc_msgSend_98(_id, _sel_initWithChanges!, changes._id); + return NSOrderedCollectionDifference._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? + _sel_initWithInsertIndexes_insertedObjects_removeIndexes_removedObjects_additionalChanges; + NSOrderedCollectionDifference + initWithInsertIndexes_insertedObjects_removeIndexes_removedObjects_additionalChanges( + NSObject inserts, + NSObject insertedObjects, + NSObject removes, + NSObject removedObjects, + NSObject changes) { + _sel_initWithInsertIndexes_insertedObjects_removeIndexes_removedObjects_additionalChanges ??= + _registerName(_lib, + "initWithInsertIndexes:insertedObjects:removeIndexes:removedObjects:additionalChanges:"); + final _ret = _lib._objc_msgSend_99( + _id, + _sel_initWithInsertIndexes_insertedObjects_removeIndexes_removedObjects_additionalChanges!, + inserts._id, + insertedObjects._id, + removes._id, + removedObjects._id, + changes._id); + return NSOrderedCollectionDifference._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? + _sel_initWithInsertIndexes_insertedObjects_removeIndexes_removedObjects; + NSOrderedCollectionDifference + initWithInsertIndexes_insertedObjects_removeIndexes_removedObjects( + NSObject inserts, + NSObject insertedObjects, + NSObject removes, + NSObject removedObjects) { + _sel_initWithInsertIndexes_insertedObjects_removeIndexes_removedObjects ??= + _registerName(_lib, + "initWithInsertIndexes:insertedObjects:removeIndexes:removedObjects:"); + final _ret = _lib._objc_msgSend_100( + _id, + _sel_initWithInsertIndexes_insertedObjects_removeIndexes_removedObjects!, + inserts._id, + insertedObjects._id, + removes._id, + removedObjects._id); + return NSOrderedCollectionDifference._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_insertions; + NSObject get insertions { + _sel_insertions ??= _registerName(_lib, "insertions"); + final _ret = _lib._objc_msgSend_101(_id, _sel_insertions!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_removals; + NSObject get removals { + _sel_removals ??= _registerName(_lib, "removals"); + final _ret = _lib._objc_msgSend_102(_id, _sel_removals!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_hasChanges; + bool get hasChanges { + _sel_hasChanges ??= _registerName(_lib, "hasChanges"); + return _lib._objc_msgSend_16(_id, _sel_hasChanges!); + } + + static ffi.Pointer<ObjCSel>? _sel_inverseDifference; + NSOrderedCollectionDifference inverseDifference() { + _sel_inverseDifference ??= _registerName(_lib, "inverseDifference"); + final _ret = _lib._objc_msgSend_1(_id, _sel_inverseDifference!); + return NSOrderedCollectionDifference._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSOrderedCollectionDifference new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSOrderedCollectionDifference"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSOrderedCollectionDifference._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSOrderedCollectionDifference alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSOrderedCollectionDifference"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSOrderedCollectionDifference._(_ret, _lib); + } +} + +class NSArray extends NSObject { + NSArray._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSArray castFrom<T extends _ObjCWrapper>(T other) { + return NSArray._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_count; + int get count { + _sel_count ??= _registerName(_lib, "count"); + return _lib._objc_msgSend_20(_id, _sel_count!); + } + + static ffi.Pointer<ObjCSel>? _sel_objectAtIndex; + NSObject objectAtIndex(int index) { + _sel_objectAtIndex ??= _registerName(_lib, "objectAtIndex:"); + final _ret = _lib._objc_msgSend_103(_id, _sel_objectAtIndex!, index); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_init; + @override + NSArray init() { + _sel_init ??= _registerName(_lib, "init"); + final _ret = _lib._objc_msgSend_1(_id, _sel_init!); + return NSArray._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithObjects_count; + NSArray initWithObjects_count( + ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) { + _sel_initWithObjects_count ??= + _registerName(_lib, "initWithObjects:count:"); + final _ret = + _lib._objc_msgSend_104(_id, _sel_initWithObjects_count!, objects, cnt); + return NSArray._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithCoder; + NSArray initWithCoder(NSObject coder) { + _sel_initWithCoder ??= _registerName(_lib, "initWithCoder:"); + final _ret = _lib._objc_msgSend_105(_id, _sel_initWithCoder!, coder._id); + return NSArray._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSArray new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSArray"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSArray._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSArray alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSArray"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSArray._(_ret, _lib); + } +} + +abstract class NSBinarySearchingOptions { + static const int NSBinarySearchingFirstEqual = 256; + static const int NSBinarySearchingLastEqual = 512; + static const int NSBinarySearchingInsertionIndex = 1024; +} + +class NSMutableArray extends NSArray { + NSMutableArray._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSMutableArray castFrom<T extends _ObjCWrapper>(T other) { + return NSMutableArray._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_addObject; + void addObject(NSObject anObject) { + _sel_addObject ??= _registerName(_lib, "addObject:"); + _lib._objc_msgSend_106(_id, _sel_addObject!, anObject._id); + } + + static ffi.Pointer<ObjCSel>? _sel_insertObject_atIndex; + void insertObject_atIndex(NSObject anObject, int index) { + _sel_insertObject_atIndex ??= _registerName(_lib, "insertObject:atIndex:"); + _lib._objc_msgSend_107( + _id, _sel_insertObject_atIndex!, anObject._id, index); + } + + static ffi.Pointer<ObjCSel>? _sel_removeLastObject; + void removeLastObject() { + _sel_removeLastObject ??= _registerName(_lib, "removeLastObject"); + _lib._objc_msgSend_0(_id, _sel_removeLastObject!); + } + + static ffi.Pointer<ObjCSel>? _sel_removeObjectAtIndex; + void removeObjectAtIndex(int index) { + _sel_removeObjectAtIndex ??= _registerName(_lib, "removeObjectAtIndex:"); + _lib._objc_msgSend_95(_id, _sel_removeObjectAtIndex!, index); + } + + static ffi.Pointer<ObjCSel>? _sel_replaceObjectAtIndex_withObject; + void replaceObjectAtIndex_withObject(int index, NSObject anObject) { + _sel_replaceObjectAtIndex_withObject ??= + _registerName(_lib, "replaceObjectAtIndex:withObject:"); + _lib._objc_msgSend_108( + _id, _sel_replaceObjectAtIndex_withObject!, index, anObject._id); + } + + static ffi.Pointer<ObjCSel>? _sel_init; + @override + NSMutableArray init() { + _sel_init ??= _registerName(_lib, "init"); + final _ret = _lib._objc_msgSend_1(_id, _sel_init!); + return NSMutableArray._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithCapacity; + NSMutableArray initWithCapacity(int numItems) { + _sel_initWithCapacity ??= _registerName(_lib, "initWithCapacity:"); + final _ret = _lib._objc_msgSend_71(_id, _sel_initWithCapacity!, numItems); + return NSMutableArray._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithCoder; + @override + NSMutableArray initWithCoder(NSObject coder) { + _sel_initWithCoder ??= _registerName(_lib, "initWithCoder:"); + final _ret = _lib._objc_msgSend_109(_id, _sel_initWithCoder!, coder._id); + return NSMutableArray._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSMutableArray new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSMutableArray"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSMutableArray._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSMutableArray alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSMutableArray"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSMutableArray._(_ret, _lib); + } +} + +abstract class NSItemProviderRepresentationVisibility { + static const int NSItemProviderRepresentationVisibilityAll = 0; + static const int NSItemProviderRepresentationVisibilityTeam = 1; + static const int NSItemProviderRepresentationVisibilityGroup = 2; + static const int NSItemProviderRepresentationVisibilityOwnProcess = 3; +} + +abstract class NSItemProviderFileOptions { + static const int NSItemProviderFileOptionOpenInPlace = 1; +} + +class NSItemProvider extends NSObject { + NSItemProvider._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSItemProvider castFrom<T extends _ObjCWrapper>(T other) { + return NSItemProvider._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_init; + @override + NSItemProvider init() { + _sel_init ??= _registerName(_lib, "init"); + final _ret = _lib._objc_msgSend_1(_id, _sel_init!); + return NSItemProvider._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? + _sel_registerDataRepresentationForTypeIdentifier_visibility_loadHandler; + void registerDataRepresentationForTypeIdentifier_visibility_loadHandler( + NSObject typeIdentifier, int visibility, NSObject loadHandler) { + _sel_registerDataRepresentationForTypeIdentifier_visibility_loadHandler ??= + _registerName(_lib, + "registerDataRepresentationForTypeIdentifier:visibility:loadHandler:"); + _lib._objc_msgSend_110( + _id, + _sel_registerDataRepresentationForTypeIdentifier_visibility_loadHandler!, + typeIdentifier._id, + visibility, + loadHandler._id); + } + + static ffi.Pointer<ObjCSel>? + _sel_registerFileRepresentationForTypeIdentifier_fileOptions_visibility_loadHandler; + void + registerFileRepresentationForTypeIdentifier_fileOptions_visibility_loadHandler( + NSObject typeIdentifier, + int fileOptions, + int visibility, + NSObject loadHandler) { + _sel_registerFileRepresentationForTypeIdentifier_fileOptions_visibility_loadHandler ??= + _registerName(_lib, + "registerFileRepresentationForTypeIdentifier:fileOptions:visibility:loadHandler:"); + _lib._objc_msgSend_111( + _id, + _sel_registerFileRepresentationForTypeIdentifier_fileOptions_visibility_loadHandler!, + typeIdentifier._id, + fileOptions, + visibility, + loadHandler._id); + } + + static ffi.Pointer<ObjCSel>? _sel_registeredTypeIdentifiers; + NSObject get registeredTypeIdentifiers { + _sel_registeredTypeIdentifiers ??= + _registerName(_lib, "registeredTypeIdentifiers"); + final _ret = _lib._objc_msgSend_112(_id, _sel_registeredTypeIdentifiers!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_hasItemConformingToTypeIdentifier; + bool hasItemConformingToTypeIdentifier(NSObject typeIdentifier) { + _sel_hasItemConformingToTypeIdentifier ??= + _registerName(_lib, "hasItemConformingToTypeIdentifier:"); + return _lib._objc_msgSend_113( + _id, _sel_hasItemConformingToTypeIdentifier!, typeIdentifier._id); + } + + static ffi.Pointer<ObjCSel>? + _sel_hasRepresentationConformingToTypeIdentifier_fileOptions; + bool hasRepresentationConformingToTypeIdentifier_fileOptions( + NSObject typeIdentifier, int fileOptions) { + _sel_hasRepresentationConformingToTypeIdentifier_fileOptions ??= + _registerName( + _lib, "hasRepresentationConformingToTypeIdentifier:fileOptions:"); + return _lib._objc_msgSend_114( + _id, + _sel_hasRepresentationConformingToTypeIdentifier_fileOptions!, + typeIdentifier._id, + fileOptions); + } + + static ffi.Pointer<ObjCSel>? + _sel_loadDataRepresentationForTypeIdentifier_completionHandler; + NSProgress loadDataRepresentationForTypeIdentifier_completionHandler( + NSObject typeIdentifier, NSObject completionHandler) { + _sel_loadDataRepresentationForTypeIdentifier_completionHandler ??= + _registerName( + _lib, "loadDataRepresentationForTypeIdentifier:completionHandler:"); + final _ret = _lib._objc_msgSend_115( + _id, + _sel_loadDataRepresentationForTypeIdentifier_completionHandler!, + typeIdentifier._id, + completionHandler._id); + return NSProgress._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? + _sel_loadFileRepresentationForTypeIdentifier_completionHandler; + NSProgress loadFileRepresentationForTypeIdentifier_completionHandler( + NSObject typeIdentifier, NSObject completionHandler) { + _sel_loadFileRepresentationForTypeIdentifier_completionHandler ??= + _registerName( + _lib, "loadFileRepresentationForTypeIdentifier:completionHandler:"); + final _ret = _lib._objc_msgSend_116( + _id, + _sel_loadFileRepresentationForTypeIdentifier_completionHandler!, + typeIdentifier._id, + completionHandler._id); + return NSProgress._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? + _sel_loadInPlaceFileRepresentationForTypeIdentifier_completionHandler; + NSProgress loadInPlaceFileRepresentationForTypeIdentifier_completionHandler( + NSObject typeIdentifier, NSObject completionHandler) { + _sel_loadInPlaceFileRepresentationForTypeIdentifier_completionHandler ??= + _registerName(_lib, + "loadInPlaceFileRepresentationForTypeIdentifier:completionHandler:"); + final _ret = _lib._objc_msgSend_117( + _id, + _sel_loadInPlaceFileRepresentationForTypeIdentifier_completionHandler!, + typeIdentifier._id, + completionHandler._id); + return NSProgress._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_suggestedName; + NSObject get suggestedName { + _sel_suggestedName ??= _registerName(_lib, "suggestedName"); + final _ret = _lib._objc_msgSend_118(_id, _sel_suggestedName!); + return NSObject._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_suggestedName1; + set suggestedName(NSObject value) { + _sel_suggestedName1 ??= _registerName(_lib, "setSuggestedName:"); + _lib._objc_msgSend_119(_id, _sel_suggestedName1!, value._id); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithObject; + NSItemProvider initWithObject(NSObject object) { + _sel_initWithObject ??= _registerName(_lib, "initWithObject:"); + final _ret = _lib._objc_msgSend_120(_id, _sel_initWithObject!, object._id); + return NSItemProvider._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_registerObject_visibility; + void registerObject_visibility(NSObject object, int visibility) { + _sel_registerObject_visibility ??= + _registerName(_lib, "registerObject:visibility:"); + _lib._objc_msgSend_121( + _id, _sel_registerObject_visibility!, object._id, visibility); + } + + static ffi.Pointer<ObjCSel>? + _sel_registerObjectOfClass_visibility_loadHandler; + void registerObjectOfClass_visibility_loadHandler( + NSObject aClass, int visibility, NSObject loadHandler) { + _sel_registerObjectOfClass_visibility_loadHandler ??= + _registerName(_lib, "registerObjectOfClass:visibility:loadHandler:"); + _lib._objc_msgSend_122( + _id, + _sel_registerObjectOfClass_visibility_loadHandler!, + aClass._id, + visibility, + loadHandler._id); + } + + static ffi.Pointer<ObjCSel>? _sel_canLoadObjectOfClass; + bool canLoadObjectOfClass(NSObject aClass) { + _sel_canLoadObjectOfClass ??= _registerName(_lib, "canLoadObjectOfClass:"); + return _lib._objc_msgSend_123(_id, _sel_canLoadObjectOfClass!, aClass._id); + } + + static ffi.Pointer<ObjCSel>? _sel_loadObjectOfClass_completionHandler; + NSProgress loadObjectOfClass_completionHandler( + NSObject aClass, NSObject completionHandler) { + _sel_loadObjectOfClass_completionHandler ??= + _registerName(_lib, "loadObjectOfClass:completionHandler:"); + final _ret = _lib._objc_msgSend_124( + _id, + _sel_loadObjectOfClass_completionHandler!, + aClass._id, + completionHandler._id); + return NSProgress._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithItem_typeIdentifier; + NSItemProvider initWithItem_typeIdentifier( + NSObject item, NSObject typeIdentifier) { + _sel_initWithItem_typeIdentifier ??= + _registerName(_lib, "initWithItem:typeIdentifier:"); + final _ret = _lib._objc_msgSend_125( + _id, _sel_initWithItem_typeIdentifier!, item._id, typeIdentifier._id); + return NSItemProvider._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_initWithContentsOfURL; + NSItemProvider initWithContentsOfURL(NSObject fileURL) { + _sel_initWithContentsOfURL ??= + _registerName(_lib, "initWithContentsOfURL:"); + final _ret = + _lib._objc_msgSend_126(_id, _sel_initWithContentsOfURL!, fileURL._id); + return NSItemProvider._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_registerItemForTypeIdentifier_loadHandler; + void registerItemForTypeIdentifier_loadHandler( + NSObject typeIdentifier, NSItemProviderLoadHandler loadHandler) { + _sel_registerItemForTypeIdentifier_loadHandler ??= + _registerName(_lib, "registerItemForTypeIdentifier:loadHandler:"); + _lib._objc_msgSend_127(_id, _sel_registerItemForTypeIdentifier_loadHandler!, + typeIdentifier._id, loadHandler); + } + + static ffi.Pointer<ObjCSel>? + _sel_loadItemForTypeIdentifier_options_completionHandler; + void loadItemForTypeIdentifier_options_completionHandler( + NSObject typeIdentifier, + NSObject options, + NSItemProviderCompletionHandler completionHandler) { + _sel_loadItemForTypeIdentifier_options_completionHandler ??= _registerName( + _lib, "loadItemForTypeIdentifier:options:completionHandler:"); + _lib._objc_msgSend_128( + _id, + _sel_loadItemForTypeIdentifier_options_completionHandler!, + typeIdentifier._id, + options._id, + completionHandler); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSItemProvider new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSItemProvider"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSItemProvider._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSItemProvider alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSItemProvider"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSItemProvider._(_ret, _lib); + } +} + +class NSProgress extends _ObjCWrapper { + NSProgress._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSProgress castFrom<T extends _ObjCWrapper>(T other) { + return NSProgress._(other._id, other._lib); + } +} + +typedef NSItemProviderLoadHandler = ffi.Pointer<ObjCObject>; +typedef NSItemProviderCompletionHandler = ffi.Pointer<ObjCObject>; + +abstract class NSItemProviderErrorCode { + static const int NSItemProviderUnknownError = -1; + static const int NSItemProviderItemUnavailableError = -1000; + static const int NSItemProviderUnexpectedValueClassError = -1100; + static const int NSItemProviderUnavailableCoercionError = -1200; +} + +abstract class NSStringCompareOptions { + static const int NSCaseInsensitiveSearch = 1; + static const int NSLiteralSearch = 2; + static const int NSBackwardsSearch = 4; + static const int NSAnchoredSearch = 8; + static const int NSNumericSearch = 64; + static const int NSDiacriticInsensitiveSearch = 128; + static const int NSWidthInsensitiveSearch = 256; + static const int NSForcedOrderingSearch = 512; + static const int NSRegularExpressionSearch = 1024; +} + +abstract class NSStringEncodingConversionOptions { + static const int NSStringEncodingConversionAllowLossy = 1; + static const int NSStringEncodingConversionExternalRepresentation = 2; +} + +abstract class NSStringEnumerationOptions { + static const int NSStringEnumerationByLines = 0; + static const int NSStringEnumerationByParagraphs = 1; + static const int NSStringEnumerationByComposedCharacterSequences = 2; + static const int NSStringEnumerationByWords = 3; + static const int NSStringEnumerationBySentences = 4; + static const int NSStringEnumerationByCaretPositions = 5; + static const int NSStringEnumerationByDeletionClusters = 6; + static const int NSStringEnumerationReverse = 256; + static const int NSStringEnumerationSubstringNotRequired = 512; + static const int NSStringEnumerationLocalized = 1024; +} + +typedef NSStringTransform = ffi.Pointer<ObjCObject>; +typedef NSStringEncodingDetectionOptionsKey = ffi.Pointer<ObjCObject>; + +class NSMutableString extends NSString { + NSMutableString._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSMutableString castFrom<T extends _ObjCWrapper>(T other) { + return NSMutableString._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_replaceCharactersInRange_withString; + void replaceCharactersInRange_withString(NSRange range, NSObject aString) { + _sel_replaceCharactersInRange_withString ??= + _registerName(_lib, "replaceCharactersInRange:withString:"); + _lib._objc_msgSend_129( + _id, _sel_replaceCharactersInRange_withString!, range, aString._id); + } + + static ffi.Pointer<ObjCSel>? _sel_stringWithCString_encoding; + static NSString stringWithCString_encoding( + StringTestObjCLibrary _lib, ffi.Pointer<pkg_ffi.Char> cString, int enc) { + _class ??= _getClass(_lib, "NSMutableString"); + _sel_stringWithCString_encoding ??= + _registerName(_lib, "stringWithCString:encoding:"); + final _ret = _lib._objc_msgSend_25( + _class!, _sel_stringWithCString_encoding!, cString, enc); + return NSString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSMutableString new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSMutableString"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSMutableString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSMutableString alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSMutableString"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSMutableString._(_ret, _lib); + } +} + +typedef NSExceptionName = ffi.Pointer<ObjCObject>; + +class NSSimpleCString extends NSString { + NSSimpleCString._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSSimpleCString castFrom<T extends _ObjCWrapper>(T other) { + return NSSimpleCString._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_stringWithCString_encoding; + static NSString stringWithCString_encoding( + StringTestObjCLibrary _lib, ffi.Pointer<pkg_ffi.Char> cString, int enc) { + _class ??= _getClass(_lib, "NSSimpleCString"); + _sel_stringWithCString_encoding ??= + _registerName(_lib, "stringWithCString:encoding:"); + final _ret = _lib._objc_msgSend_25( + _class!, _sel_stringWithCString_encoding!, cString, enc); + return NSString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSSimpleCString new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSSimpleCString"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSSimpleCString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSSimpleCString alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSSimpleCString"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSSimpleCString._(_ret, _lib); + } +} + +class NSConstantString extends NSSimpleCString { + NSConstantString._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static NSConstantString castFrom<T extends _ObjCWrapper>(T other) { + return NSConstantString._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_stringWithCString_encoding; + static NSString stringWithCString_encoding( + StringTestObjCLibrary _lib, ffi.Pointer<pkg_ffi.Char> cString, int enc) { + _class ??= _getClass(_lib, "NSConstantString"); + _sel_stringWithCString_encoding ??= + _registerName(_lib, "stringWithCString:encoding:"); + final _ret = _lib._objc_msgSend_25( + _class!, _sel_stringWithCString_encoding!, cString, enc); + return NSString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static NSConstantString new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSConstantString"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return NSConstantString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static NSConstantString alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "NSConstantString"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return NSConstantString._(_ret, _lib); + } +} + +class StringUtil extends NSObject { + StringUtil._(ffi.Pointer<ObjCObject> id, StringTestObjCLibrary lib) + : super._(id, lib); + + static ffi.Pointer<ObjCObject>? _class; + + static StringUtil castFrom<T extends _ObjCWrapper>(T other) { + return StringUtil._(other._id, other._lib); + } + + static ffi.Pointer<ObjCSel>? _sel_strConcat_with; + static NSString strConcat_with( + StringTestObjCLibrary _lib, NSObject a, NSObject b) { + _class ??= _getClass(_lib, "StringUtil"); + _sel_strConcat_with ??= _registerName(_lib, "strConcat:with:"); + final _ret = + _lib._objc_msgSend_130(_class!, _sel_strConcat_with!, a._id, b._id); + return NSString._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_new1; + static StringUtil new1(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "StringUtil"); + _sel_new1 ??= _registerName(_lib, "new"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_new1!); + return StringUtil._(_ret, _lib); + } + + static ffi.Pointer<ObjCSel>? _sel_alloc; + static StringUtil alloc(StringTestObjCLibrary _lib) { + _class ??= _getClass(_lib, "StringUtil"); + _sel_alloc ??= _registerName(_lib, "alloc"); + final _ret = _lib._objc_msgSend_1(_class!, _sel_alloc!); + return StringUtil._(_ret, _lib); + } +} + +const int NSScannedOption = 1; + +const int NSCollectorDisabledOption = 2; + +const int NSASCIIStringEncoding = 1; + +const int NSNEXTSTEPStringEncoding = 2; + +const int NSJapaneseEUCStringEncoding = 3; + +const int NSUTF8StringEncoding = 4; + +const int NSISOLatin1StringEncoding = 5; + +const int NSSymbolStringEncoding = 6; + +const int NSNonLossyASCIIStringEncoding = 7; + +const int NSShiftJISStringEncoding = 8; + +const int NSISOLatin2StringEncoding = 9; + +const int NSUnicodeStringEncoding = 10; + +const int NSWindowsCP1251StringEncoding = 11; + +const int NSWindowsCP1252StringEncoding = 12; + +const int NSWindowsCP1253StringEncoding = 13; + +const int NSWindowsCP1254StringEncoding = 14; + +const int NSWindowsCP1250StringEncoding = 15; + +const int NSISO2022JPStringEncoding = 21; + +const int NSMacOSRomanStringEncoding = 30; + +const int NSUTF16StringEncoding = 10; + +const int NSUTF16BigEndianStringEncoding = 2415919360; + +const int NSUTF16LittleEndianStringEncoding = 2483028224; + +const int NSUTF32StringEncoding = 2348810496; + +const int NSUTF32BigEndianStringEncoding = 2550137088; + +const int NSUTF32LittleEndianStringEncoding = 2617245952; + +const int NSProprietaryStringEncoding = 65536; + +const int NS_BLOCKS_AVAILABLE = 1; + +const int __COREFOUNDATION_CFAVAILABILITY__ = 1; + +const int __CF_ENUM_FIXED_IS_AVAILABLE = 1; + +const double NSFoundationVersionNumber10_0 = 397.4; + +const double NSFoundationVersionNumber10_1 = 425.0; + +const double NSFoundationVersionNumber10_1_1 = 425.0; + +const double NSFoundationVersionNumber10_1_2 = 425.0; + +const double NSFoundationVersionNumber10_1_3 = 425.0; + +const double NSFoundationVersionNumber10_1_4 = 425.0; + +const double NSFoundationVersionNumber10_2 = 462.0; + +const double NSFoundationVersionNumber10_2_1 = 462.0; + +const double NSFoundationVersionNumber10_2_2 = 462.0; + +const double NSFoundationVersionNumber10_2_3 = 462.0; + +const double NSFoundationVersionNumber10_2_4 = 462.0; + +const double NSFoundationVersionNumber10_2_5 = 462.0; + +const double NSFoundationVersionNumber10_2_6 = 462.0; + +const double NSFoundationVersionNumber10_2_7 = 462.7; + +const double NSFoundationVersionNumber10_2_8 = 462.7; + +const double NSFoundationVersionNumber10_3 = 500.0; + +const double NSFoundationVersionNumber10_3_1 = 500.0; + +const double NSFoundationVersionNumber10_3_2 = 500.3; + +const double NSFoundationVersionNumber10_3_3 = 500.54; + +const double NSFoundationVersionNumber10_3_4 = 500.56; + +const double NSFoundationVersionNumber10_3_5 = 500.56; + +const double NSFoundationVersionNumber10_3_6 = 500.56; + +const double NSFoundationVersionNumber10_3_7 = 500.56; + +const double NSFoundationVersionNumber10_3_8 = 500.56; + +const double NSFoundationVersionNumber10_3_9 = 500.58; + +const double NSFoundationVersionNumber10_4 = 567.0; + +const double NSFoundationVersionNumber10_4_1 = 567.0; + +const double NSFoundationVersionNumber10_4_2 = 567.12; + +const double NSFoundationVersionNumber10_4_3 = 567.21; + +const double NSFoundationVersionNumber10_4_4_Intel = 567.23; + +const double NSFoundationVersionNumber10_4_4_PowerPC = 567.21; + +const double NSFoundationVersionNumber10_4_5 = 567.25; + +const double NSFoundationVersionNumber10_4_6 = 567.26; + +const double NSFoundationVersionNumber10_4_7 = 567.27; + +const double NSFoundationVersionNumber10_4_8 = 567.28; + +const double NSFoundationVersionNumber10_4_9 = 567.29; + +const double NSFoundationVersionNumber10_4_10 = 567.29; + +const double NSFoundationVersionNumber10_4_11 = 567.36; + +const double NSFoundationVersionNumber10_5 = 677.0; + +const double NSFoundationVersionNumber10_5_1 = 677.1; + +const double NSFoundationVersionNumber10_5_2 = 677.15; + +const double NSFoundationVersionNumber10_5_3 = 677.19; + +const double NSFoundationVersionNumber10_5_4 = 677.19; + +const double NSFoundationVersionNumber10_5_5 = 677.21; + +const double NSFoundationVersionNumber10_5_6 = 677.22; + +const double NSFoundationVersionNumber10_5_7 = 677.24; + +const double NSFoundationVersionNumber10_5_8 = 677.26; + +const double NSFoundationVersionNumber10_6 = 751.0; + +const double NSFoundationVersionNumber10_6_1 = 751.0; + +const double NSFoundationVersionNumber10_6_2 = 751.14; + +const double NSFoundationVersionNumber10_6_3 = 751.21; + +const double NSFoundationVersionNumber10_6_4 = 751.29; + +const double NSFoundationVersionNumber10_6_5 = 751.42; + +const double NSFoundationVersionNumber10_6_6 = 751.53; + +const double NSFoundationVersionNumber10_6_7 = 751.53; + +const double NSFoundationVersionNumber10_6_8 = 751.62; + +const double NSFoundationVersionNumber10_7 = 833.1; + +const double NSFoundationVersionNumber10_7_1 = 833.1; + +const double NSFoundationVersionNumber10_7_2 = 833.2; + +const double NSFoundationVersionNumber10_7_3 = 833.24; + +const double NSFoundationVersionNumber10_7_4 = 833.25; + +const double NSFoundationVersionNumber10_8 = 945.0; + +const double NSFoundationVersionNumber10_8_1 = 945.0; + +const double NSFoundationVersionNumber10_8_2 = 945.11; + +const double NSFoundationVersionNumber10_8_3 = 945.16; + +const double NSFoundationVersionNumber10_8_4 = 945.18; + +const int NSFoundationVersionNumber10_9 = 1056; + +const int NSFoundationVersionNumber10_9_1 = 1056; + +const double NSFoundationVersionNumber10_9_2 = 1056.13; + +const double NSFoundationVersionNumber10_10 = 1151.16; + +const double NSFoundationVersionNumber10_10_1 = 1151.16; + +const double NSFoundationVersionNumber10_10_2 = 1152.14; + +const double NSFoundationVersionNumber10_10_3 = 1153.2; + +const double NSFoundationVersionNumber10_10_4 = 1153.2; + +const int NSFoundationVersionNumber10_10_5 = 1154; + +const int NSFoundationVersionNumber10_10_Max = 1199; + +const int NSFoundationVersionNumber10_11 = 1252; + +const double NSFoundationVersionNumber10_11_1 = 1255.1; + +const double NSFoundationVersionNumber10_11_2 = 1256.1; + +const double NSFoundationVersionNumber10_11_3 = 1256.1; + +const int NSFoundationVersionNumber10_11_4 = 1258; + +const int NSFoundationVersionNumber10_11_Max = 1299; + +const int __COREFOUNDATION_CFBASE__ = 1; + +const int TRUE = 1; + +const int FALSE = 0; + +const double kCFCoreFoundationVersionNumber10_0 = 196.4; + +const double kCFCoreFoundationVersionNumber10_0_3 = 196.5; + +const double kCFCoreFoundationVersionNumber10_1 = 226.0; + +const double kCFCoreFoundationVersionNumber10_1_1 = 226.0; + +const double kCFCoreFoundationVersionNumber10_1_2 = 227.2; + +const double kCFCoreFoundationVersionNumber10_1_3 = 227.2; + +const double kCFCoreFoundationVersionNumber10_1_4 = 227.3; + +const double kCFCoreFoundationVersionNumber10_2 = 263.0; + +const double kCFCoreFoundationVersionNumber10_2_1 = 263.1; + +const double kCFCoreFoundationVersionNumber10_2_2 = 263.1; + +const double kCFCoreFoundationVersionNumber10_2_3 = 263.3; + +const double kCFCoreFoundationVersionNumber10_2_4 = 263.3; + +const double kCFCoreFoundationVersionNumber10_2_5 = 263.5; + +const double kCFCoreFoundationVersionNumber10_2_6 = 263.5; + +const double kCFCoreFoundationVersionNumber10_2_7 = 263.5; + +const double kCFCoreFoundationVersionNumber10_2_8 = 263.5; + +const double kCFCoreFoundationVersionNumber10_3 = 299.0; + +const double kCFCoreFoundationVersionNumber10_3_1 = 299.0; + +const double kCFCoreFoundationVersionNumber10_3_2 = 299.0; + +const double kCFCoreFoundationVersionNumber10_3_3 = 299.3; + +const double kCFCoreFoundationVersionNumber10_3_4 = 299.31; + +const double kCFCoreFoundationVersionNumber10_3_5 = 299.31; + +const double kCFCoreFoundationVersionNumber10_3_6 = 299.32; + +const double kCFCoreFoundationVersionNumber10_3_7 = 299.33; + +const double kCFCoreFoundationVersionNumber10_3_8 = 299.33; + +const double kCFCoreFoundationVersionNumber10_3_9 = 299.35; + +const double kCFCoreFoundationVersionNumber10_4 = 368.0; + +const double kCFCoreFoundationVersionNumber10_4_1 = 368.1; + +const double kCFCoreFoundationVersionNumber10_4_2 = 368.11; + +const double kCFCoreFoundationVersionNumber10_4_3 = 368.18; + +const double kCFCoreFoundationVersionNumber10_4_4_Intel = 368.26; + +const double kCFCoreFoundationVersionNumber10_4_4_PowerPC = 368.25; + +const double kCFCoreFoundationVersionNumber10_4_5_Intel = 368.26; + +const double kCFCoreFoundationVersionNumber10_4_5_PowerPC = 368.25; + +const double kCFCoreFoundationVersionNumber10_4_6_Intel = 368.26; + +const double kCFCoreFoundationVersionNumber10_4_6_PowerPC = 368.25; + +const double kCFCoreFoundationVersionNumber10_4_7 = 368.27; + +const double kCFCoreFoundationVersionNumber10_4_8 = 368.27; + +const double kCFCoreFoundationVersionNumber10_4_9 = 368.28; + +const double kCFCoreFoundationVersionNumber10_4_10 = 368.28; + +const double kCFCoreFoundationVersionNumber10_4_11 = 368.31; + +const double kCFCoreFoundationVersionNumber10_5 = 476.0; + +const double kCFCoreFoundationVersionNumber10_5_1 = 476.0; + +const double kCFCoreFoundationVersionNumber10_5_2 = 476.1; + +const double kCFCoreFoundationVersionNumber10_5_3 = 476.13; + +const double kCFCoreFoundationVersionNumber10_5_4 = 476.14; + +const double kCFCoreFoundationVersionNumber10_5_5 = 476.15; + +const double kCFCoreFoundationVersionNumber10_5_6 = 476.17; + +const double kCFCoreFoundationVersionNumber10_5_7 = 476.18; + +const double kCFCoreFoundationVersionNumber10_5_8 = 476.19; + +const double kCFCoreFoundationVersionNumber10_6 = 550.0; + +const double kCFCoreFoundationVersionNumber10_6_1 = 550.0; + +const double kCFCoreFoundationVersionNumber10_6_2 = 550.13; + +const double kCFCoreFoundationVersionNumber10_6_3 = 550.19; + +const double kCFCoreFoundationVersionNumber10_6_4 = 550.29; + +const double kCFCoreFoundationVersionNumber10_6_5 = 550.42; + +const double kCFCoreFoundationVersionNumber10_6_6 = 550.42; + +const double kCFCoreFoundationVersionNumber10_6_7 = 550.42; + +const double kCFCoreFoundationVersionNumber10_6_8 = 550.43; + +const double kCFCoreFoundationVersionNumber10_7 = 635.0; + +const double kCFCoreFoundationVersionNumber10_7_1 = 635.0; + +const double kCFCoreFoundationVersionNumber10_7_2 = 635.15; + +const double kCFCoreFoundationVersionNumber10_7_3 = 635.19; + +const double kCFCoreFoundationVersionNumber10_7_4 = 635.21; + +const double kCFCoreFoundationVersionNumber10_7_5 = 635.21; + +const double kCFCoreFoundationVersionNumber10_8 = 744.0; + +const double kCFCoreFoundationVersionNumber10_8_1 = 744.0; + +const double kCFCoreFoundationVersionNumber10_8_2 = 744.12; + +const double kCFCoreFoundationVersionNumber10_8_3 = 744.18; + +const double kCFCoreFoundationVersionNumber10_8_4 = 744.19; + +const double kCFCoreFoundationVersionNumber10_9 = 855.11; + +const double kCFCoreFoundationVersionNumber10_9_1 = 855.11; + +const double kCFCoreFoundationVersionNumber10_9_2 = 855.14; + +const double kCFCoreFoundationVersionNumber10_10 = 1151.16; + +const double kCFCoreFoundationVersionNumber10_10_1 = 1151.16; + +const int kCFCoreFoundationVersionNumber10_10_2 = 1152; + +const double kCFCoreFoundationVersionNumber10_10_3 = 1153.18; + +const double kCFCoreFoundationVersionNumber10_10_4 = 1153.18; + +const double kCFCoreFoundationVersionNumber10_10_5 = 1153.18; + +const int kCFCoreFoundationVersionNumber10_10_Max = 1199; + +const int kCFCoreFoundationVersionNumber10_11 = 1253; + +const double kCFCoreFoundationVersionNumber10_11_1 = 1255.1; + +const double kCFCoreFoundationVersionNumber10_11_2 = 1256.14; + +const double kCFCoreFoundationVersionNumber10_11_3 = 1256.14; + +const double kCFCoreFoundationVersionNumber10_11_4 = 1258.1; + +const int kCFCoreFoundationVersionNumber10_11_Max = 1299; + +const int ISA_PTRAUTH_DISCRIMINATOR = 27361; + +const int NSMaximumStringLength = 2147483646; + +const int NS_UNICHAR_IS_EIGHT_BIT = 0;
diff --git a/pkgs/ffigen/test/native_objc_test/string_config.yaml b/pkgs/ffigen/test/native_objc_test/string_config.yaml new file mode 100644 index 0000000..9f387a9 --- /dev/null +++ b/pkgs/ffigen/test/native_objc_test/string_config.yaml
@@ -0,0 +1,12 @@ +name: StringTestObjCLibrary +description: 'Tests calling Objective-C string methods' +language: objc +output: 'test/native_objc_test/string_bindings.dart' +functions: + exclude: + - '.*' +headers: + entry-points: + - 'test/native_objc_test/string_test.m' +preamble: | + // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/pkgs/ffigen/test/native_objc_test/string_test.dart b/pkgs/ffigen/test/native_objc_test/string_test.dart new file mode 100644 index 0000000..27c6359 --- /dev/null +++ b/pkgs/ffigen/test/native_objc_test/string_test.dart
@@ -0,0 +1,48 @@ +// Copyright (c) 2022, 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. + +// Objective C support is only available on mac. +@TestOn('mac-os') + +import 'dart:ffi'; +import 'dart:io'; + +import 'package:test/test.dart'; +import '../test_utils.dart'; +import 'string_bindings.dart'; + +void main() { + late StringTestObjCLibrary lib; + + group('string', () { + setUpAll(() { + logWarnings(); + final dylib = File('test/native_objc_test/string_test.dylib'); + verifySetupFile(dylib); + lib = StringTestObjCLibrary(DynamicLibrary.open(dylib.absolute.path)); + }); + + // TODO(#329): Add 'Embedded\u0000Null'. + for (final s in ['Hello', '🇵🇬']) { + test('NSString to/from Dart string [$s]', () { + final ns1 = NSString(lib, s); + expect(ns1.toString(), s); + expect(ns1.length, s.length); + + final ns2 = s.toNSString(lib); + expect(ns2.toString(), s); + expect(ns2.length, s.length); + }); + } + + test('strings usable', () { + final str1 = 'Hello'.toNSString(lib); + final str2 = 'World!'.toNSString(lib); + + final str3 = StringUtil.strConcat_with(lib, str1, str2); + expect(str3.length, 11); + expect(str3.toString(), "HelloWorld!"); + }); + }); +}
diff --git a/pkgs/ffigen/test/native_objc_test/string_test.m b/pkgs/ffigen/test/native_objc_test/string_test.m new file mode 100644 index 0000000..5add18c --- /dev/null +++ b/pkgs/ffigen/test/native_objc_test/string_test.m
@@ -0,0 +1,13 @@ +#import <Foundation/NSObject.h> +#import <Foundation/NSString.h> + +// TODO(#309): strConcat should just be a static function. +@interface StringUtil : NSObject {} ++ (NSString*)strConcat:(NSString*)a with:(NSString*)b; +@end + +@implementation StringUtil ++ (NSString*)strConcat:(NSString*)a with:(NSString*)b { + return [a stringByAppendingString:b]; +} +@end
diff --git a/pkgs/ffigen/test/regen.dart b/pkgs/ffigen/test/regen.dart index 1bc2021..7d78b6d 100644 --- a/pkgs/ffigen/test/regen.dart +++ b/pkgs/ffigen/test/regen.dart
@@ -74,6 +74,21 @@ File('test/native_objc_test/native_objc_test_bindings.dart'), ); + await _regenConfig( + File('test/native_objc_test/method_config.yaml'), + File('test/native_objc_test/method_bindings.dart'), + ); + + await _regenConfig( + File('test/native_objc_test/property_config.yaml'), + File('test/native_objc_test/property_bindings.dart'), + ); + + await _regenConfig( + File('test/native_objc_test/string_config.yaml'), + File('test/native_objc_test/string_bindings.dart'), + ); + await _regenConfig(File('test/native_test/config.yaml'), File('test/native_test/native_test_bindings.dart'));