1use crate::common::*;
4use crate::CoreLocation::*;
5use crate::Foundation::*;
6use crate::HealthKit::*;
7use crate::UniformTypeIdentifiers::*;
8
9ns_enum!(
10 #[underlying(NSUInteger)]
11 pub enum HKWorkoutActivityType {
12 HKWorkoutActivityTypeAmericanFootball = 1,
13 HKWorkoutActivityTypeArchery = 2,
14 HKWorkoutActivityTypeAustralianFootball = 3,
15 HKWorkoutActivityTypeBadminton = 4,
16 HKWorkoutActivityTypeBaseball = 5,
17 HKWorkoutActivityTypeBasketball = 6,
18 HKWorkoutActivityTypeBowling = 7,
19 HKWorkoutActivityTypeBoxing = 8,
20 HKWorkoutActivityTypeClimbing = 9,
21 HKWorkoutActivityTypeCricket = 10,
22 HKWorkoutActivityTypeCrossTraining = 11,
23 HKWorkoutActivityTypeCurling = 12,
24 HKWorkoutActivityTypeCycling = 13,
25 #[deprecated = "Use HKWorkoutActivityTypeSocialDance or HKWorkoutActivityTypeCardioDance"]
26 HKWorkoutActivityTypeDance = 14,
27 #[deprecated = "Use HKWorkoutActivityTypeSocialDance, HKWorkoutActivityTypeCardioDance, HKWorkoutActivityTypeBarre or HKWorkoutActivityTypePilates"]
28 HKWorkoutActivityTypeDanceInspiredTraining = 15,
29 HKWorkoutActivityTypeElliptical = 16,
30 HKWorkoutActivityTypeEquestrianSports = 17,
31 HKWorkoutActivityTypeFencing = 18,
32 HKWorkoutActivityTypeFishing = 19,
33 HKWorkoutActivityTypeFunctionalStrengthTraining = 20,
34 HKWorkoutActivityTypeGolf = 21,
35 HKWorkoutActivityTypeGymnastics = 22,
36 HKWorkoutActivityTypeHandball = 23,
37 HKWorkoutActivityTypeHiking = 24,
38 HKWorkoutActivityTypeHockey = 25,
39 HKWorkoutActivityTypeHunting = 26,
40 HKWorkoutActivityTypeLacrosse = 27,
41 HKWorkoutActivityTypeMartialArts = 28,
42 HKWorkoutActivityTypeMindAndBody = 29,
43 #[deprecated = "Use HKWorkoutActivityTypeMixedCardio or HKWorkoutActivityTypeHighIntensityIntervalTraining"]
44 HKWorkoutActivityTypeMixedMetabolicCardioTraining = 30,
45 HKWorkoutActivityTypePaddleSports = 31,
46 HKWorkoutActivityTypePlay = 32,
47 HKWorkoutActivityTypePreparationAndRecovery = 33,
48 HKWorkoutActivityTypeRacquetball = 34,
49 HKWorkoutActivityTypeRowing = 35,
50 HKWorkoutActivityTypeRugby = 36,
51 HKWorkoutActivityTypeRunning = 37,
52 HKWorkoutActivityTypeSailing = 38,
53 HKWorkoutActivityTypeSkatingSports = 39,
54 HKWorkoutActivityTypeSnowSports = 40,
55 HKWorkoutActivityTypeSoccer = 41,
56 HKWorkoutActivityTypeSoftball = 42,
57 HKWorkoutActivityTypeSquash = 43,
58 HKWorkoutActivityTypeStairClimbing = 44,
59 HKWorkoutActivityTypeSurfingSports = 45,
60 HKWorkoutActivityTypeSwimming = 46,
61 HKWorkoutActivityTypeTableTennis = 47,
62 HKWorkoutActivityTypeTennis = 48,
63 HKWorkoutActivityTypeTrackAndField = 49,
64 HKWorkoutActivityTypeTraditionalStrengthTraining = 50,
65 HKWorkoutActivityTypeVolleyball = 51,
66 HKWorkoutActivityTypeWalking = 52,
67 HKWorkoutActivityTypeWaterFitness = 53,
68 HKWorkoutActivityTypeWaterPolo = 54,
69 HKWorkoutActivityTypeWaterSports = 55,
70 HKWorkoutActivityTypeWrestling = 56,
71 HKWorkoutActivityTypeYoga = 57,
72 HKWorkoutActivityTypeBarre = 58,
73 HKWorkoutActivityTypeCoreTraining = 59,
74 HKWorkoutActivityTypeCrossCountrySkiing = 60,
75 HKWorkoutActivityTypeDownhillSkiing = 61,
76 HKWorkoutActivityTypeFlexibility = 62,
77 HKWorkoutActivityTypeHighIntensityIntervalTraining = 63,
78 HKWorkoutActivityTypeJumpRope = 64,
79 HKWorkoutActivityTypeKickboxing = 65,
80 HKWorkoutActivityTypePilates = 66,
81 HKWorkoutActivityTypeSnowboarding = 67,
82 HKWorkoutActivityTypeStairs = 68,
83 HKWorkoutActivityTypeStepTraining = 69,
84 HKWorkoutActivityTypeWheelchairWalkPace = 70,
85 HKWorkoutActivityTypeWheelchairRunPace = 71,
86 HKWorkoutActivityTypeTaiChi = 72,
87 HKWorkoutActivityTypeMixedCardio = 73,
88 HKWorkoutActivityTypeHandCycling = 74,
89 HKWorkoutActivityTypeDiscSports = 75,
90 HKWorkoutActivityTypeFitnessGaming = 76,
91 HKWorkoutActivityTypeCardioDance = 77,
92 HKWorkoutActivityTypeSocialDance = 78,
93 HKWorkoutActivityTypePickleball = 79,
94 HKWorkoutActivityTypeCooldown = 80,
95 HKWorkoutActivityTypeSwimBikeRun = 82,
96 HKWorkoutActivityTypeTransition = 83,
97 HKWorkoutActivityTypeUnderwaterDiving = 84,
98 HKWorkoutActivityTypeOther = 3000,
99 }
100);
101
102ns_enum!(
103 #[underlying(NSInteger)]
104 pub enum HKWorkoutEventType {
105 HKWorkoutEventTypePause = 1,
106 HKWorkoutEventTypeResume = 2,
107 HKWorkoutEventTypeLap = 3,
108 HKWorkoutEventTypeMarker = 4,
109 HKWorkoutEventTypeMotionPaused = 5,
110 HKWorkoutEventTypeMotionResumed = 6,
111 HKWorkoutEventTypeSegment = 7,
112 HKWorkoutEventTypePauseOrResumeRequest = 8,
113 }
114);
115
116extern_class!(
117 #[derive(Debug, PartialEq, Eq, Hash)]
118 #[cfg(feature = "HealthKit_HKWorkoutEvent")]
119 pub struct HKWorkoutEvent;
120
121 #[cfg(feature = "HealthKit_HKWorkoutEvent")]
122 unsafe impl ClassType for HKWorkoutEvent {
123 type Super = NSObject;
124 type Mutability = InteriorMutable;
125 }
126);
127
128#[cfg(feature = "HealthKit_HKWorkoutEvent")]
129unsafe impl NSCoding for HKWorkoutEvent {}
130
131#[cfg(feature = "HealthKit_HKWorkoutEvent")]
132unsafe impl NSCopying for HKWorkoutEvent {}
133
134#[cfg(feature = "HealthKit_HKWorkoutEvent")]
135unsafe impl NSObjectProtocol for HKWorkoutEvent {}
136
137#[cfg(feature = "HealthKit_HKWorkoutEvent")]
138unsafe impl NSSecureCoding for HKWorkoutEvent {}
139
140extern_methods!(
141 #[cfg(feature = "HealthKit_HKWorkoutEvent")]
142 unsafe impl HKWorkoutEvent {
143 #[method(type)]
144 pub unsafe fn r#type(&self) -> HKWorkoutEventType;
145
146 #[cfg(feature = "Foundation_NSDate")]
147 #[deprecated]
148 #[method_id(@__retain_semantics Other date)]
149 pub unsafe fn date(&self) -> Id<NSDate>;
150
151 #[cfg(feature = "Foundation_NSDateInterval")]
152 #[method_id(@__retain_semantics Other dateInterval)]
153 pub unsafe fn dateInterval(&self) -> Id<NSDateInterval>;
154
155 #[cfg(all(feature = "Foundation_NSDictionary", feature = "Foundation_NSString"))]
156 #[method_id(@__retain_semantics Other metadata)]
157 pub unsafe fn metadata(&self) -> Option<Id<NSDictionary<NSString, AnyObject>>>;
158
159 #[cfg(feature = "Foundation_NSDate")]
160 #[deprecated]
161 #[method_id(@__retain_semantics Other workoutEventWithType:date:)]
162 pub unsafe fn workoutEventWithType_date(
163 r#type: HKWorkoutEventType,
164 date: &NSDate,
165 ) -> Id<Self>;
166
167 #[cfg(all(
168 feature = "Foundation_NSDate",
169 feature = "Foundation_NSDictionary",
170 feature = "Foundation_NSString"
171 ))]
172 #[deprecated]
173 #[method_id(@__retain_semantics Other workoutEventWithType:date:metadata:)]
174 pub unsafe fn workoutEventWithType_date_metadata(
175 r#type: HKWorkoutEventType,
176 date: &NSDate,
177 metadata: &NSDictionary<NSString, AnyObject>,
178 ) -> Id<Self>;
179
180 #[cfg(all(
181 feature = "Foundation_NSDateInterval",
182 feature = "Foundation_NSDictionary",
183 feature = "Foundation_NSString"
184 ))]
185 #[method_id(@__retain_semantics Other workoutEventWithType:dateInterval:metadata:)]
186 pub unsafe fn workoutEventWithType_dateInterval_metadata(
187 r#type: HKWorkoutEventType,
188 date_interval: &NSDateInterval,
189 metadata: Option<&NSDictionary<NSString, AnyObject>>,
190 ) -> Id<Self>;
191
192 #[method_id(@__retain_semantics Init init)]
193 pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
194 }
195);
196
197extern_methods!(
198 #[cfg(feature = "HealthKit_HKWorkoutEvent")]
200 unsafe impl HKWorkoutEvent {
201 #[method_id(@__retain_semantics New new)]
202 pub unsafe fn new() -> Id<Self>;
203 }
204);
205
206extern_class!(
207 #[derive(Debug, PartialEq, Eq, Hash)]
208 #[cfg(feature = "HealthKit_HKWorkout")]
209 pub struct HKWorkout;
210
211 #[cfg(feature = "HealthKit_HKWorkout")]
212 unsafe impl ClassType for HKWorkout {
213 #[inherits(HKObject, NSObject)]
214 type Super = HKSample;
215 type Mutability = InteriorMutable;
216 }
217);
218
219#[cfg(feature = "HealthKit_HKWorkout")]
220unsafe impl NSCoding for HKWorkout {}
221
222#[cfg(feature = "HealthKit_HKWorkout")]
223unsafe impl NSObjectProtocol for HKWorkout {}
224
225#[cfg(feature = "HealthKit_HKWorkout")]
226unsafe impl NSSecureCoding for HKWorkout {}
227
228extern_methods!(
229 #[cfg(feature = "HealthKit_HKWorkout")]
230 unsafe impl HKWorkout {
231 #[method(workoutActivityType)]
232 pub unsafe fn workoutActivityType(&self) -> HKWorkoutActivityType;
233
234 #[cfg(all(feature = "Foundation_NSArray", feature = "HealthKit_HKWorkoutEvent"))]
235 #[method_id(@__retain_semantics Other workoutEvents)]
236 pub unsafe fn workoutEvents(&self) -> Option<Id<NSArray<HKWorkoutEvent>>>;
237
238 #[cfg(all(
239 feature = "Foundation_NSArray",
240 feature = "HealthKit_HKWorkoutActivity"
241 ))]
242 #[method_id(@__retain_semantics Other workoutActivities)]
243 pub unsafe fn workoutActivities(&self) -> Id<NSArray<HKWorkoutActivity>>;
244
245 #[method(duration)]
246 pub unsafe fn duration(&self) -> NSTimeInterval;
247
248 #[cfg(feature = "HealthKit_HKQuantity")]
249 #[deprecated = "Use statisticsForType: passing the HKQuantityType for HKQuantityTypeIdentifierActiveEnergyBurned"]
250 #[method_id(@__retain_semantics Other totalEnergyBurned)]
251 pub unsafe fn totalEnergyBurned(&self) -> Option<Id<HKQuantity>>;
252
253 #[cfg(feature = "HealthKit_HKQuantity")]
254 #[deprecated = "Use statisticsForType: passing the HKQuantityType for the desired distance type"]
255 #[method_id(@__retain_semantics Other totalDistance)]
256 pub unsafe fn totalDistance(&self) -> Option<Id<HKQuantity>>;
257
258 #[cfg(feature = "HealthKit_HKQuantity")]
259 #[deprecated = "Use statisticsForType: passing the HKQuantityType for HKQuantityTypeIdentifierSwimmingStrokeCount"]
260 #[method_id(@__retain_semantics Other totalSwimmingStrokeCount)]
261 pub unsafe fn totalSwimmingStrokeCount(&self) -> Option<Id<HKQuantity>>;
262
263 #[cfg(feature = "HealthKit_HKQuantity")]
264 #[deprecated = "Use statisticsForType: passing the HKQuantityType for HKQuantityTypeIdentifierFlightClimbed"]
265 #[method_id(@__retain_semantics Other totalFlightsClimbed)]
266 pub unsafe fn totalFlightsClimbed(&self) -> Option<Id<HKQuantity>>;
267
268 #[cfg(all(
269 feature = "Foundation_NSDictionary",
270 feature = "HealthKit_HKQuantityType",
271 feature = "HealthKit_HKStatistics"
272 ))]
273 #[method_id(@__retain_semantics Other allStatistics)]
274 pub unsafe fn allStatistics(&self) -> Id<NSDictionary<HKQuantityType, HKStatistics>>;
275
276 #[cfg(all(
277 feature = "HealthKit_HKQuantityType",
278 feature = "HealthKit_HKStatistics"
279 ))]
280 #[method_id(@__retain_semantics Other statisticsForType:)]
281 pub unsafe fn statisticsForType(
282 &self,
283 quantity_type: &HKQuantityType,
284 ) -> Option<Id<HKStatistics>>;
285
286 #[cfg(feature = "Foundation_NSDate")]
287 #[deprecated = "Use HKWorkoutBuilder"]
288 #[method_id(@__retain_semantics Other workoutWithActivityType:startDate:endDate:)]
289 pub unsafe fn workoutWithActivityType_startDate_endDate(
290 workout_activity_type: HKWorkoutActivityType,
291 start_date: &NSDate,
292 end_date: &NSDate,
293 ) -> Id<Self>;
294
295 #[cfg(all(
296 feature = "Foundation_NSArray",
297 feature = "Foundation_NSDate",
298 feature = "Foundation_NSDictionary",
299 feature = "Foundation_NSString",
300 feature = "HealthKit_HKQuantity",
301 feature = "HealthKit_HKWorkoutEvent"
302 ))]
303 #[deprecated = "Use HKWorkoutBuilder"]
304 #[method_id(@__retain_semantics Other workoutWithActivityType:startDate:endDate:workoutEvents:totalEnergyBurned:totalDistance:metadata:)]
305 pub unsafe fn workoutWithActivityType_startDate_endDate_workoutEvents_totalEnergyBurned_totalDistance_metadata(
306 workout_activity_type: HKWorkoutActivityType,
307 start_date: &NSDate,
308 end_date: &NSDate,
309 workout_events: Option<&NSArray<HKWorkoutEvent>>,
310 total_energy_burned: Option<&HKQuantity>,
311 total_distance: Option<&HKQuantity>,
312 metadata: Option<&NSDictionary<NSString, AnyObject>>,
313 ) -> Id<Self>;
314
315 #[cfg(all(
316 feature = "Foundation_NSArray",
317 feature = "Foundation_NSDate",
318 feature = "Foundation_NSDictionary",
319 feature = "Foundation_NSString",
320 feature = "HealthKit_HKDevice",
321 feature = "HealthKit_HKQuantity",
322 feature = "HealthKit_HKWorkoutEvent"
323 ))]
324 #[deprecated = "Use HKWorkoutBuilder"]
325 #[method_id(@__retain_semantics Other workoutWithActivityType:startDate:endDate:workoutEvents:totalEnergyBurned:totalDistance:device:metadata:)]
326 pub unsafe fn workoutWithActivityType_startDate_endDate_workoutEvents_totalEnergyBurned_totalDistance_device_metadata(
327 workout_activity_type: HKWorkoutActivityType,
328 start_date: &NSDate,
329 end_date: &NSDate,
330 workout_events: Option<&NSArray<HKWorkoutEvent>>,
331 total_energy_burned: Option<&HKQuantity>,
332 total_distance: Option<&HKQuantity>,
333 device: Option<&HKDevice>,
334 metadata: Option<&NSDictionary<NSString, AnyObject>>,
335 ) -> Id<Self>;
336
337 #[cfg(all(
338 feature = "Foundation_NSDate",
339 feature = "Foundation_NSDictionary",
340 feature = "Foundation_NSString",
341 feature = "HealthKit_HKQuantity"
342 ))]
343 #[deprecated = "Use HKWorkoutBuilder"]
344 #[method_id(@__retain_semantics Other workoutWithActivityType:startDate:endDate:duration:totalEnergyBurned:totalDistance:metadata:)]
345 pub unsafe fn workoutWithActivityType_startDate_endDate_duration_totalEnergyBurned_totalDistance_metadata(
346 workout_activity_type: HKWorkoutActivityType,
347 start_date: &NSDate,
348 end_date: &NSDate,
349 duration: NSTimeInterval,
350 total_energy_burned: Option<&HKQuantity>,
351 total_distance: Option<&HKQuantity>,
352 metadata: Option<&NSDictionary<NSString, AnyObject>>,
353 ) -> Id<Self>;
354
355 #[cfg(all(
356 feature = "Foundation_NSDate",
357 feature = "Foundation_NSDictionary",
358 feature = "Foundation_NSString",
359 feature = "HealthKit_HKDevice",
360 feature = "HealthKit_HKQuantity"
361 ))]
362 #[deprecated = "Use HKWorkoutBuilder"]
363 #[method_id(@__retain_semantics Other workoutWithActivityType:startDate:endDate:duration:totalEnergyBurned:totalDistance:device:metadata:)]
364 pub unsafe fn workoutWithActivityType_startDate_endDate_duration_totalEnergyBurned_totalDistance_device_metadata(
365 workout_activity_type: HKWorkoutActivityType,
366 start_date: &NSDate,
367 end_date: &NSDate,
368 duration: NSTimeInterval,
369 total_energy_burned: Option<&HKQuantity>,
370 total_distance: Option<&HKQuantity>,
371 device: Option<&HKDevice>,
372 metadata: Option<&NSDictionary<NSString, AnyObject>>,
373 ) -> Id<Self>;
374
375 #[cfg(all(
376 feature = "Foundation_NSArray",
377 feature = "Foundation_NSDate",
378 feature = "Foundation_NSDictionary",
379 feature = "Foundation_NSString",
380 feature = "HealthKit_HKDevice",
381 feature = "HealthKit_HKQuantity",
382 feature = "HealthKit_HKWorkoutEvent"
383 ))]
384 #[deprecated = "Use HKWorkoutBuilder"]
385 #[method_id(@__retain_semantics Other workoutWithActivityType:startDate:endDate:workoutEvents:totalEnergyBurned:totalDistance:totalSwimmingStrokeCount:device:metadata:)]
386 pub unsafe fn workoutWithActivityType_startDate_endDate_workoutEvents_totalEnergyBurned_totalDistance_totalSwimmingStrokeCount_device_metadata(
387 workout_activity_type: HKWorkoutActivityType,
388 start_date: &NSDate,
389 end_date: &NSDate,
390 workout_events: Option<&NSArray<HKWorkoutEvent>>,
391 total_energy_burned: Option<&HKQuantity>,
392 total_distance: Option<&HKQuantity>,
393 total_swimming_stroke_count: Option<&HKQuantity>,
394 device: Option<&HKDevice>,
395 metadata: Option<&NSDictionary<NSString, AnyObject>>,
396 ) -> Id<Self>;
397
398 #[cfg(all(
399 feature = "Foundation_NSArray",
400 feature = "Foundation_NSDate",
401 feature = "Foundation_NSDictionary",
402 feature = "Foundation_NSString",
403 feature = "HealthKit_HKDevice",
404 feature = "HealthKit_HKQuantity",
405 feature = "HealthKit_HKWorkoutEvent"
406 ))]
407 #[deprecated = "Use HKWorkoutBuilder"]
408 #[method_id(@__retain_semantics Other workoutWithActivityType:startDate:endDate:workoutEvents:totalEnergyBurned:totalDistance:totalFlightsClimbed:device:metadata:)]
409 pub unsafe fn workoutWithActivityType_startDate_endDate_workoutEvents_totalEnergyBurned_totalDistance_totalFlightsClimbed_device_metadata(
410 workout_activity_type: HKWorkoutActivityType,
411 start_date: &NSDate,
412 end_date: &NSDate,
413 workout_events: Option<&NSArray<HKWorkoutEvent>>,
414 total_energy_burned: Option<&HKQuantity>,
415 total_distance: Option<&HKQuantity>,
416 total_flights_climbed: Option<&HKQuantity>,
417 device: Option<&HKDevice>,
418 metadata: Option<&NSDictionary<NSString, AnyObject>>,
419 ) -> Id<Self>;
420 }
421);
422
423extern_methods!(
424 #[cfg(feature = "HealthKit_HKWorkout")]
426 unsafe impl HKWorkout {
427 #[method_id(@__retain_semantics Init init)]
428 pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
429 }
430);
431
432extern_methods!(
433 #[cfg(feature = "HealthKit_HKWorkout")]
435 unsafe impl HKWorkout {
436 #[method_id(@__retain_semantics New new)]
437 pub unsafe fn new() -> Id<Self>;
438 }
439);
440
441extern_static!(HKPredicateKeyPathWorkoutDuration: &'static NSString);
442
443extern_static!(HKPredicateKeyPathWorkoutTotalDistance: &'static NSString);
444
445extern_static!(HKPredicateKeyPathWorkoutTotalEnergyBurned: &'static NSString);
446
447extern_static!(HKPredicateKeyPathWorkoutType: &'static NSString);
448
449extern_static!(HKPredicateKeyPathWorkoutTotalSwimmingStrokeCount: &'static NSString);
450
451extern_static!(HKPredicateKeyPathWorkoutTotalFlightsClimbed: &'static NSString);
452
453extern_static!(HKPredicateKeyPathWorkoutSumQuantity: &'static NSString);
454
455extern_static!(HKPredicateKeyPathWorkoutMinimumQuantity: &'static NSString);
456
457extern_static!(HKPredicateKeyPathWorkoutMaximumQuantity: &'static NSString);
458
459extern_static!(HKPredicateKeyPathWorkoutAverageQuantity: &'static NSString);
460
461extern_static!(HKPredicateKeyPathWorkoutActivity: &'static NSString);
462
463extern_static!(HKWorkoutSortIdentifierDuration: &'static NSString);
464
465extern_static!(HKWorkoutSortIdentifierTotalDistance: &'static NSString);
466
467extern_static!(HKWorkoutSortIdentifierTotalEnergyBurned: &'static NSString);
468
469extern_static!(HKWorkoutSortIdentifierTotalSwimmingStrokeCount: &'static NSString);
470
471extern_static!(HKWorkoutSortIdentifierTotalFlightsClimbed: &'static NSString);