objc2-ml-compute 0.3.2

Bindings to the MLCompute 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 crate::*;

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

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

#[cfg(feature = "MLCLayer")]
impl MLCActivationLayer {
    extern_methods!(
        #[cfg(feature = "MLCActivationDescriptor")]
        /// The activation descriptor
        #[deprecated]
        #[unsafe(method(descriptor))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptor(&self) -> Retained<MLCActivationDescriptor>;

        #[cfg(feature = "MLCActivationDescriptor")]
        /// Create an activation layer
        ///
        /// Parameter `descriptor`: The activation descriptor
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(layerWithDescriptor:))]
        #[unsafe(method_family = none)]
        pub unsafe fn layerWithDescriptor(descriptor: &MLCActivationDescriptor) -> Retained<Self>;

        /// Create a ReLU activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(reluLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn reluLayer() -> Retained<MLCActivationLayer>;

        /// Create a ReLU6 activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(relu6Layer))]
        #[unsafe(method_family = none)]
        pub unsafe fn relu6Layer() -> Retained<MLCActivationLayer>;

        /// Create a leaky ReLU activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(leakyReLULayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn leakyReLULayer() -> Retained<MLCActivationLayer>;

        /// Create a leaky ReLU activation layer
        ///
        /// Parameter `negativeSlope`: Controls the angle of the negative slope
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(leakyReLULayerWithNegativeSlope:))]
        #[unsafe(method_family = none)]
        pub unsafe fn leakyReLULayerWithNegativeSlope(negative_slope: c_float) -> Retained<Self>;

        /// Create a linear activation layer
        ///
        /// Parameter `scale`: The scale factor
        ///
        /// Parameter `bias`: The bias value
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(linearLayerWithScale:bias:))]
        #[unsafe(method_family = none)]
        pub unsafe fn linearLayerWithScale_bias(scale: c_float, bias: c_float) -> Retained<Self>;

        /// Create a sigmoid activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(sigmoidLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn sigmoidLayer() -> Retained<MLCActivationLayer>;

        /// Create a hard sigmoid activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(hardSigmoidLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn hardSigmoidLayer() -> Retained<MLCActivationLayer>;

        /// Create a tanh activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(tanhLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn tanhLayer() -> Retained<MLCActivationLayer>;

        /// Create an absolute activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(absoluteLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn absoluteLayer() -> Retained<MLCActivationLayer>;

        /// Create a soft plus activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(softPlusLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn softPlusLayer() -> Retained<MLCActivationLayer>;

        /// Create a soft plus activation layer
        ///
        /// Parameter `beta`: The beta value for the softplus formation
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(softPlusLayerWithBeta:))]
        #[unsafe(method_family = none)]
        pub unsafe fn softPlusLayerWithBeta(beta: c_float) -> Retained<Self>;

        /// Create a soft sign activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(softSignLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn softSignLayer() -> Retained<MLCActivationLayer>;

        /// Create an ELU activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(eluLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn eluLayer() -> Retained<MLCActivationLayer>;

        /// Create an ELU activation layer
        ///
        /// Parameter `a`: The
        /// `a`value for the ELU formation
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(eluLayerWithA:))]
        #[unsafe(method_family = none)]
        pub unsafe fn eluLayerWithA(a: c_float) -> Retained<Self>;

        /// Create a ReLUN activation layer
        ///
        /// This can be used to implement layers such as ReLU6 for example.
        ///
        /// Parameter `a`: The
        /// `a`value
        ///
        /// Parameter `b`: The
        /// `b`value
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(relunLayerWithA:b:))]
        #[unsafe(method_family = none)]
        pub unsafe fn relunLayerWithA_b(a: c_float, b: c_float) -> Retained<Self>;

        /// Create a log sigmoid activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(logSigmoidLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn logSigmoidLayer() -> Retained<MLCActivationLayer>;

        /// Create a SELU activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(seluLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn seluLayer() -> Retained<MLCActivationLayer>;

        /// Create a CELU activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(celuLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn celuLayer() -> Retained<MLCActivationLayer>;

        /// Create a CELU activation layer
        ///
        /// Parameter `a`: The
        /// `a`value for the CELU formation
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(celuLayerWithA:))]
        #[unsafe(method_family = none)]
        pub unsafe fn celuLayerWithA(a: c_float) -> Retained<Self>;

        /// Create a hard shrink activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(hardShrinkLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn hardShrinkLayer() -> Retained<MLCActivationLayer>;

        /// Create a hard shrink activation layer
        ///
        /// Parameter `a`: The
        /// `a`value for the hard shrink formation
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(hardShrinkLayerWithA:))]
        #[unsafe(method_family = none)]
        pub unsafe fn hardShrinkLayerWithA(a: c_float) -> Retained<Self>;

        /// Create a soft shrink activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(softShrinkLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn softShrinkLayer() -> Retained<MLCActivationLayer>;

        /// Create a soft shrink activation layer
        ///
        /// Parameter `a`: The
        /// `a`value for the soft shrink formation
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(softShrinkLayerWithA:))]
        #[unsafe(method_family = none)]
        pub unsafe fn softShrinkLayerWithA(a: c_float) -> Retained<Self>;

        /// Create a TanhShrink activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(tanhShrinkLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn tanhShrinkLayer() -> Retained<MLCActivationLayer>;

        /// Create a threshold activation layer
        ///
        /// Parameter `threshold`: The value to threshold at
        ///
        /// Parameter `replacement`: The value to replace with
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(thresholdLayerWithThreshold:replacement:))]
        #[unsafe(method_family = none)]
        pub unsafe fn thresholdLayerWithThreshold_replacement(
            threshold: c_float,
            replacement: c_float,
        ) -> Retained<Self>;

        /// Create a GELU activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(geluLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn geluLayer() -> Retained<MLCActivationLayer>;

        /// Create a hardswish activation layer
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(hardSwishLayer))]
        #[unsafe(method_family = none)]
        pub unsafe fn hardSwishLayer() -> Retained<MLCActivationLayer>;

        /// Create a clamp activation layer
        ///
        /// Parameter `minValue`: The minimum range used by clamp
        ///
        /// Parameter `maxValue`: The maximum range used by clamp
        ///
        /// Returns: A new activation layer
        #[deprecated]
        #[unsafe(method(clampLayerWithMinValue:maxValue:))]
        #[unsafe(method_family = none)]
        pub unsafe fn clampLayerWithMinValue_maxValue(
            min_value: c_float,
            max_value: c_float,
        ) -> Retained<Self>;
    );
}

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

        #[deprecated]
        #[unsafe(method(init))]
        #[unsafe(method_family = init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
    );
}