use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(HKVisionPrescription, HKSample, HKObject, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(
feature = "HKObject",
feature = "HKSample",
feature = "HKVisionPrescription"
))]
pub struct HKContactsPrescription;
);
#[cfg(all(
feature = "HKObject",
feature = "HKSample",
feature = "HKVisionPrescription"
))]
unsafe impl Send for HKContactsPrescription {}
#[cfg(all(
feature = "HKObject",
feature = "HKSample",
feature = "HKVisionPrescription"
))]
unsafe impl Sync for HKContactsPrescription {}
#[cfg(all(
feature = "HKObject",
feature = "HKSample",
feature = "HKVisionPrescription"
))]
extern_conformance!(
unsafe impl NSCoding for HKContactsPrescription {}
);
#[cfg(all(
feature = "HKObject",
feature = "HKSample",
feature = "HKVisionPrescription"
))]
extern_conformance!(
unsafe impl NSCopying for HKContactsPrescription {}
);
#[cfg(all(
feature = "HKObject",
feature = "HKSample",
feature = "HKVisionPrescription"
))]
unsafe impl CopyingHelper for HKContactsPrescription {
type Result = Self;
}
#[cfg(all(
feature = "HKObject",
feature = "HKSample",
feature = "HKVisionPrescription"
))]
extern_conformance!(
unsafe impl NSObjectProtocol for HKContactsPrescription {}
);
#[cfg(all(
feature = "HKObject",
feature = "HKSample",
feature = "HKVisionPrescription"
))]
extern_conformance!(
unsafe impl NSSecureCoding for HKContactsPrescription {}
);
#[cfg(all(
feature = "HKObject",
feature = "HKSample",
feature = "HKVisionPrescription"
))]
impl HKContactsPrescription {
extern_methods!(
#[cfg(all(
feature = "HKContactsLensSpecification",
feature = "HKLensSpecification"
))]
#[unsafe(method(rightEye))]
#[unsafe(method_family = none)]
pub unsafe fn rightEye(&self) -> Option<Retained<HKContactsLensSpecification>>;
#[cfg(all(
feature = "HKContactsLensSpecification",
feature = "HKLensSpecification"
))]
#[unsafe(method(leftEye))]
#[unsafe(method_family = none)]
pub unsafe fn leftEye(&self) -> Option<Retained<HKContactsLensSpecification>>;
#[unsafe(method(brand))]
#[unsafe(method_family = none)]
pub unsafe fn brand(&self) -> Retained<NSString>;
#[cfg(all(
feature = "HKContactsLensSpecification",
feature = "HKDevice",
feature = "HKLensSpecification"
))]
#[unsafe(method(prescriptionWithRightEyeSpecification:leftEyeSpecification:brand:dateIssued:expirationDate:device:metadata:))]
#[unsafe(method_family = none)]
pub unsafe fn prescriptionWithRightEyeSpecification_leftEyeSpecification_brand_dateIssued_expirationDate_device_metadata(
right_eye_specification: Option<&HKContactsLensSpecification>,
left_eye_specification: Option<&HKContactsLensSpecification>,
brand: &NSString,
date_issued: &NSDate,
expiration_date: Option<&NSDate>,
device: Option<&HKDevice>,
metadata: Option<&NSDictionary<NSString, AnyObject>>,
) -> Retained<Self>;
#[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>;
#[cfg(feature = "HKDevice")]
#[unsafe(method(prescriptionWithType:dateIssued:expirationDate:device:metadata:))]
#[unsafe(method_family = none)]
pub unsafe fn prescriptionWithType_dateIssued_expirationDate_device_metadata(
r#type: HKVisionPrescriptionType,
date_issued: &NSDate,
expiration_date: Option<&NSDate>,
device: Option<&HKDevice>,
metadata: Option<&NSDictionary<NSString, AnyObject>>,
) -> Retained<Self>;
);
}