objc2_core_ml/generated/
MLModelConfiguration.rs1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7#[cfg(feature = "objc2-metal")]
8#[cfg(not(target_os = "watchos"))]
9use objc2_metal::*;
10
11use crate::*;
12
13#[repr(transparent)]
16#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
17pub struct MLComputeUnits(pub NSInteger);
18impl MLComputeUnits {
19 #[doc(alias = "MLComputeUnitsCPUOnly")]
20 pub const CPUOnly: Self = Self(0);
21 #[doc(alias = "MLComputeUnitsCPUAndGPU")]
22 pub const CPUAndGPU: Self = Self(1);
23 #[doc(alias = "MLComputeUnitsAll")]
24 pub const All: Self = Self(2);
25 #[doc(alias = "MLComputeUnitsCPUAndNeuralEngine")]
26 pub const CPUAndNeuralEngine: Self = Self(3);
27}
28
29unsafe impl Encode for MLComputeUnits {
30 const ENCODING: Encoding = NSInteger::ENCODING;
31}
32
33unsafe impl RefEncode for MLComputeUnits {
34 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
35}
36
37extern_class!(
38 #[unsafe(super(NSObject))]
42 #[derive(Debug, PartialEq, Eq, Hash)]
43 pub struct MLModelConfiguration;
44);
45
46extern_conformance!(
47 unsafe impl NSCoding for MLModelConfiguration {}
48);
49
50extern_conformance!(
51 unsafe impl NSCopying for MLModelConfiguration {}
52);
53
54unsafe impl CopyingHelper for MLModelConfiguration {
55 type Result = Self;
56}
57
58extern_conformance!(
59 unsafe impl NSObjectProtocol for MLModelConfiguration {}
60);
61
62extern_conformance!(
63 unsafe impl NSSecureCoding for MLModelConfiguration {}
64);
65
66impl MLModelConfiguration {
67 extern_methods!(
68 #[unsafe(method(modelDisplayName))]
78 #[unsafe(method_family = none)]
79 pub unsafe fn modelDisplayName(&self) -> Option<Retained<NSString>>;
80
81 #[unsafe(method(setModelDisplayName:))]
85 #[unsafe(method_family = none)]
86 pub unsafe fn setModelDisplayName(&self, model_display_name: Option<&NSString>);
87
88 #[unsafe(method(computeUnits))]
89 #[unsafe(method_family = none)]
90 pub unsafe fn computeUnits(&self) -> MLComputeUnits;
91
92 #[unsafe(method(setComputeUnits:))]
94 #[unsafe(method_family = none)]
95 pub unsafe fn setComputeUnits(&self, compute_units: MLComputeUnits);
96
97 #[cfg(feature = "MLOptimizationHints")]
98 #[unsafe(method(optimizationHints))]
100 #[unsafe(method_family = none)]
101 pub unsafe fn optimizationHints(&self) -> Retained<MLOptimizationHints>;
102
103 #[cfg(feature = "MLOptimizationHints")]
104 #[unsafe(method(setOptimizationHints:))]
108 #[unsafe(method_family = none)]
109 pub unsafe fn setOptimizationHints(&self, optimization_hints: &MLOptimizationHints);
110 );
111}
112
113impl MLModelConfiguration {
115 extern_methods!(
116 #[unsafe(method(init))]
117 #[unsafe(method_family = init)]
118 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
119
120 #[unsafe(method(new))]
121 #[unsafe(method_family = new)]
122 pub unsafe fn new() -> Retained<Self>;
123 );
124}
125
126impl MLModelConfiguration {
130 extern_methods!(
131 #[unsafe(method(allowLowPrecisionAccumulationOnGPU))]
133 #[unsafe(method_family = none)]
134 pub unsafe fn allowLowPrecisionAccumulationOnGPU(&self) -> bool;
135
136 #[unsafe(method(setAllowLowPrecisionAccumulationOnGPU:))]
138 #[unsafe(method_family = none)]
139 pub unsafe fn setAllowLowPrecisionAccumulationOnGPU(
140 &self,
141 allow_low_precision_accumulation_on_gpu: bool,
142 );
143
144 #[cfg(feature = "objc2-metal")]
145 #[cfg(not(target_os = "watchos"))]
146 #[unsafe(method(preferredMetalDevice))]
148 #[unsafe(method_family = none)]
149 pub unsafe fn preferredMetalDevice(
150 &self,
151 ) -> Option<Retained<ProtocolObject<dyn MTLDevice>>>;
152
153 #[cfg(feature = "objc2-metal")]
154 #[cfg(not(target_os = "watchos"))]
155 #[unsafe(method(setPreferredMetalDevice:))]
157 #[unsafe(method_family = none)]
158 pub unsafe fn setPreferredMetalDevice(
159 &self,
160 preferred_metal_device: Option<&ProtocolObject<dyn MTLDevice>>,
161 );
162 );
163}
164
165impl MLModelConfiguration {
169 extern_methods!(
170 #[cfg(all(feature = "MLKey", feature = "MLParameterKey"))]
171 #[unsafe(method(parameters))]
172 #[unsafe(method_family = none)]
173 pub unsafe fn parameters(
174 &self,
175 ) -> Option<Retained<NSDictionary<MLParameterKey, AnyObject>>>;
176
177 #[cfg(all(feature = "MLKey", feature = "MLParameterKey"))]
178 #[unsafe(method(setParameters:))]
184 #[unsafe(method_family = none)]
185 pub unsafe fn setParameters(
186 &self,
187 parameters: Option<&NSDictionary<MLParameterKey, AnyObject>>,
188 );
189 );
190}
191
192impl MLModelConfiguration {
194 extern_methods!(
195 #[unsafe(method(functionName))]
206 #[unsafe(method_family = none)]
207 pub unsafe fn functionName(&self) -> Option<Retained<NSString>>;
208
209 #[unsafe(method(setFunctionName:))]
213 #[unsafe(method_family = none)]
214 pub unsafe fn setFunctionName(&self, function_name: Option<&NSString>);
215 );
216}