objc2_core_graphics/generated/
CGPSConverter.rs1use 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#[doc(alias = "CGPSConverterRef")]
15#[repr(C)]
16pub struct CGPSConverter {
17 inner: [u8; 0],
18 _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
19}
20
21cf_type!(
22 unsafe impl CGPSConverter {}
23);
24#[cfg(feature = "objc2")]
25cf_objc2_type!(
26 unsafe impl RefEncode<"CGPSConverter"> for CGPSConverter {}
27);
28
29pub type CGPSConverterBeginDocumentCallback = Option<unsafe extern "C-unwind" fn(*mut c_void)>;
31
32pub type CGPSConverterEndDocumentCallback = Option<unsafe extern "C-unwind" fn(*mut c_void, bool)>;
34
35pub type CGPSConverterBeginPageCallback =
37 Option<unsafe extern "C-unwind" fn(*mut c_void, usize, NonNull<CFDictionary>)>;
38
39pub type CGPSConverterEndPageCallback =
41 Option<unsafe extern "C-unwind" fn(*mut c_void, usize, NonNull<CFDictionary>)>;
42
43pub type CGPSConverterProgressCallback = Option<unsafe extern "C-unwind" fn(*mut c_void)>;
45
46pub type CGPSConverterMessageCallback =
48 Option<unsafe extern "C-unwind" fn(*mut c_void, NonNull<CFString>)>;
49
50pub type CGPSConverterReleaseInfoCallback = Option<unsafe extern "C-unwind" fn(*mut c_void)>;
52
53#[repr(C)]
55#[allow(unpredictable_function_pointer_comparisons)]
56#[derive(Clone, Copy, Debug, PartialEq)]
57pub struct CGPSConverterCallbacks {
58 pub version: c_uint,
59 pub beginDocument: CGPSConverterBeginDocumentCallback,
60 pub endDocument: CGPSConverterEndDocumentCallback,
61 pub beginPage: CGPSConverterBeginPageCallback,
62 pub endPage: CGPSConverterEndPageCallback,
63 pub noteProgress: CGPSConverterProgressCallback,
64 pub noteMessage: CGPSConverterMessageCallback,
65 pub releaseInfo: CGPSConverterReleaseInfoCallback,
66}
67
68#[cfg(feature = "objc2")]
69unsafe impl Encode for CGPSConverterCallbacks {
70 const ENCODING: Encoding = Encoding::Struct(
71 "CGPSConverterCallbacks",
72 &[
73 <c_uint>::ENCODING,
74 <CGPSConverterBeginDocumentCallback>::ENCODING,
75 Encoding::Pointer(&Encoding::Unknown),
76 <CGPSConverterBeginPageCallback>::ENCODING,
77 <CGPSConverterEndPageCallback>::ENCODING,
78 <CGPSConverterProgressCallback>::ENCODING,
79 <CGPSConverterMessageCallback>::ENCODING,
80 <CGPSConverterReleaseInfoCallback>::ENCODING,
81 ],
82 );
83}
84
85#[cfg(feature = "objc2")]
86unsafe impl RefEncode for CGPSConverterCallbacks {
87 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
88}
89
90impl CGPSConverter {
91 #[doc(alias = "CGPSConverterCreate")]
97 #[inline]
98 pub unsafe fn new(
99 info: *mut c_void,
100 callbacks: NonNull<CGPSConverterCallbacks>,
101 options: Option<&CFDictionary>,
102 ) -> Option<CFRetained<CGPSConverter>> {
103 extern "C-unwind" {
104 fn CGPSConverterCreate(
105 info: *mut c_void,
106 callbacks: NonNull<CGPSConverterCallbacks>,
107 options: Option<&CFDictionary>,
108 ) -> Option<NonNull<CGPSConverter>>;
109 }
110 let ret = unsafe { CGPSConverterCreate(info, callbacks, options) };
111 ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
112 }
113
114 #[doc(alias = "CGPSConverterConvert")]
118 #[cfg(all(feature = "CGDataConsumer", feature = "CGDataProvider"))]
119 #[inline]
120 pub unsafe fn convert(
121 &self,
122 provider: &CGDataProvider,
123 consumer: &CGDataConsumer,
124 options: Option<&CFDictionary>,
125 ) -> bool {
126 extern "C-unwind" {
127 fn CGPSConverterConvert(
128 converter: &CGPSConverter,
129 provider: &CGDataProvider,
130 consumer: &CGDataConsumer,
131 options: Option<&CFDictionary>,
132 ) -> bool;
133 }
134 unsafe { CGPSConverterConvert(self, provider, consumer, options) }
135 }
136
137 #[doc(alias = "CGPSConverterAbort")]
138 #[inline]
139 pub fn abort(&self) -> bool {
140 extern "C-unwind" {
141 fn CGPSConverterAbort(converter: &CGPSConverter) -> bool;
142 }
143 unsafe { CGPSConverterAbort(self) }
144 }
145
146 #[doc(alias = "CGPSConverterIsConverting")]
147 #[inline]
148 pub fn is_converting(&self) -> bool {
149 extern "C-unwind" {
150 fn CGPSConverterIsConverting(converter: &CGPSConverter) -> bool;
151 }
152 unsafe { CGPSConverterIsConverting(self) }
153 }
154}
155
156unsafe impl ConcreteType for CGPSConverter {
157 #[doc(alias = "CGPSConverterGetTypeID")]
158 #[inline]
159 fn type_id() -> CFTypeID {
160 extern "C-unwind" {
161 fn CGPSConverterGetTypeID() -> CFTypeID;
162 }
163 unsafe { CGPSConverterGetTypeID() }
164 }
165}
166
167#[deprecated = "renamed to `CGPSConverter::new`"]
168#[inline]
169pub unsafe extern "C-unwind" fn CGPSConverterCreate(
170 info: *mut c_void,
171 callbacks: NonNull<CGPSConverterCallbacks>,
172 options: Option<&CFDictionary>,
173) -> Option<CFRetained<CGPSConverter>> {
174 extern "C-unwind" {
175 fn CGPSConverterCreate(
176 info: *mut c_void,
177 callbacks: NonNull<CGPSConverterCallbacks>,
178 options: Option<&CFDictionary>,
179 ) -> Option<NonNull<CGPSConverter>>;
180 }
181 let ret = unsafe { CGPSConverterCreate(info, callbacks, options) };
182 ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
183}
184
185extern "C-unwind" {
186 #[cfg(all(feature = "CGDataConsumer", feature = "CGDataProvider"))]
187 #[deprecated = "renamed to `CGPSConverter::convert`"]
188 pub fn CGPSConverterConvert(
189 converter: &CGPSConverter,
190 provider: &CGDataProvider,
191 consumer: &CGDataConsumer,
192 options: Option<&CFDictionary>,
193 ) -> bool;
194}
195
196#[deprecated = "renamed to `CGPSConverter::abort`"]
197#[inline]
198pub extern "C-unwind" fn CGPSConverterAbort(converter: &CGPSConverter) -> bool {
199 extern "C-unwind" {
200 fn CGPSConverterAbort(converter: &CGPSConverter) -> bool;
201 }
202 unsafe { CGPSConverterAbort(converter) }
203}
204
205#[deprecated = "renamed to `CGPSConverter::is_converting`"]
206#[inline]
207pub extern "C-unwind" fn CGPSConverterIsConverting(converter: &CGPSConverter) -> bool {
208 extern "C-unwind" {
209 fn CGPSConverterIsConverting(converter: &CGPSConverter) -> bool;
210 }
211 unsafe { CGPSConverterIsConverting(converter) }
212}