objc2-intents 0.3.2

Bindings to the Intents framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

extern_class!(
    /// [Apple's documentation](https://developer.apple.com/documentation/intents/incancelrideintent?language=objc)
    #[unsafe(super(INIntent, NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[cfg(feature = "INIntent")]
    pub struct INCancelRideIntent;
);

#[cfg(feature = "INIntent")]
extern_conformance!(
    unsafe impl NSCoding for INCancelRideIntent {}
);

#[cfg(feature = "INIntent")]
extern_conformance!(
    unsafe impl NSCopying for INCancelRideIntent {}
);

#[cfg(feature = "INIntent")]
unsafe impl CopyingHelper for INCancelRideIntent {
    type Result = Self;
}

#[cfg(feature = "INIntent")]
extern_conformance!(
    unsafe impl NSObjectProtocol for INCancelRideIntent {}
);

#[cfg(feature = "INIntent")]
extern_conformance!(
    unsafe impl NSSecureCoding for INCancelRideIntent {}
);

#[cfg(feature = "INIntent")]
impl INCancelRideIntent {
    extern_methods!(
        #[unsafe(method(init))]
        #[unsafe(method_family = init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[unsafe(method(initWithRideIdentifier:))]
        #[unsafe(method_family = init)]
        pub unsafe fn initWithRideIdentifier(
            this: Allocated<Self>,
            ride_identifier: &NSString,
        ) -> Retained<Self>;

        #[unsafe(method(rideIdentifier))]
        #[unsafe(method_family = none)]
        pub unsafe fn rideIdentifier(&self) -> Retained<NSString>;
    );
}

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

extern_protocol!(
    /// Protocol to declare support for handling an INCancelRideIntent. By implementing this protocol, a class can provide logic for confirming and handling the intent.
    ///
    /// The minimum requirement for an implementing class is that it should be able to confirm and handle the intent. The handling method is always called last, after confirming the intent.
    ///
    /// See also [Apple's documentation](https://developer.apple.com/documentation/intents/incancelrideintenthandling?language=objc)
    pub unsafe trait INCancelRideIntentHandling: NSObjectProtocol {
        #[cfg(all(
            feature = "INCancelRideIntentResponse",
            feature = "INIntent",
            feature = "INIntentResponse",
            feature = "block2"
        ))]
        /// Handling method - Execute the task represented by the INCancelRideIntent that's passed in
        ///
        /// Called to actually execute the intent. The app must return a response for this intent.
        ///
        ///
        /// Parameter `intent`: The input intent
        ///
        /// Parameter `completion`: The response handling block takes a INCancelRideIntentResponse containing the details of the result of having executed the intent
        ///
        ///
        /// See: INCancelRideIntentResponse
        #[unsafe(method(handleCancelRide:completion:))]
        #[unsafe(method_family = none)]
        unsafe fn handleCancelRide_completion(
            &self,
            intent: &INCancelRideIntent,
            completion: &block2::DynBlock<dyn Fn(NonNull<INCancelRideIntentResponse>)>,
        );

        #[cfg(all(
            feature = "INCancelRideIntentResponse",
            feature = "INIntent",
            feature = "INIntentResponse",
            feature = "block2"
        ))]
        /// Confirmation method - Validate that this intent is ready for the next step (i.e. handling)
        ///
        /// Called prior to asking the app to handle the intent. The app should return a response object that contains additional information about the intent, which may be relevant for the system to show the user prior to handling. If unimplemented, the system may not use the cancel ride intent.
        ///
        ///
        /// Parameter `intent`: The input intent
        ///
        /// Parameter `completion`: The response block contains an INCancelRideIntentResponse containing additional details about the intent that may be relevant for the system to show the user prior to handling.
        ///
        ///
        /// See: INCancelRideIntentResponse
        #[optional]
        #[unsafe(method(confirmCancelRide:completion:))]
        #[unsafe(method_family = none)]
        unsafe fn confirmCancelRide_completion(
            &self,
            intent: &INCancelRideIntent,
            completion: &block2::DynBlock<dyn Fn(NonNull<INCancelRideIntentResponse>)>,
        );
    }
);