icrate 0.1.2

Bindings to Apple's frameworks
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use crate::common::*;
use crate::CoreLocation::*;
use crate::Foundation::*;
use crate::HealthKit::*;
use crate::UniformTypeIdentifiers::*;

ns_enum!(
    #[underlying(NSInteger)]
    pub enum HKWorkoutSessionState {
        HKWorkoutSessionStateNotStarted = 1,
        HKWorkoutSessionStateRunning = 2,
        HKWorkoutSessionStateEnded = 3,
        HKWorkoutSessionStatePaused = 4,
        HKWorkoutSessionStatePrepared = 5,
        HKWorkoutSessionStateStopped = 6,
    }
);

ns_enum!(
    #[underlying(NSInteger)]
    pub enum HKWorkoutSessionType {
        HKWorkoutSessionTypePrimary = 0,
        HKWorkoutSessionTypeMirrored = 1,
    }
);

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[cfg(feature = "HealthKit_HKWorkoutSession")]
    pub struct HKWorkoutSession;

    #[cfg(feature = "HealthKit_HKWorkoutSession")]
    unsafe impl ClassType for HKWorkoutSession {
        type Super = NSObject;
        type Mutability = InteriorMutable;
    }
);

#[cfg(feature = "HealthKit_HKWorkoutSession")]
unsafe impl NSCoding for HKWorkoutSession {}

#[cfg(feature = "HealthKit_HKWorkoutSession")]
unsafe impl NSObjectProtocol for HKWorkoutSession {}

#[cfg(feature = "HealthKit_HKWorkoutSession")]
unsafe impl NSSecureCoding for HKWorkoutSession {}

extern_methods!(
    #[cfg(feature = "HealthKit_HKWorkoutSession")]
    unsafe impl HKWorkoutSession {
        #[deprecated]
        #[method(activityType)]
        pub unsafe fn activityType(&self) -> HKWorkoutActivityType;

        #[deprecated]
        #[method(locationType)]
        pub unsafe fn locationType(&self) -> HKWorkoutSessionLocationType;

        #[cfg(feature = "HealthKit_HKWorkoutConfiguration")]
        #[method_id(@__retain_semantics Other workoutConfiguration)]
        pub unsafe fn workoutConfiguration(&self) -> Id<HKWorkoutConfiguration>;

        #[method_id(@__retain_semantics Other delegate)]
        pub unsafe fn delegate(&self) -> Option<Id<ProtocolObject<dyn HKWorkoutSessionDelegate>>>;

        #[method(setDelegate:)]
        pub unsafe fn setDelegate(
            &self,
            delegate: Option<&ProtocolObject<dyn HKWorkoutSessionDelegate>>,
        );

        #[method(state)]
        pub unsafe fn state(&self) -> HKWorkoutSessionState;

        #[method(type)]
        pub unsafe fn r#type(&self) -> HKWorkoutSessionType;

        #[cfg(feature = "Foundation_NSDate")]
        #[method_id(@__retain_semantics Other startDate)]
        pub unsafe fn startDate(&self) -> Option<Id<NSDate>>;

        #[cfg(feature = "Foundation_NSDate")]
        #[method_id(@__retain_semantics Other endDate)]
        pub unsafe fn endDate(&self) -> Option<Id<NSDate>>;

        #[cfg(feature = "HealthKit_HKWorkoutActivity")]
        #[method_id(@__retain_semantics Other currentActivity)]
        pub unsafe fn currentActivity(&self) -> Id<HKWorkoutActivity>;

        #[deprecated]
        #[method_id(@__retain_semantics Init initWithActivityType:locationType:)]
        pub unsafe fn initWithActivityType_locationType(
            this: Allocated<Self>,
            activity_type: HKWorkoutActivityType,
            location_type: HKWorkoutSessionLocationType,
        ) -> Id<Self>;

        #[cfg(all(
            feature = "Foundation_NSError",
            feature = "HealthKit_HKWorkoutConfiguration"
        ))]
        #[deprecated]
        #[method_id(@__retain_semantics Init initWithConfiguration:error:_)]
        pub unsafe fn initWithConfiguration_error(
            this: Allocated<Self>,
            workout_configuration: &HKWorkoutConfiguration,
        ) -> Result<Id<Self>, Id<NSError>>;

        #[cfg(all(
            feature = "Foundation_NSError",
            feature = "HealthKit_HKHealthStore",
            feature = "HealthKit_HKWorkoutConfiguration"
        ))]
        #[method_id(@__retain_semantics Init initWithHealthStore:configuration:error:_)]
        pub unsafe fn initWithHealthStore_configuration_error(
            this: Allocated<Self>,
            health_store: &HKHealthStore,
            workout_configuration: &HKWorkoutConfiguration,
        ) -> Result<Id<Self>, Id<NSError>>;

        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;

        #[method(prepare)]
        pub unsafe fn prepare(&self);

        #[cfg(feature = "Foundation_NSDate")]
        #[method(startActivityWithDate:)]
        pub unsafe fn startActivityWithDate(&self, date: Option<&NSDate>);

        #[cfg(feature = "Foundation_NSDate")]
        #[method(stopActivityWithDate:)]
        pub unsafe fn stopActivityWithDate(&self, date: Option<&NSDate>);

        #[method(end)]
        pub unsafe fn end(&self);

        #[method(pause)]
        pub unsafe fn pause(&self);

        #[method(resume)]
        pub unsafe fn resume(&self);

        #[cfg(feature = "HealthKit_HKLiveWorkoutBuilder")]
        #[method_id(@__retain_semantics Other associatedWorkoutBuilder)]
        pub unsafe fn associatedWorkoutBuilder(&self) -> Id<HKLiveWorkoutBuilder>;

        #[cfg(all(
            feature = "Foundation_NSDate",
            feature = "Foundation_NSDictionary",
            feature = "Foundation_NSString",
            feature = "HealthKit_HKWorkoutConfiguration"
        ))]
        #[method(beginNewActivityWithConfiguration:date:metadata:)]
        pub unsafe fn beginNewActivityWithConfiguration_date_metadata(
            &self,
            workout_configuration: &HKWorkoutConfiguration,
            date: &NSDate,
            metadata: Option<&NSDictionary<NSString, AnyObject>>,
        );

        #[cfg(feature = "Foundation_NSDate")]
        #[method(endCurrentActivityOnDate:)]
        pub unsafe fn endCurrentActivityOnDate(&self, date: &NSDate);

        #[cfg(feature = "Foundation_NSError")]
        #[method(startMirroringToCompanionDeviceWithCompletion:)]
        pub unsafe fn startMirroringToCompanionDeviceWithCompletion(
            &self,
            completion: &Block<(Bool, *mut NSError), ()>,
        );

        #[cfg(feature = "Foundation_NSError")]
        #[method(stopMirroringToCompanionDeviceWithCompletion:)]
        pub unsafe fn stopMirroringToCompanionDeviceWithCompletion(
            &self,
            completion: &Block<(Bool, *mut NSError), ()>,
        );

        #[cfg(all(feature = "Foundation_NSData", feature = "Foundation_NSError"))]
        #[method(sendDataToRemoteWorkoutSession:completion:)]
        pub unsafe fn sendDataToRemoteWorkoutSession_completion(
            &self,
            data: &NSData,
            completion: &Block<(Bool, *mut NSError), ()>,
        );
    }
);

extern_methods!(
    /// Methods declared on superclass `NSObject`
    #[cfg(feature = "HealthKit_HKWorkoutSession")]
    unsafe impl HKWorkoutSession {
        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new() -> Id<Self>;
    }
);

extern_protocol!(
    pub unsafe trait HKWorkoutSessionDelegate: NSObjectProtocol {
        #[cfg(all(feature = "Foundation_NSDate", feature = "HealthKit_HKWorkoutSession"))]
        #[method(workoutSession:didChangeToState:fromState:date:)]
        unsafe fn workoutSession_didChangeToState_fromState_date(
            &self,
            workout_session: &HKWorkoutSession,
            to_state: HKWorkoutSessionState,
            from_state: HKWorkoutSessionState,
            date: &NSDate,
        );

        #[cfg(all(feature = "Foundation_NSError", feature = "HealthKit_HKWorkoutSession"))]
        #[method(workoutSession:didFailWithError:)]
        unsafe fn workoutSession_didFailWithError(
            &self,
            workout_session: &HKWorkoutSession,
            error: &NSError,
        );

        #[cfg(all(
            feature = "HealthKit_HKWorkoutEvent",
            feature = "HealthKit_HKWorkoutSession"
        ))]
        #[optional]
        #[method(workoutSession:didGenerateEvent:)]
        unsafe fn workoutSession_didGenerateEvent(
            &self,
            workout_session: &HKWorkoutSession,
            event: &HKWorkoutEvent,
        );

        #[cfg(all(
            feature = "Foundation_NSDate",
            feature = "HealthKit_HKWorkoutConfiguration",
            feature = "HealthKit_HKWorkoutSession"
        ))]
        #[optional]
        #[method(workoutSession:didBeginActivityWithConfiguration:date:)]
        unsafe fn workoutSession_didBeginActivityWithConfiguration_date(
            &self,
            workout_session: &HKWorkoutSession,
            workout_configuration: &HKWorkoutConfiguration,
            date: &NSDate,
        );

        #[cfg(all(
            feature = "Foundation_NSDate",
            feature = "HealthKit_HKWorkoutConfiguration",
            feature = "HealthKit_HKWorkoutSession"
        ))]
        #[optional]
        #[method(workoutSession:didEndActivityWithConfiguration:date:)]
        unsafe fn workoutSession_didEndActivityWithConfiguration_date(
            &self,
            workout_session: &HKWorkoutSession,
            workout_configuration: &HKWorkoutConfiguration,
            date: &NSDate,
        );

        #[cfg(all(
            feature = "Foundation_NSArray",
            feature = "Foundation_NSData",
            feature = "HealthKit_HKWorkoutSession"
        ))]
        #[optional]
        #[method(workoutSession:didReceiveDataFromRemoteWorkoutSession:)]
        unsafe fn workoutSession_didReceiveDataFromRemoteWorkoutSession(
            &self,
            workout_session: &HKWorkoutSession,
            data: &NSArray<NSData>,
        );

        #[cfg(all(feature = "Foundation_NSError", feature = "HealthKit_HKWorkoutSession"))]
        #[optional]
        #[method(workoutSession:didDisconnectFromRemoteDeviceWithError:)]
        unsafe fn workoutSession_didDisconnectFromRemoteDeviceWithError(
            &self,
            workout_session: &HKWorkoutSession,
            error: Option<&NSError>,
        );
    }

    unsafe impl ProtocolType for dyn HKWorkoutSessionDelegate {}
);