use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct HKAppleSleepingBreathingDisturbancesClassification(pub NSInteger);
impl HKAppleSleepingBreathingDisturbancesClassification {
#[doc(alias = "HKAppleSleepingBreathingDisturbancesClassificationNotElevated")]
pub const NotElevated: Self = Self(0);
#[doc(alias = "HKAppleSleepingBreathingDisturbancesClassificationElevated")]
pub const Elevated: Self = Self(1);
}
unsafe impl Encode for HKAppleSleepingBreathingDisturbancesClassification {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for HKAppleSleepingBreathingDisturbancesClassification {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
impl HKAppleSleepingBreathingDisturbancesClassification {
#[doc(alias = "HKAppleSleepingBreathingDisturbancesClassificationForQuantity")]
#[cfg(feature = "HKQuantity")]
#[inline]
pub unsafe fn for_quantity(value: &HKQuantity) -> Option<Retained<NSNumber>> {
extern "C-unwind" {
fn HKAppleSleepingBreathingDisturbancesClassificationForQuantity(
value: &HKQuantity,
) -> *mut NSNumber;
}
let ret = unsafe { HKAppleSleepingBreathingDisturbancesClassificationForQuantity(value) };
unsafe { Retained::retain_autoreleased(ret) }
}
}
#[cfg(feature = "HKQuantity")]
#[inline]
pub unsafe extern "C-unwind" fn HKAppleSleepingBreathingDisturbancesMinimumQuantityForClassification(
classification: HKAppleSleepingBreathingDisturbancesClassification,
) -> Retained<HKQuantity> {
extern "C-unwind" {
fn HKAppleSleepingBreathingDisturbancesMinimumQuantityForClassification(
classification: HKAppleSleepingBreathingDisturbancesClassification,
) -> *mut HKQuantity;
}
let ret = unsafe {
HKAppleSleepingBreathingDisturbancesMinimumQuantityForClassification(classification)
};
unsafe { Retained::retain_autoreleased(ret) }
.expect("function was marked as returning non-null, but actually returned NULL")
}
#[cfg(feature = "HKQuantity")]
#[deprecated = "renamed to `HKAppleSleepingBreathingDisturbancesClassification::for_quantity`"]
#[inline]
pub unsafe extern "C-unwind" fn HKAppleSleepingBreathingDisturbancesClassificationForQuantity(
value: &HKQuantity,
) -> Option<Retained<NSNumber>> {
extern "C-unwind" {
fn HKAppleSleepingBreathingDisturbancesClassificationForQuantity(
value: &HKQuantity,
) -> *mut NSNumber;
}
let ret = unsafe { HKAppleSleepingBreathingDisturbancesClassificationForQuantity(value) };
unsafe { Retained::retain_autoreleased(ret) }
}