use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[deprecated]
pub struct MLCOptimizer;
);
extern_conformance!(
unsafe impl NSCopying for MLCOptimizer {}
);
unsafe impl CopyingHelper for MLCOptimizer {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for MLCOptimizer {}
);
impl MLCOptimizer {
extern_methods!(
#[deprecated]
#[unsafe(method(learningRate))]
#[unsafe(method_family = none)]
pub unsafe fn learningRate(&self) -> c_float;
#[deprecated]
#[unsafe(method(setLearningRate:))]
#[unsafe(method_family = none)]
pub unsafe fn setLearningRate(&self, learning_rate: c_float);
#[deprecated]
#[unsafe(method(gradientRescale))]
#[unsafe(method_family = none)]
pub unsafe fn gradientRescale(&self) -> c_float;
#[deprecated]
#[unsafe(method(appliesGradientClipping))]
#[unsafe(method_family = none)]
pub unsafe fn appliesGradientClipping(&self) -> bool;
#[deprecated]
#[unsafe(method(setAppliesGradientClipping:))]
#[unsafe(method_family = none)]
pub unsafe fn setAppliesGradientClipping(&self, applies_gradient_clipping: bool);
#[deprecated]
#[unsafe(method(gradientClipMax))]
#[unsafe(method_family = none)]
pub unsafe fn gradientClipMax(&self) -> c_float;
#[deprecated]
#[unsafe(method(gradientClipMin))]
#[unsafe(method_family = none)]
pub unsafe fn gradientClipMin(&self) -> c_float;
#[deprecated]
#[unsafe(method(regularizationScale))]
#[unsafe(method_family = none)]
pub unsafe fn regularizationScale(&self) -> c_float;
#[cfg(feature = "MLCTypes")]
#[deprecated]
#[unsafe(method(regularizationType))]
#[unsafe(method_family = none)]
pub unsafe fn regularizationType(&self) -> MLCRegularizationType;
#[cfg(feature = "MLCTypes")]
#[unsafe(method(gradientClippingType))]
#[unsafe(method_family = none)]
pub unsafe fn gradientClippingType(&self) -> MLCGradientClippingType;
#[unsafe(method(maximumClippingNorm))]
#[unsafe(method_family = none)]
pub unsafe fn maximumClippingNorm(&self) -> c_float;
#[unsafe(method(customGlobalNorm))]
#[unsafe(method_family = none)]
pub unsafe fn customGlobalNorm(&self) -> c_float;
#[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>;
);
}