objc2_application_services/generated/HIServices/
TranslationServices.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::cell::UnsafeCell;
4use core::ffi::*;
5use core::marker::{PhantomData, PhantomPinned};
6use core::ptr::NonNull;
7#[cfg(feature = "objc2")]
8use objc2::__framework_prelude::*;
9use objc2_core_foundation::*;
10
11use crate::*;
12
13/// [Apple's documentation](https://developer.apple.com/documentation/applicationservices/translation?language=objc)
14#[doc(alias = "TranslationRef")]
15#[repr(C)]
16pub struct Translation {
17    inner: [u8; 0],
18    _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
19}
20
21cf_type!(
22    unsafe impl Translation {}
23);
24#[cfg(feature = "objc2")]
25cf_objc2_type!(
26    unsafe impl RefEncode<"OpaqueTranslationRef"> for Translation {}
27);
28
29/// [Apple's documentation](https://developer.apple.com/documentation/applicationservices/badtranslationreferr?language=objc)
30pub const badTranslationRefErr: c_int = -3031;
31
32/// [Apple's documentation](https://developer.apple.com/documentation/applicationservices/translationflags?language=objc)
33pub type TranslationFlags = OptionBits;
34
35/// [Apple's documentation](https://developer.apple.com/documentation/applicationservices/ktranslationdatatranslation?language=objc)
36pub const kTranslationDataTranslation: c_uint = 1 << 0;
37/// [Apple's documentation](https://developer.apple.com/documentation/applicationservices/ktranslationfiletranslation?language=objc)
38pub const kTranslationFileTranslation: c_uint = 1 << 1;
39
40unsafe impl ConcreteType for Translation {
41    #[doc(alias = "TranslationGetTypeID")]
42    #[inline]
43    fn type_id() -> CFTypeID {
44        extern "C-unwind" {
45            fn TranslationGetTypeID() -> CFTypeID;
46        }
47        unsafe { TranslationGetTypeID() }
48    }
49}
50
51impl Translation {
52    /// # Safety
53    ///
54    /// - `in_source_type` might not allow `None`.
55    /// - `in_destination_type` might not allow `None`.
56    /// - `out_translation` must be a valid pointer.
57    #[doc(alias = "TranslationCreate")]
58    #[inline]
59    pub unsafe fn create(
60        in_source_type: Option<&CFString>,
61        in_destination_type: Option<&CFString>,
62        in_translation_flags: TranslationFlags,
63        out_translation: *mut *mut Translation,
64    ) -> OSStatus {
65        extern "C-unwind" {
66            fn TranslationCreate(
67                in_source_type: Option<&CFString>,
68                in_destination_type: Option<&CFString>,
69                in_translation_flags: TranslationFlags,
70                out_translation: *mut *mut Translation,
71            ) -> OSStatus;
72        }
73        unsafe {
74            TranslationCreate(
75                in_source_type,
76                in_destination_type,
77                in_translation_flags,
78                out_translation,
79            )
80        }
81    }
82
83    /// # Safety
84    ///
85    /// - `in_source_types` generic must be of the correct type.
86    /// - `in_source_types` might not allow `None`.
87    /// - `out_destination_types` must be a valid pointer.
88    /// - `out_translations` must be a valid pointer.
89    #[doc(alias = "TranslationCreateWithSourceArray")]
90    #[inline]
91    pub unsafe fn create_with_source_array(
92        in_source_types: Option<&CFArray>,
93        in_translation_flags: TranslationFlags,
94        out_destination_types: *mut *const CFArray,
95        out_translations: *mut *const CFDictionary,
96    ) -> OSStatus {
97        extern "C-unwind" {
98            fn TranslationCreateWithSourceArray(
99                in_source_types: Option<&CFArray>,
100                in_translation_flags: TranslationFlags,
101                out_destination_types: *mut *const CFArray,
102                out_translations: *mut *const CFDictionary,
103            ) -> OSStatus;
104        }
105        unsafe {
106            TranslationCreateWithSourceArray(
107                in_source_types,
108                in_translation_flags,
109                out_destination_types,
110                out_translations,
111            )
112        }
113    }
114
115    /// # Safety
116    ///
117    /// - `in_source_data` might not allow `None`.
118    /// - `out_destination_data` must be a valid pointer.
119    #[doc(alias = "TranslationPerformForData")]
120    #[inline]
121    pub unsafe fn perform_for_data(
122        &self,
123        in_source_data: Option<&CFData>,
124        out_destination_data: *mut *const CFData,
125    ) -> OSStatus {
126        extern "C-unwind" {
127            fn TranslationPerformForData(
128                in_translation: &Translation,
129                in_source_data: Option<&CFData>,
130                out_destination_data: *mut *const CFData,
131            ) -> OSStatus;
132        }
133        unsafe { TranslationPerformForData(self, in_source_data, out_destination_data) }
134    }
135
136    /// # Safety
137    ///
138    /// - `in_source_url` might not allow `None`.
139    /// - `in_destination_url` might not allow `None`.
140    /// - `out_translated_url` must be a valid pointer.
141    #[doc(alias = "TranslationPerformForURL")]
142    #[inline]
143    pub unsafe fn perform_for_url(
144        &self,
145        in_source_url: Option<&CFURL>,
146        in_destination_url: Option<&CFURL>,
147        out_translated_url: *mut *const CFURL,
148    ) -> OSStatus {
149        extern "C-unwind" {
150            fn TranslationPerformForURL(
151                in_translation: &Translation,
152                in_source_url: Option<&CFURL>,
153                in_destination_url: Option<&CFURL>,
154                out_translated_url: *mut *const CFURL,
155            ) -> OSStatus;
156        }
157        unsafe {
158            TranslationPerformForURL(self, in_source_url, in_destination_url, out_translated_url)
159        }
160    }
161
162    /// # Safety
163    ///
164    /// `out_source_type` must be a valid pointer.
165    #[doc(alias = "TranslationCopySourceType")]
166    #[inline]
167    pub unsafe fn copy_source_type(&self, out_source_type: *mut *const CFString) -> OSStatus {
168        extern "C-unwind" {
169            fn TranslationCopySourceType(
170                in_translation: &Translation,
171                out_source_type: *mut *const CFString,
172            ) -> OSStatus;
173        }
174        unsafe { TranslationCopySourceType(self, out_source_type) }
175    }
176
177    /// # Safety
178    ///
179    /// `out_destination_type` must be a valid pointer.
180    #[doc(alias = "TranslationCopyDestinationType")]
181    #[inline]
182    pub unsafe fn copy_destination_type(
183        &self,
184        out_destination_type: *mut *const CFString,
185    ) -> OSStatus {
186        extern "C-unwind" {
187            fn TranslationCopyDestinationType(
188                in_translation: &Translation,
189                out_destination_type: *mut *const CFString,
190            ) -> OSStatus;
191        }
192        unsafe { TranslationCopyDestinationType(self, out_destination_type) }
193    }
194
195    /// # Safety
196    ///
197    /// `out_translation_flags` must be a valid pointer.
198    #[doc(alias = "TranslationGetTranslationFlags")]
199    #[inline]
200    pub unsafe fn translation_flags(
201        &self,
202        out_translation_flags: *mut TranslationFlags,
203    ) -> OSStatus {
204        extern "C-unwind" {
205            fn TranslationGetTranslationFlags(
206                in_translation: &Translation,
207                out_translation_flags: *mut TranslationFlags,
208            ) -> OSStatus;
209        }
210        unsafe { TranslationGetTranslationFlags(self, out_translation_flags) }
211    }
212}
213
214extern "C-unwind" {
215    #[deprecated = "renamed to `Translation::create`"]
216    pub fn TranslationCreate(
217        in_source_type: Option<&CFString>,
218        in_destination_type: Option<&CFString>,
219        in_translation_flags: TranslationFlags,
220        out_translation: *mut *mut Translation,
221    ) -> OSStatus;
222}
223
224extern "C-unwind" {
225    #[deprecated = "renamed to `Translation::create_with_source_array`"]
226    pub fn TranslationCreateWithSourceArray(
227        in_source_types: Option<&CFArray>,
228        in_translation_flags: TranslationFlags,
229        out_destination_types: *mut *const CFArray,
230        out_translations: *mut *const CFDictionary,
231    ) -> OSStatus;
232}
233
234extern "C-unwind" {
235    #[deprecated = "renamed to `Translation::perform_for_data`"]
236    pub fn TranslationPerformForData(
237        in_translation: &Translation,
238        in_source_data: Option<&CFData>,
239        out_destination_data: *mut *const CFData,
240    ) -> OSStatus;
241}
242
243extern "C-unwind" {
244    #[deprecated = "renamed to `Translation::perform_for_url`"]
245    pub fn TranslationPerformForURL(
246        in_translation: &Translation,
247        in_source_url: Option<&CFURL>,
248        in_destination_url: Option<&CFURL>,
249        out_translated_url: *mut *const CFURL,
250    ) -> OSStatus;
251}
252
253extern "C-unwind" {
254    #[deprecated = "renamed to `Translation::copy_source_type`"]
255    pub fn TranslationCopySourceType(
256        in_translation: &Translation,
257        out_source_type: *mut *const CFString,
258    ) -> OSStatus;
259}
260
261extern "C-unwind" {
262    #[deprecated = "renamed to `Translation::copy_destination_type`"]
263    pub fn TranslationCopyDestinationType(
264        in_translation: &Translation,
265        out_destination_type: *mut *const CFString,
266    ) -> OSStatus;
267}
268
269extern "C-unwind" {
270    #[deprecated = "renamed to `Translation::translation_flags`"]
271    pub fn TranslationGetTranslationFlags(
272        in_translation: &Translation,
273        out_translation_flags: *mut TranslationFlags,
274    ) -> OSStatus;
275}