@tokamakdev/plugin-location 0.1.0-beta.107 → 0.1.0-beta.114

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1057 @@
1
+ // Generated by `tok bindings` from the iOS and macOS 26.2 SDKs: CoreLocation, _LocationEssentials. Do not edit.
2
+
3
+ import Foundation
4
+ import CoreLocation
5
+ import _LocationEssentials
6
+
7
+ #if hasAttribute(diagnose)
8
+ @diagnose(DeprecatedDeclaration, as: ignored)
9
+ #endif
10
+ final class TokamakBindings_location: TokamakPlugin {
11
+ let id = "location/apple"
12
+ private let host: TokamakHost
13
+
14
+ init(host: TokamakHost) { self.host = host }
15
+
16
+ func callBytes(method: String, payload: Data, reply: @escaping TokamakPluginBytesReply) -> (() -> Void)? {
17
+ let b = TokamakBinding(payload, resources: host.resources, reply: reply)
18
+ switch method {
19
+ #if os(iOS)
20
+ case "CLBackgroundActivitySession.init()":
21
+ guard #available(iOS 17.0, *) else { return b.run { throw TokamakBinding.unavailable } }
22
+ return b.run { let value = CLBackgroundActivitySession(); return b.encode(object: value) }
23
+ #endif
24
+ #if os(iOS)
25
+ case "CLBackgroundActivitySession.invalidate()":
26
+ guard #available(iOS 17.0, *) else { return b.run { throw TokamakBinding.unavailable } }
27
+ return b.run { try b.target(CLBackgroundActivitySession.self).invalidate(); return nil }
28
+ #endif
29
+ case "CLBeacon.accuracy":
30
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
31
+ return b.run { let value = try b.target(CLBeacon.self).accuracy; return b.encode(value) }
32
+ case "CLBeacon.major":
33
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
34
+ return b.run { let value = try b.target(CLBeacon.self).major; return b.encode(value) }
35
+ case "CLBeacon.minor":
36
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
37
+ return b.run { let value = try b.target(CLBeacon.self).minor; return b.encode(value) }
38
+ case "CLBeacon.proximity":
39
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
40
+ return b.run { let value = try b.target(CLBeacon.self).proximity; return TokamakBindings_location.encode(value, b) }
41
+ case "CLBeacon.proximityUUID":
42
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
43
+ return b.run { let value = try b.target(CLBeacon.self).proximityUUID; return b.encode(value) }
44
+ case "CLBeacon.rssi":
45
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
46
+ return b.run { let value = try b.target(CLBeacon.self).rssi; return b.encode(value) }
47
+ case "CLBeacon.timestamp":
48
+ guard #available(iOS 13.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
49
+ return b.run { let value = try b.target(CLBeacon.self).timestamp; return b.encode(value) }
50
+ case "CLBeacon.uuid":
51
+ guard #available(iOS 13.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
52
+ return b.run { let value = try b.target(CLBeacon.self).uuid; return b.encode(value) }
53
+ case "CLBeaconIdentityConstraint.major":
54
+ guard #available(iOS 13.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
55
+ return b.run { let value = try b.target(CLBeaconIdentityConstraint.self).major; return b.encode(optional: value) { b.encode($0) } }
56
+ case "CLBeaconIdentityConstraint.minor":
57
+ guard #available(iOS 13.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
58
+ return b.run { let value = try b.target(CLBeaconIdentityConstraint.self).minor; return b.encode(optional: value) { b.encode($0) } }
59
+ case "CLBeaconRegion.beaconIdentityConstraint":
60
+ guard #available(iOS 13.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
61
+ return b.run { let value = try b.target(CLBeaconRegion.self).beaconIdentityConstraint; return b.encode(object: value) }
62
+ case "CLBeaconRegion.init(beaconIdentityConstraint:identifier:)":
63
+ guard #available(iOS 13.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
64
+ return b.run { let value = try CLBeaconRegion(beaconIdentityConstraint: b.object(b[0], as: CLBeaconIdentityConstraint.self), identifier: b.decode(b[1], as: String.self)); return b.encode(object: value) }
65
+ case "CLBeaconRegion.init(proximityUUID:identifier:)":
66
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
67
+ return b.run { let value = try CLBeaconRegion(proximityUUID: b.decode(b[0], as: UUID.self), identifier: b.decode(b[1], as: String.self)); return b.encode(object: value) }
68
+ case "CLBeaconRegion.init(proximityUUID:major:identifier:)":
69
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
70
+ return b.run { let value = try CLBeaconRegion(proximityUUID: b.decode(b[0], as: UUID.self), major: b.decode(b[1], as: CLBeaconMajorValue.self), identifier: b.decode(b[2], as: String.self)); return b.encode(object: value) }
71
+ case "CLBeaconRegion.init(proximityUUID:major:minor:identifier:)":
72
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
73
+ return b.run { let value = try CLBeaconRegion(proximityUUID: b.decode(b[0], as: UUID.self), major: b.decode(b[1], as: CLBeaconMajorValue.self), minor: b.decode(b[2], as: CLBeaconMinorValue.self), identifier: b.decode(b[3], as: String.self)); return b.encode(object: value) }
74
+ case "CLBeaconRegion.init(uuid:identifier:)":
75
+ guard #available(iOS 13.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
76
+ return b.run { let value = try CLBeaconRegion(uuid: b.decode(b[0], as: UUID.self), identifier: b.decode(b[1], as: String.self)); return b.encode(object: value) }
77
+ case "CLBeaconRegion.init(uuid:major:identifier:)":
78
+ guard #available(iOS 13.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
79
+ return b.run { let value = try CLBeaconRegion(uuid: b.decode(b[0], as: UUID.self), major: b.decode(b[1], as: CLBeaconMajorValue.self), identifier: b.decode(b[2], as: String.self)); return b.encode(object: value) }
80
+ case "CLBeaconRegion.init(uuid:major:minor:identifier:)":
81
+ guard #available(iOS 13.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
82
+ return b.run { let value = try CLBeaconRegion(uuid: b.decode(b[0], as: UUID.self), major: b.decode(b[1], as: CLBeaconMajorValue.self), minor: b.decode(b[2], as: CLBeaconMinorValue.self), identifier: b.decode(b[3], as: String.self)); return b.encode(object: value) }
83
+ case "CLBeaconRegion.major":
84
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
85
+ return b.run { let value = try b.target(CLBeaconRegion.self).major; return b.encode(optional: value) { b.encode($0) } }
86
+ case "CLBeaconRegion.minor":
87
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
88
+ return b.run { let value = try b.target(CLBeaconRegion.self).minor; return b.encode(optional: value) { b.encode($0) } }
89
+ case "CLBeaconRegion.notifyEntryStateOnDisplay":
90
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
91
+ return b.run { let value = try b.target(CLBeaconRegion.self).notifyEntryStateOnDisplay; return b.encode(value) }
92
+ case "CLBeaconRegion.notifyEntryStateOnDisplay=":
93
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
94
+ return b.run { try b.target(CLBeaconRegion.self).notifyEntryStateOnDisplay = b.decode(b[0], as: Bool.self); return nil }
95
+ case "CLBeaconRegion.proximityUUID":
96
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
97
+ return b.run { let value = try b.target(CLBeaconRegion.self).proximityUUID; return b.encode(value) }
98
+ case "CLBeaconRegion.uuid":
99
+ guard #available(iOS 13.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
100
+ return b.run { let value = try b.target(CLBeaconRegion.self).uuid; return b.encode(value) }
101
+ case "CLCircularRegion.center":
102
+ guard #available(iOS 7.0, macOS 10.10, *) else { return b.run { throw TokamakBinding.unavailable } }
103
+ return b.run { let value = try b.target(CLCircularRegion.self).center; return TokamakBindings_location.encode(value, b) }
104
+ case "CLCircularRegion.contains(_:)":
105
+ guard #available(iOS 7.0, macOS 10.10, *) else { return b.run { throw TokamakBinding.unavailable } }
106
+ return b.run { let value = try b.target(CLCircularRegion.self).contains(TokamakBindings_location.decode(b[0], b, as: CLLocationCoordinate2D.self)); return b.encode(value) }
107
+ case "CLCircularRegion.init(center:radius:identifier:)":
108
+ guard #available(iOS 7.0, macOS 10.10, *) else { return b.run { throw TokamakBinding.unavailable } }
109
+ return b.run { let value = try CLCircularRegion(center: TokamakBindings_location.decode(b[0], b, as: CLLocationCoordinate2D.self), radius: b.decode(b[1], as: CLLocationDistance.self), identifier: b.decode(b[2], as: String.self)); return b.encode(object: value) }
110
+ case "CLCircularRegion.radius":
111
+ guard #available(iOS 7.0, macOS 10.10, *) else { return b.run { throw TokamakBinding.unavailable } }
112
+ return b.run { let value = try b.target(CLCircularRegion.self).radius; return b.encode(value) }
113
+ case "CLGeocoder.cancelGeocode()":
114
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
115
+ return b.run { try b.target(CLGeocoder.self).cancelGeocode(); return nil }
116
+ case "CLGeocoder.geocodeAddressString(_:)":
117
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
118
+ return b.task { let value = try await b.target(CLGeocoder.self).geocodeAddressString(b.decode(b[0], as: String.self)); return b.encode(array: value) { b.encode(object: $0) } }
119
+ case "CLGeocoder.geocodeAddressString(_:in:)":
120
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
121
+ return b.task { let value = try await b.target(CLGeocoder.self).geocodeAddressString(b.decode(b[0], as: String.self), in: b.optional(b[1]) { try b.object($0, as: CLRegion.self) }); return b.encode(array: value) { b.encode(object: $0) } }
122
+ case "CLGeocoder.geocodeAddressString(_:in:preferredLocale:)":
123
+ guard #available(iOS 11.0, macOS 10.13, *) else { return b.run { throw TokamakBinding.unavailable } }
124
+ return b.task { let value = try await b.target(CLGeocoder.self).geocodeAddressString(b.decode(b[0], as: String.self), in: b.optional(b[1]) { try b.object($0, as: CLRegion.self) }, preferredLocale: b.optional(b[2]) { try b.decode($0, as: Locale.self) }); return b.encode(array: value) { b.encode(object: $0) } }
125
+ case "CLGeocoder.isGeocoding":
126
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
127
+ return b.run { let value = try b.target(CLGeocoder.self).isGeocoding; return b.encode(value) }
128
+ case "CLGeocoder.reverseGeocodeLocation(_:)":
129
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
130
+ return b.task { let value = try await b.target(CLGeocoder.self).reverseGeocodeLocation(b.object(b[0], as: CLLocation.self)); return b.encode(array: value) { b.encode(object: $0) } }
131
+ case "CLGeocoder.reverseGeocodeLocation(_:preferredLocale:)":
132
+ guard #available(iOS 11.0, macOS 10.13, *) else { return b.run { throw TokamakBinding.unavailable } }
133
+ return b.task { let value = try await b.target(CLGeocoder.self).reverseGeocodeLocation(b.object(b[0], as: CLLocation.self), preferredLocale: b.optional(b[1]) { try b.decode($0, as: Locale.self) }); return b.encode(array: value) { b.encode(object: $0) } }
134
+ case "CLGeocoder.init()":
135
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
136
+ return b.run { let value = CLGeocoder(); return b.encode(object: value) }
137
+ case "CLHeading.headingAccuracy":
138
+ guard #available(iOS 3.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
139
+ return b.run { let value = try b.target(CLHeading.self).headingAccuracy; return b.encode(value) }
140
+ case "CLHeading.magneticHeading":
141
+ guard #available(iOS 3.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
142
+ return b.run { let value = try b.target(CLHeading.self).magneticHeading; return b.encode(value) }
143
+ case "CLHeading.timestamp":
144
+ guard #available(iOS 3.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
145
+ return b.run { let value = try b.target(CLHeading.self).timestamp; return b.encode(value) }
146
+ case "CLHeading.trueHeading":
147
+ guard #available(iOS 3.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
148
+ return b.run { let value = try b.target(CLHeading.self).trueHeading; return b.encode(value) }
149
+ case "CLHeading.x":
150
+ guard #available(iOS 3.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
151
+ return b.run { let value = try b.target(CLHeading.self).x; return b.encode(value) }
152
+ case "CLHeading.y":
153
+ guard #available(iOS 3.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
154
+ return b.run { let value = try b.target(CLHeading.self).y; return b.encode(value) }
155
+ case "CLHeading.z":
156
+ guard #available(iOS 3.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
157
+ return b.run { let value = try b.target(CLHeading.self).z; return b.encode(value) }
158
+ case "CLLocationManager.accuracyAuthorization":
159
+ guard #available(iOS 14.0, macOS 11.0, *) else { return b.run { throw TokamakBinding.unavailable } }
160
+ return b.run { let value = try b.target(CLLocationManager.self).accuracyAuthorization; return TokamakBindings_location.encode(value, b) }
161
+ case "CLLocationManager.activityType":
162
+ guard #available(iOS 6.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
163
+ return b.run { let value = try b.target(CLLocationManager.self).activityType; return TokamakBindings_location.encode(value, b) }
164
+ case "CLLocationManager.activityType=":
165
+ guard #available(iOS 6.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
166
+ return b.run { try b.target(CLLocationManager.self).activityType = TokamakBindings_location.decode(b[0], b, as: CLActivityType.self); return nil }
167
+ case "CLLocationManager.allowDeferredLocationUpdates(untilTraveled:timeout:)":
168
+ guard #available(iOS 6.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
169
+ return b.run { try b.target(CLLocationManager.self).allowDeferredLocationUpdates(untilTraveled: b.decode(b[0], as: CLLocationDistance.self), timeout: b.decode(b[1], as: TimeInterval.self)); return nil }
170
+ case "CLLocationManager.allowsBackgroundLocationUpdates":
171
+ guard #available(iOS 9.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
172
+ return b.run { let value = try b.target(CLLocationManager.self).allowsBackgroundLocationUpdates; return b.encode(value) }
173
+ case "CLLocationManager.allowsBackgroundLocationUpdates=":
174
+ guard #available(iOS 9.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
175
+ return b.run { try b.target(CLLocationManager.self).allowsBackgroundLocationUpdates = b.decode(b[0], as: Bool.self); return nil }
176
+ case "CLLocationManager.authorizationStatus":
177
+ guard #available(iOS 14.0, macOS 11.0, *) else { return b.run { throw TokamakBinding.unavailable } }
178
+ return b.run { let value = try b.target(CLLocationManager.self).authorizationStatus; return TokamakBindings_location.encode(value, b) }
179
+ case "CLLocationManager.authorizationStatus()":
180
+ guard #available(iOS 4.2, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
181
+ return b.run { let value = CLLocationManager.authorizationStatus(); return TokamakBindings_location.encode(value, b) }
182
+ case "CLLocationManager.deferredLocationUpdatesAvailable()":
183
+ guard #available(iOS 6.0, macOS 10.9, *) else { return b.run { throw TokamakBinding.unavailable } }
184
+ return b.run { let value = CLLocationManager.deferredLocationUpdatesAvailable(); return b.encode(value) }
185
+ case "CLLocationManager.delegate":
186
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
187
+ return b.run { let value = try b.target(CLLocationManager.self).delegate; return b.encode(optional: value) { b.encode(object: $0) } }
188
+ case "CLLocationManager.delegate=":
189
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
190
+ return b.run { try b.target(CLLocationManager.self).delegate = b.optional(b[0]) { try b.object($0, as: (any CLLocationManagerDelegate).self) }; return nil }
191
+ case "CLLocationManager.desiredAccuracy":
192
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
193
+ return b.run { let value = try b.target(CLLocationManager.self).desiredAccuracy; return b.encode(value) }
194
+ case "CLLocationManager.desiredAccuracy=":
195
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
196
+ return b.run { try b.target(CLLocationManager.self).desiredAccuracy = b.decode(b[0], as: CLLocationAccuracy.self); return nil }
197
+ case "CLLocationManager.disallowDeferredLocationUpdates()":
198
+ guard #available(iOS 6.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
199
+ return b.run { try b.target(CLLocationManager.self).disallowDeferredLocationUpdates(); return nil }
200
+ case "CLLocationManager.dismissHeadingCalibrationDisplay()":
201
+ guard #available(iOS 3.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
202
+ return b.run { try b.target(CLLocationManager.self).dismissHeadingCalibrationDisplay(); return nil }
203
+ case "CLLocationManager.distanceFilter":
204
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
205
+ return b.run { let value = try b.target(CLLocationManager.self).distanceFilter; return b.encode(value) }
206
+ case "CLLocationManager.distanceFilter=":
207
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
208
+ return b.run { try b.target(CLLocationManager.self).distanceFilter = b.decode(b[0], as: CLLocationDistance.self); return nil }
209
+ case "CLLocationManager.heading":
210
+ guard #available(iOS 4.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
211
+ return b.run { let value = try b.target(CLLocationManager.self).heading; return b.encode(optional: value) { b.encode(object: $0) } }
212
+ case "CLLocationManager.headingAvailable()":
213
+ guard #available(iOS 4.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
214
+ return b.run { let value = CLLocationManager.headingAvailable(); return b.encode(value) }
215
+ case "CLLocationManager.headingFilter":
216
+ guard #available(iOS 3.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
217
+ return b.run { let value = try b.target(CLLocationManager.self).headingFilter; return b.encode(value) }
218
+ case "CLLocationManager.headingFilter=":
219
+ guard #available(iOS 3.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
220
+ return b.run { try b.target(CLLocationManager.self).headingFilter = b.decode(b[0], as: CLLocationDegrees.self); return nil }
221
+ case "CLLocationManager.headingOrientation":
222
+ guard #available(iOS 4.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
223
+ return b.run { let value = try b.target(CLLocationManager.self).headingOrientation; return TokamakBindings_location.encode(value, b) }
224
+ case "CLLocationManager.headingOrientation=":
225
+ guard #available(iOS 4.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
226
+ return b.run { try b.target(CLLocationManager.self).headingOrientation = TokamakBindings_location.decode(b[0], b, as: CLDeviceOrientation.self); return nil }
227
+ case "CLLocationManager.isAuthorizedForWidgetUpdates":
228
+ guard #available(iOS 14.0, macOS 11.0, *) else { return b.run { throw TokamakBinding.unavailable } }
229
+ return b.run { let value = try b.target(CLLocationManager.self).isAuthorizedForWidgetUpdates; return b.encode(value) }
230
+ case "CLLocationManager.isRangingAvailable()":
231
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
232
+ return b.run { let value = CLLocationManager.isRangingAvailable(); return b.encode(value) }
233
+ case "CLLocationManager.location":
234
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
235
+ return b.run { let value = try b.target(CLLocationManager.self).location; return b.encode(optional: value) { b.encode(object: $0) } }
236
+ case "CLLocationManager.locationServicesEnabled()":
237
+ guard #available(iOS 4.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
238
+ return b.run { let value = CLLocationManager.locationServicesEnabled(); return b.encode(value) }
239
+ case "CLLocationManager.maximumRegionMonitoringDistance":
240
+ guard #available(iOS 4.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
241
+ return b.run { let value = try b.target(CLLocationManager.self).maximumRegionMonitoringDistance; return b.encode(value) }
242
+ case "CLLocationManager.monitoredRegions":
243
+ guard #available(iOS 4.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
244
+ return b.run { let value = try b.target(CLLocationManager.self).monitoredRegions; return b.encode(array: value) { b.encode(object: $0) } }
245
+ case "CLLocationManager.pausesLocationUpdatesAutomatically":
246
+ guard #available(iOS 6.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
247
+ return b.run { let value = try b.target(CLLocationManager.self).pausesLocationUpdatesAutomatically; return b.encode(value) }
248
+ case "CLLocationManager.pausesLocationUpdatesAutomatically=":
249
+ guard #available(iOS 6.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
250
+ return b.run { try b.target(CLLocationManager.self).pausesLocationUpdatesAutomatically = b.decode(b[0], as: Bool.self); return nil }
251
+ case "CLLocationManager.rangedBeaconConstraints":
252
+ guard #available(iOS 13.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
253
+ return b.run { let value = try b.target(CLLocationManager.self).rangedBeaconConstraints; return b.encode(array: value) { b.encode(object: $0) } }
254
+ case "CLLocationManager.rangedRegions":
255
+ guard #available(iOS 7.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
256
+ return b.run { let value = try b.target(CLLocationManager.self).rangedRegions; return b.encode(array: value) { b.encode(object: $0) } }
257
+ case "CLLocationManager.requestAlwaysAuthorization()":
258
+ guard #available(iOS 8.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
259
+ return b.run { try b.target(CLLocationManager.self).requestAlwaysAuthorization(); return nil }
260
+ case "CLLocationManager.requestLocation()":
261
+ guard #available(iOS 9.0, macOS 10.14, *) else { return b.run { throw TokamakBinding.unavailable } }
262
+ return b.run { try b.target(CLLocationManager.self).requestLocation(); return nil }
263
+ case "CLLocationManager.requestState(for:)":
264
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
265
+ return b.run { try b.target(CLLocationManager.self).requestState(for: b.object(b[0], as: CLRegion.self)); return nil }
266
+ case "CLLocationManager.requestTemporaryFullAccuracyAuthorization(withPurposeKey:)":
267
+ guard #available(iOS 14.0, macOS 11.0, *) else { return b.run { throw TokamakBinding.unavailable } }
268
+ return b.task { try await b.target(CLLocationManager.self).requestTemporaryFullAccuracyAuthorization(withPurposeKey: b.decode(b[0], as: String.self)); return nil }
269
+ case "CLLocationManager.requestWhenInUseAuthorization()":
270
+ guard #available(iOS 8.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
271
+ return b.run { try b.target(CLLocationManager.self).requestWhenInUseAuthorization(); return nil }
272
+ #if os(iOS)
273
+ case "CLLocationManager.showsBackgroundLocationIndicator":
274
+ guard #available(iOS 11.0, *) else { return b.run { throw TokamakBinding.unavailable } }
275
+ return b.run { let value = try b.target(CLLocationManager.self).showsBackgroundLocationIndicator; return b.encode(value) }
276
+ #endif
277
+ #if os(iOS)
278
+ case "CLLocationManager.showsBackgroundLocationIndicator=":
279
+ guard #available(iOS 11.0, *) else { return b.run { throw TokamakBinding.unavailable } }
280
+ return b.run { try b.target(CLLocationManager.self).showsBackgroundLocationIndicator = b.decode(b[0], as: Bool.self); return nil }
281
+ #endif
282
+ case "CLLocationManager.significantLocationChangeMonitoringAvailable()":
283
+ guard #available(iOS 4.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
284
+ return b.run { let value = CLLocationManager.significantLocationChangeMonitoringAvailable(); return b.encode(value) }
285
+ case "CLLocationManager.startMonitoring(for:)":
286
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
287
+ return b.run { try b.target(CLLocationManager.self).startMonitoring(for: b.object(b[0], as: CLRegion.self)); return nil }
288
+ #if os(iOS)
289
+ case "CLLocationManager.startMonitoringLocationPushes()":
290
+ guard #available(iOS 15.0, *) else { return b.run { throw TokamakBinding.unavailable } }
291
+ return b.task { let value = try await b.target(CLLocationManager.self).startMonitoringLocationPushes(); return b.encode(value) }
292
+ #endif
293
+ case "CLLocationManager.startMonitoringSignificantLocationChanges()":
294
+ guard #available(iOS 4.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
295
+ return b.run { try b.target(CLLocationManager.self).startMonitoringSignificantLocationChanges(); return nil }
296
+ case "CLLocationManager.startMonitoringVisits()":
297
+ guard #available(iOS 8.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
298
+ return b.run { try b.target(CLLocationManager.self).startMonitoringVisits(); return nil }
299
+ case "CLLocationManager.startRangingBeacons(in:)":
300
+ guard #available(iOS 7.0, macOS 11.0, *) else { return b.run { throw TokamakBinding.unavailable } }
301
+ return b.run { try b.target(CLLocationManager.self).startRangingBeacons(in: b.object(b[0], as: CLBeaconRegion.self)); return nil }
302
+ case "CLLocationManager.startRangingBeacons(satisfying:)":
303
+ guard #available(iOS 13.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
304
+ return b.run { try b.target(CLLocationManager.self).startRangingBeacons(satisfying: b.object(b[0], as: CLBeaconIdentityConstraint.self)); return nil }
305
+ case "CLLocationManager.startUpdatingHeading()":
306
+ guard #available(iOS 3.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
307
+ return b.run { try b.target(CLLocationManager.self).startUpdatingHeading(); return nil }
308
+ case "CLLocationManager.startUpdatingLocation()":
309
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
310
+ return b.run { try b.target(CLLocationManager.self).startUpdatingLocation(); return nil }
311
+ case "CLLocationManager.stopMonitoring(for:)":
312
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
313
+ return b.run { try b.target(CLLocationManager.self).stopMonitoring(for: b.object(b[0], as: CLRegion.self)); return nil }
314
+ #if os(iOS)
315
+ case "CLLocationManager.stopMonitoringLocationPushes()":
316
+ guard #available(iOS 15.0, *) else { return b.run { throw TokamakBinding.unavailable } }
317
+ return b.run { try b.target(CLLocationManager.self).stopMonitoringLocationPushes(); return nil }
318
+ #endif
319
+ case "CLLocationManager.stopMonitoringSignificantLocationChanges()":
320
+ guard #available(iOS 4.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
321
+ return b.run { try b.target(CLLocationManager.self).stopMonitoringSignificantLocationChanges(); return nil }
322
+ case "CLLocationManager.stopMonitoringVisits()":
323
+ guard #available(iOS 8.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
324
+ return b.run { try b.target(CLLocationManager.self).stopMonitoringVisits(); return nil }
325
+ case "CLLocationManager.stopRangingBeacons(in:)":
326
+ guard #available(iOS 7.0, macOS 11.0, *) else { return b.run { throw TokamakBinding.unavailable } }
327
+ return b.run { try b.target(CLLocationManager.self).stopRangingBeacons(in: b.object(b[0], as: CLBeaconRegion.self)); return nil }
328
+ case "CLLocationManager.stopRangingBeacons(satisfying:)":
329
+ guard #available(iOS 13.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
330
+ return b.run { try b.target(CLLocationManager.self).stopRangingBeacons(satisfying: b.object(b[0], as: CLBeaconIdentityConstraint.self)); return nil }
331
+ #if os(iOS)
332
+ case "CLLocationManager.stopUpdatingHeading()":
333
+ guard #available(iOS 3.0, *) else { return b.run { throw TokamakBinding.unavailable } }
334
+ return b.run { try b.target(CLLocationManager.self).stopUpdatingHeading(); return nil }
335
+ #endif
336
+ case "CLLocationManager.stopUpdatingLocation()":
337
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
338
+ return b.run { try b.target(CLLocationManager.self).stopUpdatingLocation(); return nil }
339
+ #if os(macOS)
340
+ case "CLLocationManager.headingAvailable":
341
+ guard #available(macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
342
+ return b.run { let value = try b.target(CLLocationManager.self).headingAvailable; return b.encode(value) }
343
+ #endif
344
+ #if os(macOS)
345
+ case "CLLocationManager.locationServicesEnabled":
346
+ guard #available(macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
347
+ return b.run { let value = try b.target(CLLocationManager.self).locationServicesEnabled; return b.encode(value) }
348
+ #endif
349
+ #if os(macOS)
350
+ case "CLLocationManager.purpose":
351
+ guard #available(macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
352
+ return b.run { let value = try b.target(CLLocationManager.self).purpose; return b.encode(optional: value) { b.encode($0) } }
353
+ #endif
354
+ #if os(macOS)
355
+ case "CLLocationManager.purpose=":
356
+ guard #available(macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
357
+ return b.run { try b.target(CLLocationManager.self).purpose = b.optional(b[0]) { try b.decode($0, as: String.self) }; return nil }
358
+ #endif
359
+ #if os(macOS)
360
+ case "CLLocationManager.regionMonitoringAvailable()":
361
+ guard #available(macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
362
+ return b.run { let value = CLLocationManager.regionMonitoringAvailable(); return b.encode(value) }
363
+ #endif
364
+ #if os(macOS)
365
+ case "CLLocationManager.regionMonitoringEnabled()":
366
+ guard #available(macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
367
+ return b.run { let value = CLLocationManager.regionMonitoringEnabled(); return b.encode(value) }
368
+ #endif
369
+ #if os(macOS)
370
+ case "CLLocationManager.startMonitoring(for:desiredAccuracy:)":
371
+ guard #available(macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
372
+ return b.run { try b.target(CLLocationManager.self).startMonitoring(for: b.object(b[0], as: CLRegion.self), desiredAccuracy: b.decode(b[1], as: CLLocationAccuracy.self)); return nil }
373
+ #endif
374
+ case "CLLocationManager.init()":
375
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
376
+ return b.run { let value = CLLocationManager(); return b.encode(object: value) }
377
+ case "CLMonitor.add(_:identifier:)":
378
+ guard #available(iOS 17.0, macOS 14.0, *) else { return b.run { throw TokamakBinding.unavailable } }
379
+ return b.task { try await b.target(CLMonitor.self).add(b.object(b[0], as: (any CLCondition).self), identifier: b.decode(b[1], as: String.self)); return nil }
380
+ case "CLMonitor.identifiers":
381
+ guard #available(iOS 17.0, macOS 14.0, *) else { return b.run { throw TokamakBinding.unavailable } }
382
+ return b.task { let value = try await b.target(CLMonitor.self).identifiers; return b.encode(array: value) { b.encode($0) } }
383
+ case "CLMonitor.init(_:)":
384
+ guard #available(iOS 17.0, macOS 14.0, *) else { return b.run { throw TokamakBinding.unavailable } }
385
+ return b.task { let value = try await CLMonitor(b.decode(b[0], as: String.self)); return b.encode(object: value) }
386
+ case "CLMonitor.remove(_:)":
387
+ guard #available(iOS 17.0, macOS 14.0, *) else { return b.run { throw TokamakBinding.unavailable } }
388
+ return b.task { try await b.target(CLMonitor.self).remove(b.decode(b[0], as: String.self)); return nil }
389
+ case "CLPlacemark.administrativeArea":
390
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
391
+ return b.run { let value = try b.target(CLPlacemark.self).administrativeArea; return b.encode(optional: value) { b.encode($0) } }
392
+ case "CLPlacemark.areasOfInterest":
393
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
394
+ return b.run { let value = try b.target(CLPlacemark.self).areasOfInterest; return b.encode(optional: value) { b.encode(array: $0) { b.encode($0) } } }
395
+ case "CLPlacemark.country":
396
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
397
+ return b.run { let value = try b.target(CLPlacemark.self).country; return b.encode(optional: value) { b.encode($0) } }
398
+ case "CLPlacemark.init(placemark:)":
399
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
400
+ return b.run { let value = try CLPlacemark(placemark: b.object(b[0], as: CLPlacemark.self)); return b.encode(object: value) }
401
+ case "CLPlacemark.inlandWater":
402
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
403
+ return b.run { let value = try b.target(CLPlacemark.self).inlandWater; return b.encode(optional: value) { b.encode($0) } }
404
+ case "CLPlacemark.isoCountryCode":
405
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
406
+ return b.run { let value = try b.target(CLPlacemark.self).isoCountryCode; return b.encode(optional: value) { b.encode($0) } }
407
+ case "CLPlacemark.locality":
408
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
409
+ return b.run { let value = try b.target(CLPlacemark.self).locality; return b.encode(optional: value) { b.encode($0) } }
410
+ case "CLPlacemark.location":
411
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
412
+ return b.run { let value = try b.target(CLPlacemark.self).location; return b.encode(optional: value) { b.encode(object: $0) } }
413
+ case "CLPlacemark.name":
414
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
415
+ return b.run { let value = try b.target(CLPlacemark.self).name; return b.encode(optional: value) { b.encode($0) } }
416
+ case "CLPlacemark.ocean":
417
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
418
+ return b.run { let value = try b.target(CLPlacemark.self).ocean; return b.encode(optional: value) { b.encode($0) } }
419
+ case "CLPlacemark.postalCode":
420
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
421
+ return b.run { let value = try b.target(CLPlacemark.self).postalCode; return b.encode(optional: value) { b.encode($0) } }
422
+ case "CLPlacemark.region":
423
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
424
+ return b.run { let value = try b.target(CLPlacemark.self).region; return b.encode(optional: value) { b.encode(object: $0) } }
425
+ case "CLPlacemark.subAdministrativeArea":
426
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
427
+ return b.run { let value = try b.target(CLPlacemark.self).subAdministrativeArea; return b.encode(optional: value) { b.encode($0) } }
428
+ case "CLPlacemark.subLocality":
429
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
430
+ return b.run { let value = try b.target(CLPlacemark.self).subLocality; return b.encode(optional: value) { b.encode($0) } }
431
+ case "CLPlacemark.subThoroughfare":
432
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
433
+ return b.run { let value = try b.target(CLPlacemark.self).subThoroughfare; return b.encode(optional: value) { b.encode($0) } }
434
+ case "CLPlacemark.thoroughfare":
435
+ guard #available(iOS 5.0, macOS 10.8, *) else { return b.run { throw TokamakBinding.unavailable } }
436
+ return b.run { let value = try b.target(CLPlacemark.self).thoroughfare; return b.encode(optional: value) { b.encode($0) } }
437
+ case "CLPlacemark.timeZone":
438
+ guard #available(iOS 9.0, macOS 10.11, *) else { return b.run { throw TokamakBinding.unavailable } }
439
+ return b.run { let value = try b.target(CLPlacemark.self).timeZone; return b.encode(optional: value) { b.encode($0) } }
440
+ case "CLRegion.identifier":
441
+ guard #available(iOS 4.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
442
+ return b.run { let value = try b.target(CLRegion.self).identifier; return b.encode(value) }
443
+ case "CLRegion.notifyOnEntry":
444
+ guard #available(iOS 7.0, macOS 10.10, *) else { return b.run { throw TokamakBinding.unavailable } }
445
+ return b.run { let value = try b.target(CLRegion.self).notifyOnEntry; return b.encode(value) }
446
+ case "CLRegion.notifyOnEntry=":
447
+ guard #available(iOS 7.0, macOS 10.10, *) else { return b.run { throw TokamakBinding.unavailable } }
448
+ return b.run { try b.target(CLRegion.self).notifyOnEntry = b.decode(b[0], as: Bool.self); return nil }
449
+ case "CLRegion.notifyOnExit":
450
+ guard #available(iOS 7.0, macOS 10.10, *) else { return b.run { throw TokamakBinding.unavailable } }
451
+ return b.run { let value = try b.target(CLRegion.self).notifyOnExit; return b.encode(value) }
452
+ case "CLRegion.notifyOnExit=":
453
+ guard #available(iOS 7.0, macOS 10.10, *) else { return b.run { throw TokamakBinding.unavailable } }
454
+ return b.run { try b.target(CLRegion.self).notifyOnExit = b.decode(b[0], as: Bool.self); return nil }
455
+ #if os(macOS)
456
+ case "CLRegion.center":
457
+ guard #available(macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
458
+ return b.run { let value = try b.target(CLRegion.self).center; return TokamakBindings_location.encode(value, b) }
459
+ #endif
460
+ #if os(macOS)
461
+ case "CLRegion.contains(_:)":
462
+ guard #available(macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
463
+ return b.run { let value = try b.target(CLRegion.self).contains(TokamakBindings_location.decode(b[0], b, as: CLLocationCoordinate2D.self)); return b.encode(value) }
464
+ #endif
465
+ #if os(macOS)
466
+ case "CLRegion.init(circularRegionWithCenter:radius:identifier:)":
467
+ guard #available(macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
468
+ return b.run { let value = try CLRegion(circularRegionWithCenter: TokamakBindings_location.decode(b[0], b, as: CLLocationCoordinate2D.self), radius: b.decode(b[1], as: CLLocationDistance.self), identifier: b.decode(b[2], as: String.self)); return b.encode(object: value) }
469
+ #endif
470
+ #if os(macOS)
471
+ case "CLRegion.radius":
472
+ guard #available(macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
473
+ return b.run { let value = try b.target(CLRegion.self).radius; return b.encode(value) }
474
+ #endif
475
+ #if os(iOS)
476
+ case "CLServiceSession.init(authorization:)":
477
+ guard #available(iOS 18.0, *) else { return b.run { throw TokamakBinding.unavailable } }
478
+ return b.run { let value = try CLServiceSession(authorization: TokamakBindings_location.decode(b[0], b, as: CLServiceSession.AuthorizationRequirement.self)); return b.encode(object: value) }
479
+ #endif
480
+ #if os(iOS)
481
+ case "CLServiceSession.init(authorization:fullAccuracyPurposeKey:)":
482
+ guard #available(iOS 18.0, *) else { return b.run { throw TokamakBinding.unavailable } }
483
+ return b.run { let value = try CLServiceSession(authorization: TokamakBindings_location.decode(b[0], b, as: CLServiceSession.AuthorizationRequirement.self), fullAccuracyPurposeKey: b.decode(b[1], as: String.self)); return b.encode(object: value) }
484
+ #endif
485
+ #if os(iOS)
486
+ case "CLServiceSession.invalidate()":
487
+ guard #available(iOS 18.0, *) else { return b.run { throw TokamakBinding.unavailable } }
488
+ return b.run { try b.target(CLServiceSession.self).invalidate(); return nil }
489
+ #endif
490
+ case "CLVisit.arrivalDate":
491
+ guard #available(iOS 8.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
492
+ return b.run { let value = try b.target(CLVisit.self).arrivalDate; return b.encode(value) }
493
+ case "CLVisit.coordinate":
494
+ guard #available(iOS 8.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
495
+ return b.run { let value = try b.target(CLVisit.self).coordinate; return TokamakBindings_location.encode(value, b) }
496
+ case "CLVisit.departureDate":
497
+ guard #available(iOS 8.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
498
+ return b.run { let value = try b.target(CLVisit.self).departureDate; return b.encode(value) }
499
+ case "CLVisit.horizontalAccuracy":
500
+ guard #available(iOS 8.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
501
+ return b.run { let value = try b.target(CLVisit.self).horizontalAccuracy; return b.encode(value) }
502
+ case "CLFloor.level":
503
+ guard #available(iOS 8.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
504
+ return b.run { let value = try b.target(CLFloor.self).level; return b.encode(value) }
505
+ case "CLLocation.altitude":
506
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
507
+ return b.run { let value = try b.target(CLLocation.self).altitude; return b.encode(value) }
508
+ case "CLLocation.coordinate":
509
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
510
+ return b.run { let value = try b.target(CLLocation.self).coordinate; return TokamakBindings_location.encode(value, b) }
511
+ case "CLLocation.course":
512
+ guard #available(iOS 2.2, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
513
+ return b.run { let value = try b.target(CLLocation.self).course; return b.encode(value) }
514
+ case "CLLocation.courseAccuracy":
515
+ guard #available(iOS 13.4, macOS 10.15.4, *) else { return b.run { throw TokamakBinding.unavailable } }
516
+ return b.run { let value = try b.target(CLLocation.self).courseAccuracy; return b.encode(value) }
517
+ case "CLLocation.distance(from:)":
518
+ guard #available(iOS 3.2, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
519
+ return b.run { let value = try b.target(CLLocation.self).distance(from: b.object(b[0], as: CLLocation.self)); return b.encode(value) }
520
+ case "CLLocation.ellipsoidalAltitude":
521
+ guard #available(iOS 15.0, macOS 12.0, *) else { return b.run { throw TokamakBinding.unavailable } }
522
+ return b.run { let value = try b.target(CLLocation.self).ellipsoidalAltitude; return b.encode(value) }
523
+ case "CLLocation.floor":
524
+ guard #available(iOS 8.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
525
+ return b.run { let value = try b.target(CLLocation.self).floor; return b.encode(optional: value) { b.encode(object: $0) } }
526
+ case "CLLocation.horizontalAccuracy":
527
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
528
+ return b.run { let value = try b.target(CLLocation.self).horizontalAccuracy; return b.encode(value) }
529
+ case "CLLocation.init(coordinate:altitude:horizontalAccuracy:verticalAccuracy:course:courseAccuracy:speed:speedAccuracy:timestamp:)":
530
+ guard #available(iOS 13.4, macOS 10.15.4, *) else { return b.run { throw TokamakBinding.unavailable } }
531
+ return b.run { let value = try CLLocation(coordinate: TokamakBindings_location.decode(b[0], b, as: CLLocationCoordinate2D.self), altitude: b.decode(b[1], as: CLLocationDistance.self), horizontalAccuracy: b.decode(b[2], as: CLLocationAccuracy.self), verticalAccuracy: b.decode(b[3], as: CLLocationAccuracy.self), course: b.decode(b[4], as: CLLocationDirection.self), courseAccuracy: b.decode(b[5], as: CLLocationDirectionAccuracy.self), speed: b.decode(b[6], as: CLLocationSpeed.self), speedAccuracy: b.decode(b[7], as: CLLocationSpeedAccuracy.self), timestamp: b.decode(b[8], as: Date.self)); return b.encode(object: value) }
532
+ case "CLLocation.init(coordinate:altitude:horizontalAccuracy:verticalAccuracy:course:courseAccuracy:speed:speedAccuracy:timestamp:sourceInfo:)":
533
+ guard #available(iOS 15.0, macOS 12.0, *) else { return b.run { throw TokamakBinding.unavailable } }
534
+ return b.run { let value = try CLLocation(coordinate: TokamakBindings_location.decode(b[0], b, as: CLLocationCoordinate2D.self), altitude: b.decode(b[1], as: CLLocationDistance.self), horizontalAccuracy: b.decode(b[2], as: CLLocationAccuracy.self), verticalAccuracy: b.decode(b[3], as: CLLocationAccuracy.self), course: b.decode(b[4], as: CLLocationDirection.self), courseAccuracy: b.decode(b[5], as: CLLocationDirectionAccuracy.self), speed: b.decode(b[6], as: CLLocationSpeed.self), speedAccuracy: b.decode(b[7], as: CLLocationSpeedAccuracy.self), timestamp: b.decode(b[8], as: Date.self), sourceInfo: b.object(b[9], as: CLLocationSourceInformation.self)); return b.encode(object: value) }
535
+ case "CLLocation.init(coordinate:altitude:horizontalAccuracy:verticalAccuracy:course:speed:timestamp:)":
536
+ guard #available(iOS 4.2, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
537
+ return b.run { let value = try CLLocation(coordinate: TokamakBindings_location.decode(b[0], b, as: CLLocationCoordinate2D.self), altitude: b.decode(b[1], as: CLLocationDistance.self), horizontalAccuracy: b.decode(b[2], as: CLLocationAccuracy.self), verticalAccuracy: b.decode(b[3], as: CLLocationAccuracy.self), course: b.decode(b[4], as: CLLocationDirection.self), speed: b.decode(b[5], as: CLLocationSpeed.self), timestamp: b.decode(b[6], as: Date.self)); return b.encode(object: value) }
538
+ case "CLLocation.init(coordinate:altitude:horizontalAccuracy:verticalAccuracy:timestamp:)":
539
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
540
+ return b.run { let value = try CLLocation(coordinate: TokamakBindings_location.decode(b[0], b, as: CLLocationCoordinate2D.self), altitude: b.decode(b[1], as: CLLocationDistance.self), horizontalAccuracy: b.decode(b[2], as: CLLocationAccuracy.self), verticalAccuracy: b.decode(b[3], as: CLLocationAccuracy.self), timestamp: b.decode(b[4], as: Date.self)); return b.encode(object: value) }
541
+ case "CLLocation.init(latitude:longitude:)":
542
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
543
+ return b.run { let value = try CLLocation(latitude: b.decode(b[0], as: CLLocationDegrees.self), longitude: b.decode(b[1], as: CLLocationDegrees.self)); return b.encode(object: value) }
544
+ case "CLLocation.sourceInformation":
545
+ guard #available(iOS 15.0, macOS 12.0, *) else { return b.run { throw TokamakBinding.unavailable } }
546
+ return b.run { let value = try b.target(CLLocation.self).sourceInformation; return b.encode(optional: value) { b.encode(object: $0) } }
547
+ case "CLLocation.speed":
548
+ guard #available(iOS 2.2, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
549
+ return b.run { let value = try b.target(CLLocation.self).speed; return b.encode(value) }
550
+ case "CLLocation.speedAccuracy":
551
+ guard #available(iOS 10.0, macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
552
+ return b.run { let value = try b.target(CLLocation.self).speedAccuracy; return b.encode(value) }
553
+ case "CLLocation.timestamp":
554
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
555
+ return b.run { let value = try b.target(CLLocation.self).timestamp; return b.encode(value) }
556
+ case "CLLocation.verticalAccuracy":
557
+ guard #available(iOS 2.0, macOS 10.6, *) else { return b.run { throw TokamakBinding.unavailable } }
558
+ return b.run { let value = try b.target(CLLocation.self).verticalAccuracy; return b.encode(value) }
559
+ #if os(macOS)
560
+ case "CLLocation.getDistanceFrom(_:)":
561
+ guard #available(macOS 10.15, *) else { return b.run { throw TokamakBinding.unavailable } }
562
+ return b.run { let value = try b.target(CLLocation.self).getDistanceFrom(b.object(b[0], as: CLLocation.self)); return b.encode(value) }
563
+ #endif
564
+ case "CLLocationSourceInformation.init(softwareSimulationState:andExternalAccessoryState:)":
565
+ guard #available(iOS 15.0, macOS 12.0, *) else { return b.run { throw TokamakBinding.unavailable } }
566
+ return b.run { let value = try CLLocationSourceInformation(softwareSimulationState: b.decode(b[0], as: Bool.self), andExternalAccessoryState: b.decode(b[1], as: Bool.self)); return b.encode(object: value) }
567
+ case "CLLocationSourceInformation.isProducedByAccessory":
568
+ guard #available(iOS 15.0, macOS 12.0, *) else { return b.run { throw TokamakBinding.unavailable } }
569
+ return b.run { let value = try b.target(CLLocationSourceInformation.self).isProducedByAccessory; return b.encode(value) }
570
+ case "CLLocationSourceInformation.isSimulatedBySoftware":
571
+ guard #available(iOS 15.0, macOS 12.0, *) else { return b.run { throw TokamakBinding.unavailable } }
572
+ return b.run { let value = try b.target(CLLocationSourceInformation.self).isSimulatedBySoftware; return b.encode(value) }
573
+ #if os(iOS)
574
+ case "CLLocationPushServiceErrorDomain":
575
+ guard #available(iOS 15.0, *) else { return b.run { throw TokamakBinding.unavailable } }
576
+ return b.run { let value = CLLocationPushServiceErrorDomain; return b.encode(value) }
577
+ #endif
578
+ case "CL_TARGET_SUPPORTS_CONDITIONS":
579
+ return b.run { let value = CL_TARGET_SUPPORTS_CONDITIONS; return b.encode(value) }
580
+ case "kCLErrorDomain":
581
+ return b.run { let value = kCLErrorDomain; return b.encode(value) }
582
+ case "kCLErrorUserInfoAlternateRegionKey":
583
+ guard #available(iOS 5.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
584
+ return b.run { let value = kCLErrorUserInfoAlternateRegionKey; return b.encode(value) }
585
+ case "kCLHeadingFilterNone":
586
+ return b.run { let value = kCLHeadingFilterNone; return b.encode(value) }
587
+ case "CLLocationCoordinate2DIsValid(_:)":
588
+ guard #available(iOS 4.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
589
+ return b.run { let value = try CLLocationCoordinate2DIsValid(TokamakBindings_location.decode(b[0], b, as: CLLocationCoordinate2D.self)); return b.encode(value) }
590
+ case "CLLocationCoordinate2DMake(_:_:)":
591
+ guard #available(iOS 4.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
592
+ return b.run { let value = try CLLocationCoordinate2DMake(b.decode(b[0], as: CLLocationDegrees.self), b.decode(b[1], as: CLLocationDegrees.self)); return TokamakBindings_location.encode(value, b) }
593
+ case "CLLocationDistanceMax":
594
+ guard #available(iOS 6.0, macOS 10.14, *) else { return b.run { throw TokamakBinding.unavailable } }
595
+ return b.run { let value = CLLocationDistanceMax; return b.encode(value) }
596
+ case "CLTimeIntervalMax":
597
+ guard #available(iOS 6.0, macOS 10.14, *) else { return b.run { throw TokamakBinding.unavailable } }
598
+ return b.run { let value = CLTimeIntervalMax; return b.encode(value) }
599
+ case "kCLDistanceFilterNone":
600
+ return b.run { let value = kCLDistanceFilterNone; return b.encode(value) }
601
+ case "kCLLocationAccuracyBest":
602
+ return b.run { let value = kCLLocationAccuracyBest; return b.encode(value) }
603
+ case "kCLLocationAccuracyBestForNavigation":
604
+ guard #available(iOS 4.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
605
+ return b.run { let value = kCLLocationAccuracyBestForNavigation; return b.encode(value) }
606
+ case "kCLLocationAccuracyHundredMeters":
607
+ return b.run { let value = kCLLocationAccuracyHundredMeters; return b.encode(value) }
608
+ case "kCLLocationAccuracyKilometer":
609
+ return b.run { let value = kCLLocationAccuracyKilometer; return b.encode(value) }
610
+ case "kCLLocationAccuracyNearestTenMeters":
611
+ return b.run { let value = kCLLocationAccuracyNearestTenMeters; return b.encode(value) }
612
+ case "kCLLocationAccuracyReduced":
613
+ guard #available(iOS 14.0, macOS 11.0, *) else { return b.run { throw TokamakBinding.unavailable } }
614
+ return b.run { let value = kCLLocationAccuracyReduced; return b.encode(value) }
615
+ case "kCLLocationAccuracyThreeKilometers":
616
+ return b.run { let value = kCLLocationAccuracyThreeKilometers; return b.encode(value) }
617
+ case "kCLLocationCoordinate2DInvalid":
618
+ guard #available(iOS 4.0, macOS 10.7, *) else { return b.run { throw TokamakBinding.unavailable } }
619
+ return b.run { let value = kCLLocationCoordinate2DInvalid; return TokamakBindings_location.encode(value, b) }
620
+ default:
621
+ return b.unsupported(method)
622
+ }
623
+ }
624
+
625
+ func subscribeBytes(method: String, payload: Data, reply: @escaping TokamakPluginBytesReply)
626
+ throws(TokamakPluginError) -> () -> Void
627
+ {
628
+ let b = TokamakBinding(payload, resources: host.resources, reply: reply)
629
+ switch method {
630
+ case "CLLocationManagerDelegate":
631
+ return b.implement(CLLocationManagerDelegateImplementation.self)
632
+ #if os(iOS)
633
+ case "CLBackgroundActivitySession.diagnostics":
634
+ guard #available(iOS 18.0, *) else { throw TokamakBinding.unavailable }
635
+ return b.stream({ try b.target(CLBackgroundActivitySession.self).diagnostics }, encode: { TokamakBindings_location.encode($0, b) })
636
+ #endif
637
+ case "CLLocationUpdate.liveUpdates(_:)":
638
+ guard #available(iOS 17.0, macOS 14.0, *) else { throw TokamakBinding.unavailable }
639
+ return b.stream({ try CLLocationUpdate.liveUpdates(TokamakBindings_location.decode(b[0], b, as: CLLocationUpdate.LiveConfiguration.self)) }, encode: { TokamakBindings_location.encode($0, b) })
640
+ #if os(iOS)
641
+ case "CLServiceSession.diagnostics":
642
+ guard #available(iOS 18.0, *) else { throw TokamakBinding.unavailable }
643
+ return b.stream({ try b.target(CLServiceSession.self).diagnostics }, encode: { TokamakBindings_location.encode($0, b) })
644
+ #endif
645
+ default:
646
+ throw .notSupported("\(method) is not supported")
647
+ }
648
+ }
649
+
650
+ private static func encode(_ value: CLAccuracyAuthorization, _ b: TokamakBinding) -> Any {
651
+ if value == .fullAccuracy { return "fullAccuracy" }
652
+ if value == .reducedAccuracy { return "reducedAccuracy" }
653
+ return "\(value)"
654
+ }
655
+
656
+ private static func decode(_ value: Any, _ b: TokamakBinding, as type: CLAccuracyAuthorization.Type) throws -> CLAccuracyAuthorization {
657
+ switch try b.decode(value, as: String.self) {
658
+ case "fullAccuracy":
659
+ return .fullAccuracy
660
+ case "reducedAccuracy":
661
+ return .reducedAccuracy
662
+ default: throw b.mismatch(value, type)
663
+ }
664
+ }
665
+
666
+ private static func encode(_ value: CLActivityType, _ b: TokamakBinding) -> Any {
667
+ if #available(iOS 12.0, macOS 10.14, *), value == .airborne { return "airborne" }
668
+ if value == .automotiveNavigation { return "automotiveNavigation" }
669
+ if value == .fitness { return "fitness" }
670
+ if value == .other { return "other" }
671
+ if value == .otherNavigation { return "otherNavigation" }
672
+ return "\(value)"
673
+ }
674
+
675
+ private static func decode(_ value: Any, _ b: TokamakBinding, as type: CLActivityType.Type) throws -> CLActivityType {
676
+ switch try b.decode(value, as: String.self) {
677
+ case "airborne":
678
+ guard #available(iOS 12.0, macOS 10.14, *) else { throw TokamakBinding.unavailable }
679
+ return .airborne
680
+ case "automotiveNavigation":
681
+ return .automotiveNavigation
682
+ case "fitness":
683
+ return .fitness
684
+ case "other":
685
+ return .other
686
+ case "otherNavigation":
687
+ return .otherNavigation
688
+ default: throw b.mismatch(value, type)
689
+ }
690
+ }
691
+
692
+ private static func encode(_ value: CLAuthorizationStatus, _ b: TokamakBinding) -> Any {
693
+ if #available(iOS 8.0, macOS 10.12, *), value == .authorizedAlways { return "authorizedAlways" }
694
+ #if os(iOS)
695
+ if #available(iOS 8.0, *), value == .authorizedWhenInUse { return "authorizedWhenInUse" }
696
+ #endif
697
+ if value == .denied { return "denied" }
698
+ if value == .notDetermined { return "notDetermined" }
699
+ if value == .restricted { return "restricted" }
700
+ return "\(value)"
701
+ }
702
+
703
+ private static func decode(_ value: Any, _ b: TokamakBinding, as type: CLAuthorizationStatus.Type) throws -> CLAuthorizationStatus {
704
+ switch try b.decode(value, as: String.self) {
705
+ case "authorizedAlways":
706
+ guard #available(iOS 8.0, macOS 10.12, *) else { throw TokamakBinding.unavailable }
707
+ return .authorizedAlways
708
+ #if os(iOS)
709
+ case "authorizedWhenInUse":
710
+ guard #available(iOS 8.0, *) else { throw TokamakBinding.unavailable }
711
+ return .authorizedWhenInUse
712
+ #endif
713
+ case "denied":
714
+ return .denied
715
+ case "notDetermined":
716
+ return .notDetermined
717
+ case "restricted":
718
+ return .restricted
719
+ default: throw b.mismatch(value, type)
720
+ }
721
+ }
722
+ #if os(iOS)
723
+
724
+ @available(iOS 18.0, *)
725
+ private static func encode(_ value: CLBackgroundActivitySession.Diagnostic, _ b: TokamakBinding) -> Any {
726
+ var fields: [String: Any] = [:]
727
+ fields["authorizationDenied"] = b.encode(value.authorizationDenied)
728
+ fields["authorizationDeniedGlobally"] = b.encode(value.authorizationDeniedGlobally)
729
+ fields["authorizationRequestInProgress"] = b.encode(value.authorizationRequestInProgress)
730
+ fields["authorizationRestricted"] = b.encode(value.authorizationRestricted)
731
+ fields["insufficientlyInUse"] = b.encode(value.insufficientlyInUse)
732
+ fields["serviceSessionRequired"] = b.encode(value.serviceSessionRequired)
733
+ return fields
734
+ }
735
+ #endif
736
+
737
+ private static func encode(_ value: CLDeviceOrientation, _ b: TokamakBinding) -> Any {
738
+ if value == .faceDown { return "faceDown" }
739
+ if value == .faceUp { return "faceUp" }
740
+ if value == .landscapeLeft { return "landscapeLeft" }
741
+ if value == .landscapeRight { return "landscapeRight" }
742
+ if value == .portrait { return "portrait" }
743
+ if value == .portraitUpsideDown { return "portraitUpsideDown" }
744
+ if value == .unknown { return "unknown" }
745
+ return "\(value)"
746
+ }
747
+
748
+ private static func decode(_ value: Any, _ b: TokamakBinding, as type: CLDeviceOrientation.Type) throws -> CLDeviceOrientation {
749
+ switch try b.decode(value, as: String.self) {
750
+ case "faceDown":
751
+ return .faceDown
752
+ case "faceUp":
753
+ return .faceUp
754
+ case "landscapeLeft":
755
+ return .landscapeLeft
756
+ case "landscapeRight":
757
+ return .landscapeRight
758
+ case "portrait":
759
+ return .portrait
760
+ case "portraitUpsideDown":
761
+ return .portraitUpsideDown
762
+ case "unknown":
763
+ return .unknown
764
+ default: throw b.mismatch(value, type)
765
+ }
766
+ }
767
+
768
+ private final class CLLocationManagerDelegateImplementation: TokamakBindingImplementation, CLLocationManagerDelegate {
769
+ override class var selectors: [Selector: String] {
770
+ [
771
+ NSSelectorFromString("locationManager:didChangeAuthorizationStatus:"): "locationManagerDidChangeAuthorizationStatus",
772
+ NSSelectorFromString("locationManager:didDetermineState:forRegion:"): "locationManagerDidDetermineStateForRegion",
773
+ NSSelectorFromString("locationManager:didEnterRegion:"): "locationManagerDidEnterRegion",
774
+ NSSelectorFromString("locationManager:didExitRegion:"): "locationManagerDidExitRegion",
775
+ NSSelectorFromString("locationManager:didFailRangingBeaconsForConstraint:error:"): "locationManagerDidFailRangingBeaconsForConstraintError",
776
+ NSSelectorFromString("locationManager:didFailWithError:"): "locationManagerDidFailWithError",
777
+ NSSelectorFromString("locationManager:didFinishDeferredUpdatesWithError:"): "locationManagerDidFinishDeferredUpdatesWithError",
778
+ NSSelectorFromString("locationManager:didRangeBeacons:satisfyingConstraint:"): "locationManagerDidRangeBeaconsSatisfyingConstraint",
779
+ NSSelectorFromString("locationManager:didRangeBeacons:inRegion:"): "locationManagerDidRangeBeaconsInRegion",
780
+ NSSelectorFromString("locationManager:didStartMonitoringForRegion:"): "locationManagerDidStartMonitoringForRegion",
781
+ NSSelectorFromString("locationManager:didUpdateHeading:"): "locationManagerDidUpdateHeading",
782
+ NSSelectorFromString("locationManager:didUpdateLocations:"): "locationManagerDidUpdateLocations",
783
+ NSSelectorFromString("locationManager:didVisit:"): "locationManagerDidVisit",
784
+ NSSelectorFromString("locationManager:monitoringDidFailForRegion:withError:"): "locationManagerMonitoringDidFailForRegionWithError",
785
+ NSSelectorFromString("locationManager:rangingBeaconsDidFailForRegion:withError:"): "locationManagerRangingBeaconsDidFailForRegionWithError",
786
+ NSSelectorFromString("locationManagerDidChangeAuthorization:"): "locationManagerDidChangeAuthorization",
787
+ NSSelectorFromString("locationManagerDidPauseLocationUpdates:"): "locationManagerDidPauseLocationUpdates",
788
+ NSSelectorFromString("locationManagerDidResumeLocationUpdates:"): "locationManagerDidResumeLocationUpdates",
789
+ NSSelectorFromString("locationManager:didUpdateToLocation:fromLocation:"): "locationManagerDidUpdateToLocationFromLocation",
790
+ ]
791
+ }
792
+
793
+ @available(iOS 4.2, macOS 10.7, *)
794
+ func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
795
+ call("locationManagerDidChangeAuthorizationStatus") { b in [b.encode(object: manager), TokamakBindings_location.encode(status, b)] }
796
+ }
797
+
798
+ @available(iOS 7.0, macOS 10.10, *)
799
+ func locationManager(_ manager: CLLocationManager, didDetermineState state: CLRegionState, for region: CLRegion) {
800
+ call("locationManagerDidDetermineStateForRegion") { b in [b.encode(object: manager), TokamakBindings_location.encode(state, b), b.encode(object: region)] }
801
+ }
802
+
803
+ @available(iOS 4.0, macOS 10.8, *)
804
+ func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {
805
+ call("locationManagerDidEnterRegion") { b in [b.encode(object: manager), b.encode(object: region)] }
806
+ }
807
+
808
+ @available(iOS 4.0, macOS 10.8, *)
809
+ func locationManager(_ manager: CLLocationManager, didExitRegion region: CLRegion) {
810
+ call("locationManagerDidExitRegion") { b in [b.encode(object: manager), b.encode(object: region)] }
811
+ }
812
+
813
+ @available(iOS 13.0, macOS 10.15, *)
814
+ func locationManager(_ manager: CLLocationManager, didFailRangingFor beaconConstraint: CLBeaconIdentityConstraint, error: any Error) {
815
+ call("locationManagerDidFailRangingBeaconsForConstraintError") { b in [b.encode(object: manager), b.encode(object: beaconConstraint), b.encode(error)] }
816
+ }
817
+
818
+ @available(iOS 2.0, macOS 10.6, *)
819
+ func locationManager(_ manager: CLLocationManager, didFailWithError error: any Error) {
820
+ call("locationManagerDidFailWithError") { b in [b.encode(object: manager), b.encode(error)] }
821
+ }
822
+
823
+ @available(iOS 6.0, macOS 10.9, *)
824
+ func locationManager(_ manager: CLLocationManager, didFinishDeferredUpdatesWithError error: (any Error)?) {
825
+ call("locationManagerDidFinishDeferredUpdatesWithError") { b in [b.encode(object: manager), b.encode(optional: error) { b.encode($0) }] }
826
+ }
827
+
828
+ @available(iOS 13.0, macOS 10.15, *)
829
+ func locationManager(_ manager: CLLocationManager, didRange beacons: [CLBeacon], satisfying beaconConstraint: CLBeaconIdentityConstraint) {
830
+ call("locationManagerDidRangeBeaconsSatisfyingConstraint") { b in [b.encode(object: manager), b.encode(array: beacons) { b.encode(object: $0) }, b.encode(object: beaconConstraint)] }
831
+ }
832
+
833
+ @available(iOS 7.0, macOS 10.15, *)
834
+ func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {
835
+ call("locationManagerDidRangeBeaconsInRegion") { b in [b.encode(object: manager), b.encode(array: beacons) { b.encode(object: $0) }, b.encode(object: region)] }
836
+ }
837
+
838
+ @available(iOS 5.0, macOS 10.8, *)
839
+ func locationManager(_ manager: CLLocationManager, didStartMonitoringFor region: CLRegion) {
840
+ call("locationManagerDidStartMonitoringForRegion") { b in [b.encode(object: manager), b.encode(object: region)] }
841
+ }
842
+
843
+ @available(iOS 3.0, macOS 10.15, *)
844
+ func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading) {
845
+ call("locationManagerDidUpdateHeading") { b in [b.encode(object: manager), b.encode(object: newHeading)] }
846
+ }
847
+
848
+ @available(iOS 6.0, macOS 10.9, *)
849
+ func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
850
+ call("locationManagerDidUpdateLocations") { b in [b.encode(object: manager), b.encode(array: locations) { b.encode(object: $0) }] }
851
+ }
852
+
853
+ @available(iOS 8.0, macOS 10.15, *)
854
+ func locationManager(_ manager: CLLocationManager, didVisit visit: CLVisit) {
855
+ call("locationManagerDidVisit") { b in [b.encode(object: manager), b.encode(object: visit)] }
856
+ }
857
+
858
+ @available(iOS 4.0, macOS 10.8, *)
859
+ func locationManager(_ manager: CLLocationManager, monitoringDidFailFor region: CLRegion?, withError error: any Error) {
860
+ call("locationManagerMonitoringDidFailForRegionWithError") { b in [b.encode(object: manager), b.encode(optional: region) { b.encode(object: $0) }, b.encode(error)] }
861
+ }
862
+
863
+ @available(iOS 7.0, macOS 10.15, *)
864
+ func locationManager(_ manager: CLLocationManager, rangingBeaconsDidFailFor region: CLBeaconRegion, withError error: any Error) {
865
+ call("locationManagerRangingBeaconsDidFailForRegionWithError") { b in [b.encode(object: manager), b.encode(object: region), b.encode(error)] }
866
+ }
867
+
868
+ @available(iOS 14.0, macOS 11.0, *)
869
+ func locationManagerDidChangeAuthorization(_ manager: CLLocationManager) {
870
+ call("locationManagerDidChangeAuthorization") { b in [b.encode(object: manager)] }
871
+ }
872
+
873
+ @available(iOS 6.0, macOS 10.15, *)
874
+ func locationManagerDidPauseLocationUpdates(_ manager: CLLocationManager) {
875
+ call("locationManagerDidPauseLocationUpdates") { b in [b.encode(object: manager)] }
876
+ }
877
+
878
+ @available(iOS 6.0, macOS 10.15, *)
879
+ func locationManagerDidResumeLocationUpdates(_ manager: CLLocationManager) {
880
+ call("locationManagerDidResumeLocationUpdates") { b in [b.encode(object: manager)] }
881
+ }
882
+ #if os(macOS)
883
+
884
+ @available(macOS 10.6, *)
885
+ func locationManager(_ manager: CLLocationManager, didUpdateTo newLocation: CLLocation, from oldLocation: CLLocation) {
886
+ call("locationManagerDidUpdateToLocationFromLocation") { b in [b.encode(object: manager), b.encode(object: newLocation), b.encode(object: oldLocation)] }
887
+ }
888
+ #endif
889
+ }
890
+
891
+ @available(iOS 17.0, macOS 14.0, *)
892
+ private static func encode(_ value: CLLocationUpdate, _ b: TokamakBinding) -> Any {
893
+ var fields: [String: Any] = [:]
894
+ if #available(iOS 18.0, macOS 15.0, *) { fields["accuracyLimited"] = b.encode(value.accuracyLimited) }
895
+ if #available(iOS 18.0, macOS 15.0, *) { fields["authorizationDenied"] = b.encode(value.authorizationDenied) }
896
+ if #available(iOS 18.0, macOS 15.0, *) { fields["authorizationDeniedGlobally"] = b.encode(value.authorizationDeniedGlobally) }
897
+ if #available(iOS 18.0, macOS 15.0, *) { fields["authorizationRequestInProgress"] = b.encode(value.authorizationRequestInProgress) }
898
+ if #available(iOS 18.0, macOS 15.0, *) { fields["authorizationRestricted"] = b.encode(value.authorizationRestricted) }
899
+ if #available(iOS 18.0, macOS 15.0, *) { fields["insufficientlyInUse"] = b.encode(value.insufficientlyInUse) }
900
+ fields["isStationary"] = b.encode(value.isStationary)
901
+ fields["location"] = b.encode(optional: value.location) { b.encode(object: $0) }
902
+ if #available(iOS 18.0, macOS 15.0, *) { fields["locationUnavailable"] = b.encode(value.locationUnavailable) }
903
+ if #available(iOS 18.0, macOS 15.0, *) { fields["serviceSessionRequired"] = b.encode(value.serviceSessionRequired) }
904
+ if #available(iOS 18.0, macOS 15.0, *) { fields["stationary"] = b.encode(value.stationary) }
905
+ return fields
906
+ }
907
+
908
+ @available(iOS 17.0, macOS 14.0, *)
909
+ private static func encode(_ value: CLLocationUpdate.LiveConfiguration, _ b: TokamakBinding) -> Any {
910
+ if value == .airborne { return "airborne" }
911
+ if value == .automotiveNavigation { return "automotiveNavigation" }
912
+ if value == .default { return "default" }
913
+ if value == .fitness { return "fitness" }
914
+ if value == .otherNavigation { return "otherNavigation" }
915
+ return "\(value)"
916
+ }
917
+
918
+ @available(iOS 17.0, macOS 14.0, *)
919
+ private static func decode(_ value: Any, _ b: TokamakBinding, as type: CLLocationUpdate.LiveConfiguration.Type) throws -> CLLocationUpdate.LiveConfiguration {
920
+ switch try b.decode(value, as: String.self) {
921
+ case "airborne":
922
+ return .airborne
923
+ case "automotiveNavigation":
924
+ return .automotiveNavigation
925
+ case "default":
926
+ return .default
927
+ case "fitness":
928
+ return .fitness
929
+ case "otherNavigation":
930
+ return .otherNavigation
931
+ default: throw b.mismatch(value, type)
932
+ }
933
+ }
934
+
935
+ @available(iOS 17.0, macOS 14.0, *)
936
+ private static func encode(_ value: CLMonitor.BeaconIdentityCondition, _ b: TokamakBinding) -> Any {
937
+ var fields: [String: Any] = [:]
938
+ fields["major"] = b.encode(optional: value.major) { b.encode($0) }
939
+ fields["minor"] = b.encode(optional: value.minor) { b.encode($0) }
940
+ fields["uuid"] = b.encode(value.uuid)
941
+ return fields
942
+ }
943
+
944
+ @available(iOS 17.0, macOS 14.0, *)
945
+ private static func encode(_ value: CLMonitor.CircularGeographicCondition, _ b: TokamakBinding) -> Any {
946
+ var fields: [String: Any] = [:]
947
+ fields["center"] = TokamakBindings_location.encode(value.center, b)
948
+ fields["radius"] = b.encode(value.radius)
949
+ return fields
950
+ }
951
+
952
+ @available(iOS 17.0, macOS 14.0, *)
953
+ private static func decode(_ value: Any, _ b: TokamakBinding, as type: CLMonitor.CircularGeographicCondition.Type) throws -> CLMonitor.CircularGeographicCondition {
954
+ try CLMonitor.CircularGeographicCondition(
955
+ center: TokamakBindings_location.decode(b.field(value, "center"), b, as: CLLocationCoordinate2D.self),
956
+ radius: b.decode(b.field(value, "radius"), as: CLLocationDistance.self)
957
+ )
958
+ }
959
+
960
+ @available(iOS 7.0, macOS 10.15, *)
961
+ private static func encode(_ value: CLProximity, _ b: TokamakBinding) -> Any {
962
+ if value == .far { return "far" }
963
+ if value == .immediate { return "immediate" }
964
+ if value == .near { return "near" }
965
+ if value == .unknown { return "unknown" }
966
+ return "\(value)"
967
+ }
968
+
969
+ @available(iOS 7.0, macOS 10.15, *)
970
+ private static func decode(_ value: Any, _ b: TokamakBinding, as type: CLProximity.Type) throws -> CLProximity {
971
+ switch try b.decode(value, as: String.self) {
972
+ case "far":
973
+ return .far
974
+ case "immediate":
975
+ return .immediate
976
+ case "near":
977
+ return .near
978
+ case "unknown":
979
+ return .unknown
980
+ default: throw b.mismatch(value, type)
981
+ }
982
+ }
983
+
984
+ @available(iOS 7.0, macOS 10.10, *)
985
+ private static func encode(_ value: CLRegionState, _ b: TokamakBinding) -> Any {
986
+ if value == .inside { return "inside" }
987
+ if value == .outside { return "outside" }
988
+ if value == .unknown { return "unknown" }
989
+ return "\(value)"
990
+ }
991
+
992
+ @available(iOS 7.0, macOS 10.10, *)
993
+ private static func decode(_ value: Any, _ b: TokamakBinding, as type: CLRegionState.Type) throws -> CLRegionState {
994
+ switch try b.decode(value, as: String.self) {
995
+ case "inside":
996
+ return .inside
997
+ case "outside":
998
+ return .outside
999
+ case "unknown":
1000
+ return .unknown
1001
+ default: throw b.mismatch(value, type)
1002
+ }
1003
+ }
1004
+ #if os(iOS)
1005
+
1006
+ @available(iOS 18.0, *)
1007
+ private static func encode(_ value: CLServiceSession.AuthorizationRequirement, _ b: TokamakBinding) -> Any {
1008
+ if value == .always { return "always" }
1009
+ if value == .none { return "none" }
1010
+ if value == .whenInUse { return "whenInUse" }
1011
+ return "\(value)"
1012
+ }
1013
+
1014
+ @available(iOS 18.0, *)
1015
+ private static func decode(_ value: Any, _ b: TokamakBinding, as type: CLServiceSession.AuthorizationRequirement.Type) throws -> CLServiceSession.AuthorizationRequirement {
1016
+ switch try b.decode(value, as: String.self) {
1017
+ case "always":
1018
+ return .always
1019
+ case "none":
1020
+ return .none
1021
+ case "whenInUse":
1022
+ return .whenInUse
1023
+ default: throw b.mismatch(value, type)
1024
+ }
1025
+ }
1026
+ #endif
1027
+ #if os(iOS)
1028
+
1029
+ @available(iOS 18.0, *)
1030
+ private static func encode(_ value: CLServiceSession.Diagnostic, _ b: TokamakBinding) -> Any {
1031
+ var fields: [String: Any] = [:]
1032
+ fields["alwaysAuthorizationDenied"] = b.encode(value.alwaysAuthorizationDenied)
1033
+ fields["authorizationDenied"] = b.encode(value.authorizationDenied)
1034
+ fields["authorizationDeniedGlobally"] = b.encode(value.authorizationDeniedGlobally)
1035
+ fields["authorizationRequestInProgress"] = b.encode(value.authorizationRequestInProgress)
1036
+ fields["authorizationRestricted"] = b.encode(value.authorizationRestricted)
1037
+ fields["fullAccuracyDenied"] = b.encode(value.fullAccuracyDenied)
1038
+ fields["insufficientlyInUse"] = b.encode(value.insufficientlyInUse)
1039
+ fields["serviceSessionRequired"] = b.encode(value.serviceSessionRequired)
1040
+ return fields
1041
+ }
1042
+ #endif
1043
+
1044
+ private static func encode(_ value: CLLocationCoordinate2D, _ b: TokamakBinding) -> Any {
1045
+ var fields: [String: Any] = [:]
1046
+ fields["latitude"] = b.encode(value.latitude)
1047
+ fields["longitude"] = b.encode(value.longitude)
1048
+ return fields
1049
+ }
1050
+
1051
+ private static func decode(_ value: Any, _ b: TokamakBinding, as type: CLLocationCoordinate2D.Type) throws -> CLLocationCoordinate2D {
1052
+ try CLLocationCoordinate2D(
1053
+ latitude: b.decode(b.field(value, "latitude"), as: CLLocationDegrees.self),
1054
+ longitude: b.decode(b.field(value, "longitude"), as: CLLocationDegrees.self)
1055
+ )
1056
+ }
1057
+ }