objc2-health-kit 0.3.2

Bindings to the HealthKit framework
Documentation
//! 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::*;

/// This enumerated type is used to represent a classification of the user's breathing disturbances
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/healthkit/hkapplesleepingbreathingdisturbancesclassification?language=objc)
// NS_ENUM
#[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 {
    /// Determines the Breathing Disturbances classification for the provided BD value.
    ///
    /// Parameter `value`: Breathing Disturbances quantity
    ///
    /// Returns: A Breathing Disturbances classification if one can be created, otherwise nil.
    #[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) }
    }
}

/// Retrieves the minimum quantity for a Breathing Disturbances classification.
///
/// Parameter `classification`: Breathing Disturbances classification for desired minimum value.
#[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) }
}