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::*;

extern_class!(
    /// [Apple's documentation](https://developer.apple.com/documentation/healthkit/hkaudiogramsensitivitypoint?language=objc)
    #[unsafe(super(NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct HKAudiogramSensitivityPoint;
);

unsafe impl Send for HKAudiogramSensitivityPoint {}

unsafe impl Sync for HKAudiogramSensitivityPoint {}

extern_conformance!(
    unsafe impl NSCoding for HKAudiogramSensitivityPoint {}
);

extern_conformance!(
    unsafe impl NSObjectProtocol for HKAudiogramSensitivityPoint {}
);

extern_conformance!(
    unsafe impl NSSecureCoding for HKAudiogramSensitivityPoint {}
);

impl HKAudiogramSensitivityPoint {
    extern_methods!(
        #[cfg(feature = "HKQuantity")]
        /// is [HKUnit hertzUnit] or "Hz".
        #[unsafe(method(frequency))]
        #[unsafe(method_family = none)]
        pub unsafe fn frequency(&self) -> Retained<HKQuantity>;

        #[cfg(feature = "HKQuantity")]
        /// The unit of measurement is `HKUnit.decibelHearingLevelUnit` or "dBHL".
        #[deprecated = "Use tests object which will contain a value for left ear"]
        #[unsafe(method(leftEarSensitivity))]
        #[unsafe(method_family = none)]
        pub unsafe fn leftEarSensitivity(&self) -> Option<Retained<HKQuantity>>;

        #[cfg(feature = "HKQuantity")]
        /// The unit of measurement is `HKUnit.decibelHearingLevelUnit` or "dBHL".
        #[deprecated = "Use tests object which will contain a value for right ear"]
        #[unsafe(method(rightEarSensitivity))]
        #[unsafe(method_family = none)]
        pub unsafe fn rightEarSensitivity(&self) -> Option<Retained<HKQuantity>>;

        #[cfg(feature = "HKAudiogramSensitivityTest")]
        /// The tests conducted at this frequency
        ///
        /// This property is not atomic.
        ///
        /// # Safety
        ///
        /// This might not be thread-safe.
        #[unsafe(method(tests))]
        #[unsafe(method_family = none)]
        pub unsafe fn tests(&self) -> Retained<NSArray<HKAudiogramSensitivityTest>>;

        #[cfg(feature = "HKQuantity")]
        /// Creates a point that can be included in a audiogram.
        ///
        /// Parameter `frequency`: Frequency where sensitivity was measured.
        ///
        /// Parameter `leftEarSensitivity`: Left ear sensitivity measured in dB from a baseline of 0 dB. Reduced hearing sensitivity corresponds to an increase from 0 dB.
        ///
        /// Parameter `rightEarSensitivity`: Right ear sensitivity measured in dB from a baseline of 0 dB. Reduced hearing sensitivity corresponds to an increase from 0 dB.
        ///
        /// Parameter `error`: If there was a problem creating this instance this will contain the error.
        ///
        /// Returns: New instance of a sensitivity point or nil if there were problems
        /// creating the instance.  Errors may include incorrect quantity units
        /// or data that is out of an expected range.
        #[deprecated = "Use +[HKAudiogramSensitivityPoint sensitivityPointWithFrequency:tests:error:]"]
        #[unsafe(method(sensitivityPointWithFrequency:leftEarSensitivity:rightEarSensitivity:error:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn sensitivityPointWithFrequency_leftEarSensitivity_rightEarSensitivity_error(
            frequency: &HKQuantity,
            left_ear_sensitivity: Option<&HKQuantity>,
            right_ear_sensitivity: Option<&HKQuantity>,
        ) -> Result<Retained<Self>, Retained<NSError>>;

        #[cfg(all(feature = "HKAudiogramSensitivityTest", feature = "HKQuantity"))]
        /// Creates a point that can be included in a audiogram.
        ///
        /// Parameter `frequency`: Frequency at which sensitivity was measured.
        ///
        /// Parameter `tests`: The tests conducted at the frequency
        ///
        /// Parameter `errorOut`: If there was a problem creating this instance this will contain the error.
        ///
        /// Returns: New instance of a sensitivity point or nil if there were problems
        /// creating the instance.  Errors may include incorrect quantity units
        /// or data that is out of an expected range.
        #[unsafe(method(sensitivityPointWithFrequency:tests:error:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn sensitivityPointWithFrequency_tests_error(
            frequency: &HKQuantity,
            tests: &NSArray<HKAudiogramSensitivityTest>,
        ) -> Result<Retained<Self>, Retained<NSError>>;

        #[unsafe(method(init))]
        #[unsafe(method_family = init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
    );
}

/// Methods declared on superclass `NSObject`.
impl HKAudiogramSensitivityPoint {
    extern_methods!(
        #[unsafe(method(new))]
        #[unsafe(method_family = new)]
        pub unsafe fn new() -> Retained<Self>;
    );
}