1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
/// A CMDyskineticSymptomResult object describes the presence and prevalence of dyskinetic symptoms (specifically, choreiform movements) during a one minute result period when subjects wear the Apple Watch on their most affected arm.
/// percentUnlikely + percentLikely = 1.0
/// Please note dyskinetic symptom measurements are designed for subjects with known presence of chorea in the arm and should not be displayed to users who do not report episodes of dyskinetic symptoms.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/coremotion/cmdyskineticsymptomresult?language=objc)
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct CMDyskineticSymptomResult;
);
extern_conformance!(
unsafe impl NSCoding for CMDyskineticSymptomResult {}
);
extern_conformance!(
unsafe impl NSCopying for CMDyskineticSymptomResult {}
);
unsafe impl CopyingHelper for CMDyskineticSymptomResult {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for CMDyskineticSymptomResult {}
);
extern_conformance!(
unsafe impl NSSecureCoding for CMDyskineticSymptomResult {}
);
impl CMDyskineticSymptomResult {
extern_methods!(
/// The date and time representing the start of the result.
#[unsafe(method(startDate))]
#[unsafe(method_family = none)]
pub unsafe fn startDate(&self) -> Retained<NSDate>;
/// The date and time representing the end of the result.
#[unsafe(method(endDate))]
#[unsafe(method_family = none)]
pub unsafe fn endDate(&self) -> Retained<NSDate>;
/// The percentage of time dyskinetic symptoms were unlikely for the result.
#[unsafe(method(percentUnlikely))]
#[unsafe(method_family = none)]
pub unsafe fn percentUnlikely(&self) -> c_float;
/// The percentage of time dyskinetic symptoms were likely for the result.
#[unsafe(method(percentLikely))]
#[unsafe(method_family = none)]
pub unsafe fn percentLikely(&self) -> c_float;
);
}
/// Methods declared on superclass `NSObject`.
impl CMDyskineticSymptomResult {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}
extern_class!(
/// A CMTremorResult object describes the presence and prevalence of tremor symptoms (specifically, resting tremor) during a one minute result period when subjects wear the Apple Watch on their most affected arm.
/// percentUnknown + percentNoTremor + percentTremorSlight + percentTremorMild + percentTremorModerate + percentTremorStrong = 1.0
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/coremotion/cmtremorresult?language=objc)
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct CMTremorResult;
);
extern_conformance!(
unsafe impl NSCoding for CMTremorResult {}
);
extern_conformance!(
unsafe impl NSCopying for CMTremorResult {}
);
unsafe impl CopyingHelper for CMTremorResult {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for CMTremorResult {}
);
extern_conformance!(
unsafe impl NSSecureCoding for CMTremorResult {}
);
impl CMTremorResult {
extern_methods!(
/// The date and time representing the start of the result.
#[unsafe(method(startDate))]
#[unsafe(method_family = none)]
pub unsafe fn startDate(&self) -> Retained<NSDate>;
/// The date and time representing the end of the result.
#[unsafe(method(endDate))]
#[unsafe(method_family = none)]
pub unsafe fn endDate(&self) -> Retained<NSDate>;
/// The percentage of time tremor was unknown for the result.
/// Unknown periods include times when:
/// 1. the subject is moving and therefore a resting tremor cannot be assessed, and
/// 2. the signal strength is too low to measure tremor confidently.
#[unsafe(method(percentUnknown))]
#[unsafe(method_family = none)]
pub unsafe fn percentUnknown(&self) -> c_float;
/// The percentage of time no tremor was detected for the result.
#[unsafe(method(percentNone))]
#[unsafe(method_family = none)]
pub unsafe fn percentNone(&self) -> c_float;
/// The percentage of time tremor was likely and displacement amplitude was slight for the result.
#[unsafe(method(percentSlight))]
#[unsafe(method_family = none)]
pub unsafe fn percentSlight(&self) -> c_float;
/// The percentage of time tremor was likely and displacement amplitude was mild for the result.
#[unsafe(method(percentMild))]
#[unsafe(method_family = none)]
pub unsafe fn percentMild(&self) -> c_float;
/// The percentage of time tremor was likely and displacement amplitude was moderate for the result.
#[unsafe(method(percentModerate))]
#[unsafe(method_family = none)]
pub unsafe fn percentModerate(&self) -> c_float;
/// The percentage of time tremor was likely and displacement amplitude was strong for the result.
#[unsafe(method(percentStrong))]
#[unsafe(method_family = none)]
pub unsafe fn percentStrong(&self) -> c_float;
);
}
/// Methods declared on superclass `NSObject`.
impl CMTremorResult {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}
/// Completion handler for CMDyskineticSymptomResult values.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/coremotion/cmdyskineticsymptomresulthandler?language=objc)
#[cfg(feature = "block2")]
pub type CMDyskineticSymptomResultHandler =
*mut block2::DynBlock<dyn Fn(NonNull<NSArray<CMDyskineticSymptomResult>>, *mut NSError)>;
/// Completion handler for CMTremorResult values.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/coremotion/cmtremorresulthandler?language=objc)
#[cfg(feature = "block2")]
pub type CMTremorResultHandler =
*mut block2::DynBlock<dyn Fn(NonNull<NSArray<CMTremorResult>>, *mut NSError)>;
extern_class!(
/// A CMMovementDisorderManager object with methods for persistence and query of movement disorder results.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/coremotion/cmmovementdisordermanager?language=objc)
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct CMMovementDisorderManager;
);
extern_conformance!(
unsafe impl NSObjectProtocol for CMMovementDisorderManager {}
);
impl CMMovementDisorderManager {
extern_methods!(
/// Whether movement disorder results are available on this platform.
///
/// Returns: Returns the availability of movement disorder results on this platform.
#[unsafe(method(isAvailable))]
#[unsafe(method_family = none)]
pub unsafe fn isAvailable() -> bool;
/// What version of movement disorder software is available on this platform.
///
/// Returns: Returns the version number of the movement disorder software available on this platform, nil if not.
/// Format follows Major.Minor.Fix format (e.g. 1.0.0)
#[unsafe(method(version))]
#[unsafe(method_family = none)]
pub unsafe fn version() -> Option<Retained<NSString>>;
#[cfg(feature = "CMAuthorization")]
/// Authorization status of movement disorder results for this user.
///
/// Returns: Returns the authorization status of movement disorder results for this user.
#[unsafe(method(authorizationStatus))]
#[unsafe(method_family = none)]
pub unsafe fn authorizationStatus() -> CMAuthorizationStatus;
/// Enables the calculation and persistence of result values for the specified duration in seconds.
///
/// Parameter `duration`: The duration in seconds to enable the calculation and persistence of result values.
///
/// Warning: Please note that the maximum duration allowed is seven (7) days.
#[unsafe(method(monitorKinesiasForDuration:))]
#[unsafe(method_family = none)]
pub unsafe fn monitorKinesiasForDuration(&self, duration: NSTimeInterval);
#[cfg(feature = "block2")]
/// Queries the system for result values for the specified date range.
///
/// Parameter `fromDate`: The begin date for the query range.
///
/// Parameter `toDate`: The end date for the query range.
///
/// Parameter `handler`: The completion handler for accessing and processing result values.
///
/// Warning: Please note that movement disorder results are available for a maximum of seven (7) days.
///
/// # Safety
///
/// `handler` must be a valid pointer.
#[unsafe(method(queryDyskineticSymptomFromDate:toDate:withHandler:))]
#[unsafe(method_family = none)]
pub unsafe fn queryDyskineticSymptomFromDate_toDate_withHandler(
&self,
from_date: &NSDate,
to_date: &NSDate,
handler: CMDyskineticSymptomResultHandler,
);
#[cfg(feature = "block2")]
/// Queries the system for result values for the specified date range.
///
/// Parameter `fromDate`: The begin date for the query range.
///
/// Parameter `toDate`: The end date for the query range.
///
/// Parameter `handler`: The completion handler for accessing and processing result values.
///
/// Warning: Please note that movement disorder results are available for a maximum of seven (7) days.
///
/// # Safety
///
/// `handler` must be a valid pointer.
#[unsafe(method(queryTremorFromDate:toDate:withHandler:))]
#[unsafe(method_family = none)]
pub unsafe fn queryTremorFromDate_toDate_withHandler(
&self,
from_date: &NSDate,
to_date: &NSDate,
handler: CMTremorResultHandler,
);
/// The last time that data has been processed; queries for periods before this point will return their final results. Data after this point may become available later if monitoring is continuing.
///
/// Warning: Returns nil if no data has been processed or monitoring was not enabled.
#[unsafe(method(lastProcessedDate))]
#[unsafe(method_family = none)]
pub unsafe fn lastProcessedDate(&self) -> Option<Retained<NSDate>>;
/// The expiration date for the most recent monitoring period.
///
/// Warning: Returns nil if no previous monitoring period is available.
#[unsafe(method(monitorKinesiasExpirationDate))]
#[unsafe(method_family = none)]
pub unsafe fn monitorKinesiasExpirationDate(&self) -> Option<Retained<NSDate>>;
);
}
/// Methods declared on superclass `NSObject`.
impl CMMovementDisorderManager {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}