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:))]
83 #[unsafe(method_family = none)]
84 pub unsafe fn setModelDisplayName(&self, model_display_name: Option<&NSString>);
85
86 #[unsafe(method(computeUnits))]
87 #[unsafe(method_family = none)]
88 pub unsafe fn computeUnits(&self) -> MLComputeUnits;
89
90 #[unsafe(method(setComputeUnits:))]
92 #[unsafe(method_family = none)]
93 pub unsafe fn setComputeUnits(&self, compute_units: MLComputeUnits);
94
95 #[cfg(feature = "MLOptimizationHints")]
96 #[unsafe(method(optimizationHints))]
98 #[unsafe(method_family = none)]
99 pub unsafe fn optimizationHints(&self) -> Retained<MLOptimizationHints>;
100
101 #[cfg(feature = "MLOptimizationHints")]
102 #[unsafe(method(setOptimizationHints:))]
104 #[unsafe(method_family = none)]
105 pub unsafe fn setOptimizationHints(&self, optimization_hints: &MLOptimizationHints);
106 );
107}
108
109impl MLModelConfiguration {
111 extern_methods!(
112 #[unsafe(method(init))]
113 #[unsafe(method_family = init)]
114 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
115
116 #[unsafe(method(new))]
117 #[unsafe(method_family = new)]
118 pub unsafe fn new() -> Retained<Self>;
119 );
120}
121
122impl MLModelConfiguration {
125 extern_methods!(
126 #[unsafe(method(allowLowPrecisionAccumulationOnGPU))]
128 #[unsafe(method_family = none)]
129 pub unsafe fn allowLowPrecisionAccumulationOnGPU(&self) -> bool;
130
131 #[unsafe(method(setAllowLowPrecisionAccumulationOnGPU:))]
133 #[unsafe(method_family = none)]
134 pub unsafe fn setAllowLowPrecisionAccumulationOnGPU(
135 &self,
136 allow_low_precision_accumulation_on_gpu: bool,
137 );
138
139 #[cfg(feature = "objc2-metal")]
140 #[cfg(not(target_os = "watchos"))]
141 #[unsafe(method(preferredMetalDevice))]
143 #[unsafe(method_family = none)]
144 pub unsafe fn preferredMetalDevice(
145 &self,
146 ) -> Option<Retained<ProtocolObject<dyn MTLDevice>>>;
147
148 #[cfg(feature = "objc2-metal")]
149 #[cfg(not(target_os = "watchos"))]
150 #[unsafe(method(setPreferredMetalDevice:))]
152 #[unsafe(method_family = none)]
153 pub unsafe fn setPreferredMetalDevice(
154 &self,
155 preferred_metal_device: Option<&ProtocolObject<dyn MTLDevice>>,
156 );
157 );
158}
159
160impl MLModelConfiguration {
163 extern_methods!(
164 #[cfg(all(feature = "MLKey", feature = "MLParameterKey"))]
165 #[unsafe(method(parameters))]
166 #[unsafe(method_family = none)]
167 pub unsafe fn parameters(
168 &self,
169 ) -> Option<Retained<NSDictionary<MLParameterKey, AnyObject>>>;
170
171 #[cfg(all(feature = "MLKey", feature = "MLParameterKey"))]
172 #[unsafe(method(setParameters:))]
174 #[unsafe(method_family = none)]
175 pub unsafe fn setParameters(
176 &self,
177 parameters: Option<&NSDictionary<MLParameterKey, AnyObject>>,
178 );
179 );
180}
181
182impl MLModelConfiguration {
184 extern_methods!(
185 #[unsafe(method(functionName))]
196 #[unsafe(method_family = none)]
197 pub unsafe fn functionName(&self) -> Option<Retained<NSString>>;
198
199 #[unsafe(method(setFunctionName:))]
201 #[unsafe(method_family = none)]
202 pub unsafe fn setFunctionName(&self, function_name: Option<&NSString>);
203 );
204}