objc2-core-ml 0.3.2

Bindings to the CoreML 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!(
    /// Main class for setting up and controlling a model update. It provides some utility class methods for performing an update synchronously as well as class constructors for configuring an update and give developers control for the execution of that update.
    ///
    /// See also [Apple's documentation](https://developer.apple.com/documentation/coreml/mlupdatetask?language=objc)
    #[unsafe(super(MLTask, NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[cfg(feature = "MLTask")]
    pub struct MLUpdateTask;
);

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

#[cfg(feature = "MLTask")]
impl MLUpdateTask {
    extern_methods!(
        #[cfg(all(
            feature = "MLBatchProvider",
            feature = "MLModelConfiguration",
            feature = "MLUpdateContext",
            feature = "block2"
        ))]
        #[unsafe(method(updateTaskForModelAtURL:trainingData:configuration:completionHandler:error:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn updateTaskForModelAtURL_trainingData_configuration_completionHandler_error(
            model_url: &NSURL,
            training_data: &ProtocolObject<dyn MLBatchProvider>,
            configuration: Option<&MLModelConfiguration>,
            completion_handler: &block2::DynBlock<dyn Fn(NonNull<MLUpdateContext>)>,
        ) -> Result<Retained<Self>, Retained<NSError>>;

        #[cfg(all(
            feature = "MLBatchProvider",
            feature = "MLUpdateContext",
            feature = "block2"
        ))]
        #[unsafe(method(updateTaskForModelAtURL:trainingData:completionHandler:error:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn updateTaskForModelAtURL_trainingData_completionHandler_error(
            model_url: &NSURL,
            training_data: &ProtocolObject<dyn MLBatchProvider>,
            completion_handler: &block2::DynBlock<dyn Fn(NonNull<MLUpdateContext>)>,
        ) -> Result<Retained<Self>, Retained<NSError>>;

        #[cfg(all(
            feature = "MLBatchProvider",
            feature = "MLModelConfiguration",
            feature = "MLUpdateProgressHandlers"
        ))]
        #[unsafe(method(updateTaskForModelAtURL:trainingData:configuration:progressHandlers:error:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn updateTaskForModelAtURL_trainingData_configuration_progressHandlers_error(
            model_url: &NSURL,
            training_data: &ProtocolObject<dyn MLBatchProvider>,
            configuration: Option<&MLModelConfiguration>,
            progress_handlers: &MLUpdateProgressHandlers,
        ) -> Result<Retained<Self>, Retained<NSError>>;

        #[cfg(all(feature = "MLBatchProvider", feature = "MLUpdateProgressHandlers"))]
        #[unsafe(method(updateTaskForModelAtURL:trainingData:progressHandlers:error:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn updateTaskForModelAtURL_trainingData_progressHandlers_error(
            model_url: &NSURL,
            training_data: &ProtocolObject<dyn MLBatchProvider>,
            progress_handlers: &MLUpdateProgressHandlers,
        ) -> Result<Retained<Self>, Retained<NSError>>;

        #[cfg(all(feature = "MLKey", feature = "MLParameterKey"))]
        /// # Safety
        ///
        /// `update_parameters` generic should be of the correct type.
        #[unsafe(method(resumeWithParameters:))]
        #[unsafe(method_family = none)]
        pub unsafe fn resumeWithParameters(
            &self,
            update_parameters: &NSDictionary<MLParameterKey, AnyObject>,
        );

        #[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>;
    );
}