@tokamakdev/plugin-location 0.1.0-beta.106 → 0.1.0-beta.112
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.
- package/README.md +32 -14
- package/android/Bindings.kt +997 -0
- package/android/LocationPlugin.kt +3 -124
- package/android/bindings.ts +4150 -0
- package/apple/Bindings.swift +1057 -0
- package/apple/LocationPlugin.swift +28 -167
- package/apple/LocationRegions.swift +3 -1
- package/apple/bindings.ts +1314 -0
- package/events/index.ts +5 -5
- package/package.json +5 -3
- package/src/android.ts +138 -0
- package/src/apple.ts +117 -0
- package/src/errors.ts +34 -0
- package/src/index.ts +89 -64
- package/src/types.ts +12 -0
- package/tokamak-plugin.json +69 -2
- package/web/client.ts +11 -0
- package/src/checks.ts +0 -65
- package/src/options.ts +0 -54
|
@@ -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
|
+
}
|