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
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
/// The possible statuses of a logged HKMedicationDoseEvent
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/healthkit/hkmedicationdoseeventlogstatus?language=objc)
// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct HKMedicationDoseEventLogStatus(pub NSInteger);
impl HKMedicationDoseEventLogStatus {
#[doc(alias = "HKMedicationDoseEventLogStatusNotInteracted")]
pub const NotInteracted: Self = Self(1);
#[doc(alias = "HKMedicationDoseEventLogStatusNotificationNotSent")]
pub const NotificationNotSent: Self = Self(2);
#[doc(alias = "HKMedicationDoseEventLogStatusSnoozed")]
pub const Snoozed: Self = Self(3);
#[doc(alias = "HKMedicationDoseEventLogStatusTaken")]
pub const Taken: Self = Self(4);
#[doc(alias = "HKMedicationDoseEventLogStatusSkipped")]
pub const Skipped: Self = Self(5);
#[doc(alias = "HKMedicationDoseEventLogStatusNotLogged")]
pub const NotLogged: Self = Self(6);
}
unsafe impl Encode for HKMedicationDoseEventLogStatus {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for HKMedicationDoseEventLogStatus {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
/// The kind of schedule used to log this dose event.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/healthkit/hkmedicationdoseeventscheduletype?language=objc)
// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct HKMedicationDoseEventScheduleType(pub NSInteger);
impl HKMedicationDoseEventScheduleType {
#[doc(alias = "HKMedicationDoseEventScheduleTypeAsNeeded")]
pub const AsNeeded: Self = Self(1);
#[doc(alias = "HKMedicationDoseEventScheduleTypeSchedule")]
pub const Schedule: Self = Self(2);
}
unsafe impl Encode for HKMedicationDoseEventScheduleType {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for HKMedicationDoseEventScheduleType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
/// [Apple's documentation](https://developer.apple.com/documentation/healthkit/hkmedicationdoseevent?language=objc)
#[unsafe(super(HKSample, HKObject, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(feature = "HKObject", feature = "HKSample"))]
pub struct HKMedicationDoseEvent;
);
#[cfg(all(feature = "HKObject", feature = "HKSample"))]
unsafe impl Send for HKMedicationDoseEvent {}
#[cfg(all(feature = "HKObject", feature = "HKSample"))]
unsafe impl Sync for HKMedicationDoseEvent {}
#[cfg(all(feature = "HKObject", feature = "HKSample"))]
extern_conformance!(
unsafe impl NSCoding for HKMedicationDoseEvent {}
);
#[cfg(all(feature = "HKObject", feature = "HKSample"))]
extern_conformance!(
unsafe impl NSCopying for HKMedicationDoseEvent {}
);
#[cfg(all(feature = "HKObject", feature = "HKSample"))]
unsafe impl CopyingHelper for HKMedicationDoseEvent {
type Result = Self;
}
#[cfg(all(feature = "HKObject", feature = "HKSample"))]
extern_conformance!(
unsafe impl NSObjectProtocol for HKMedicationDoseEvent {}
);
#[cfg(all(feature = "HKObject", feature = "HKSample"))]
extern_conformance!(
unsafe impl NSSecureCoding for HKMedicationDoseEvent {}
);
#[cfg(all(feature = "HKObject", feature = "HKSample"))]
impl HKMedicationDoseEvent {
extern_methods!(
#[cfg(feature = "HKObjectType")]
/// The data type of the HKMedicationDoseEvent object.
#[unsafe(method(medicationDoseEventType))]
#[unsafe(method_family = none)]
pub unsafe fn medicationDoseEventType(&self) -> Retained<HKMedicationDoseEventType>;
/// The impetus behind the dose event.
///
/// HKMedicationDoseEventScheduleTypeAsNeeded for doses logged as needed, and HKMedicationDoseEventScheduleTypeSchedule for doses logged from a scheduled event.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(scheduleType))]
#[unsafe(method_family = none)]
pub unsafe fn scheduleType(&self) -> HKMedicationDoseEventScheduleType;
#[cfg(feature = "HKHealthConceptIdentifier")]
/// A unique identifier of the medication concept for which the dose event was created for, used to relate the dose event to the backing HKMedicationConcept object.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(medicationConceptIdentifier))]
#[unsafe(method_family = none)]
pub unsafe fn medicationConceptIdentifier(&self) -> Retained<HKHealthConceptIdentifier>;
/// The time that the medication dose was supposed to be taken.
///
/// Always non-null for scheduled medication dose events, always null for as needed dose events.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(scheduledDate))]
#[unsafe(method_family = none)]
pub unsafe fn scheduledDate(&self) -> Option<Retained<NSDate>>;
/// The dose quantity a user is expected to take per the user's schedule.
///
/// Always non-null for scheduled medication dose events, always null for as needed dose events.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(scheduledDoseQuantity))]
#[unsafe(method_family = none)]
pub unsafe fn scheduledDoseQuantity(&self) -> Option<Retained<NSNumber>>;
/// The dose quantity the user indicates has actually been taken.
///
/// For scheduled dose events, defaults to the scheduledDoseQuantity, when logged from a reminder. For as needed dose events, defaults to 1 in the medication tracking experience, but can be edited by the user at any time.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(doseQuantity))]
#[unsafe(method_family = none)]
pub unsafe fn doseQuantity(&self) -> Option<Retained<NSNumber>>;
/// The log status of HKMedicationDoseEvent sample.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(logStatus))]
#[unsafe(method_family = none)]
pub unsafe fn logStatus(&self) -> HKMedicationDoseEventLogStatus;
#[cfg(feature = "HKUnit")]
/// The unit that the associated medication had associated at time the user logged the dose event.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(unit))]
#[unsafe(method_family = none)]
pub unsafe fn unit(&self) -> Retained<HKUnit>;
#[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 "C" {
/// [Apple's documentation](https://developer.apple.com/documentation/healthkit/hkpredicatekeypathstatus?language=objc)
pub static HKPredicateKeyPathStatus: &'static NSString;
}
extern "C" {
/// [Apple's documentation](https://developer.apple.com/documentation/healthkit/hkpredicatekeypathlogorigin?language=objc)
pub static HKPredicateKeyPathLogOrigin: &'static NSString;
}
extern "C" {
/// [Apple's documentation](https://developer.apple.com/documentation/healthkit/hkpredicatekeypathscheduleddate?language=objc)
pub static HKPredicateKeyPathScheduledDate: &'static NSString;
}
extern "C" {
/// [Apple's documentation](https://developer.apple.com/documentation/healthkit/hkpredicatekeypathmedicationconceptidentifier?language=objc)
pub static HKPredicateKeyPathMedicationConceptIdentifier: &'static NSString;
}