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 HKAppleWalkingSteadinessClassification(pub NSInteger);
impl HKAppleWalkingSteadinessClassification {
#[doc(alias = "HKAppleWalkingSteadinessClassificationOK")]
pub const OK: Self = Self(1);
#[doc(alias = "HKAppleWalkingSteadinessClassificationLow")]
pub const Low: Self = Self(2);
#[doc(alias = "HKAppleWalkingSteadinessClassificationVeryLow")]
pub const VeryLow: Self = Self(3);
}
unsafe impl Encode for HKAppleWalkingSteadinessClassification {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for HKAppleWalkingSteadinessClassification {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
impl HKAppleWalkingSteadinessClassification {
#[doc(alias = "HKAppleWalkingSteadinessClassificationForQuantity")]
#[cfg(feature = "HKQuantity")]
#[inline]
pub unsafe fn for_quantity(
value: &HKQuantity,
classification_out: NonNull<HKAppleWalkingSteadinessClassification>,
error_out: *mut *mut NSError,
) -> bool {
extern "C-unwind" {
fn HKAppleWalkingSteadinessClassificationForQuantity(
value: &HKQuantity,
classification_out: NonNull<HKAppleWalkingSteadinessClassification>,
error_out: *mut *mut NSError,
) -> Bool;
}
unsafe {
HKAppleWalkingSteadinessClassificationForQuantity(value, classification_out, error_out)
}
.as_bool()
}
}
#[cfg(feature = "HKQuantity")]
#[inline]
pub unsafe extern "C-unwind" fn HKAppleWalkingSteadinessMinimumQuantityForClassification(
classification: HKAppleWalkingSteadinessClassification,
) -> Retained<HKQuantity> {
extern "C-unwind" {
fn HKAppleWalkingSteadinessMinimumQuantityForClassification(
classification: HKAppleWalkingSteadinessClassification,
) -> *mut HKQuantity;
}
let ret = unsafe { HKAppleWalkingSteadinessMinimumQuantityForClassification(classification) };
unsafe { Retained::retain_autoreleased(ret) }
.expect("function was marked as returning non-null, but actually returned NULL")
}
#[cfg(feature = "HKQuantity")]
#[inline]
pub unsafe extern "C-unwind" fn HKAppleWalkingSteadinessMaximumQuantityForClassification(
classification: HKAppleWalkingSteadinessClassification,
) -> Retained<HKQuantity> {
extern "C-unwind" {
fn HKAppleWalkingSteadinessMaximumQuantityForClassification(
classification: HKAppleWalkingSteadinessClassification,
) -> *mut HKQuantity;
}
let ret = unsafe { HKAppleWalkingSteadinessMaximumQuantityForClassification(classification) };
unsafe { Retained::retain_autoreleased(ret) }
.expect("function was marked as returning non-null, but actually returned NULL")
}
#[cfg(feature = "HKQuantity")]
#[deprecated = "renamed to `HKAppleWalkingSteadinessClassification::for_quantity`"]
#[inline]
pub unsafe extern "C-unwind" fn HKAppleWalkingSteadinessClassificationForQuantity(
value: &HKQuantity,
classification_out: NonNull<HKAppleWalkingSteadinessClassification>,
error_out: *mut *mut NSError,
) -> bool {
extern "C-unwind" {
fn HKAppleWalkingSteadinessClassificationForQuantity(
value: &HKQuantity,
classification_out: NonNull<HKAppleWalkingSteadinessClassification>,
error_out: *mut *mut NSError,
) -> Bool;
}
unsafe {
HKAppleWalkingSteadinessClassificationForQuantity(value, classification_out, error_out)
}
.as_bool()
}