objc2_core_graphics/generated/
CGDataConsumer.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 = "CGDataConsumerRef")]
15#[repr(C)]
16pub struct CGDataConsumer {
17 inner: [u8; 0],
18 _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
19}
20
21cf_type!(
22 unsafe impl CGDataConsumer {}
23);
24#[cfg(feature = "objc2")]
25cf_objc2_type!(
26 unsafe impl RefEncode<"CGDataConsumer"> for CGDataConsumer {}
27);
28
29pub type CGDataConsumerPutBytesCallback =
31 Option<unsafe extern "C-unwind" fn(*mut c_void, NonNull<c_void>, usize) -> usize>;
32
33pub type CGDataConsumerReleaseInfoCallback = Option<unsafe extern "C-unwind" fn(*mut c_void)>;
35
36#[repr(C)]
38#[allow(unpredictable_function_pointer_comparisons)]
39#[derive(Clone, Copy, Debug, PartialEq)]
40pub struct CGDataConsumerCallbacks {
41 pub putBytes: CGDataConsumerPutBytesCallback,
42 pub releaseConsumer: CGDataConsumerReleaseInfoCallback,
43}
44
45#[cfg(feature = "objc2")]
46unsafe impl Encode for CGDataConsumerCallbacks {
47 const ENCODING: Encoding = Encoding::Struct(
48 "CGDataConsumerCallbacks",
49 &[
50 <CGDataConsumerPutBytesCallback>::ENCODING,
51 <CGDataConsumerReleaseInfoCallback>::ENCODING,
52 ],
53 );
54}
55
56#[cfg(feature = "objc2")]
57unsafe impl RefEncode for CGDataConsumerCallbacks {
58 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
59}
60
61unsafe impl ConcreteType for CGDataConsumer {
62 #[doc(alias = "CGDataConsumerGetTypeID")]
63 #[inline]
64 fn type_id() -> CFTypeID {
65 extern "C-unwind" {
66 fn CGDataConsumerGetTypeID() -> CFTypeID;
67 }
68 unsafe { CGDataConsumerGetTypeID() }
69 }
70}
71
72impl CGDataConsumer {
73 #[doc(alias = "CGDataConsumerCreate")]
78 #[inline]
79 pub unsafe fn new(
80 info: *mut c_void,
81 cbks: *const CGDataConsumerCallbacks,
82 ) -> Option<CFRetained<CGDataConsumer>> {
83 extern "C-unwind" {
84 fn CGDataConsumerCreate(
85 info: *mut c_void,
86 cbks: *const CGDataConsumerCallbacks,
87 ) -> Option<NonNull<CGDataConsumer>>;
88 }
89 let ret = unsafe { CGDataConsumerCreate(info, cbks) };
90 ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
91 }
92
93 #[doc(alias = "CGDataConsumerCreateWithURL")]
94 #[inline]
95 pub fn with_url(url: Option<&CFURL>) -> Option<CFRetained<CGDataConsumer>> {
96 extern "C-unwind" {
97 fn CGDataConsumerCreateWithURL(url: Option<&CFURL>) -> Option<NonNull<CGDataConsumer>>;
98 }
99 let ret = unsafe { CGDataConsumerCreateWithURL(url) };
100 ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
101 }
102
103 #[doc(alias = "CGDataConsumerCreateWithCFData")]
104 #[inline]
105 pub fn with_cf_data(data: Option<&CFMutableData>) -> Option<CFRetained<CGDataConsumer>> {
106 extern "C-unwind" {
107 fn CGDataConsumerCreateWithCFData(
108 data: Option<&CFMutableData>,
109 ) -> Option<NonNull<CGDataConsumer>>;
110 }
111 let ret = unsafe { CGDataConsumerCreateWithCFData(data) };
112 ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
113 }
114}
115
116#[deprecated = "renamed to `CGDataConsumer::new`"]
117#[inline]
118pub unsafe extern "C-unwind" fn CGDataConsumerCreate(
119 info: *mut c_void,
120 cbks: *const CGDataConsumerCallbacks,
121) -> Option<CFRetained<CGDataConsumer>> {
122 extern "C-unwind" {
123 fn CGDataConsumerCreate(
124 info: *mut c_void,
125 cbks: *const CGDataConsumerCallbacks,
126 ) -> Option<NonNull<CGDataConsumer>>;
127 }
128 let ret = unsafe { CGDataConsumerCreate(info, cbks) };
129 ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
130}
131
132#[deprecated = "renamed to `CGDataConsumer::with_url`"]
133#[inline]
134pub extern "C-unwind" fn CGDataConsumerCreateWithURL(
135 url: Option<&CFURL>,
136) -> Option<CFRetained<CGDataConsumer>> {
137 extern "C-unwind" {
138 fn CGDataConsumerCreateWithURL(url: Option<&CFURL>) -> Option<NonNull<CGDataConsumer>>;
139 }
140 let ret = unsafe { CGDataConsumerCreateWithURL(url) };
141 ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
142}
143
144#[deprecated = "renamed to `CGDataConsumer::with_cf_data`"]
145#[inline]
146pub extern "C-unwind" fn CGDataConsumerCreateWithCFData(
147 data: Option<&CFMutableData>,
148) -> Option<CFRetained<CGDataConsumer>> {
149 extern "C-unwind" {
150 fn CGDataConsumerCreateWithCFData(
151 data: Option<&CFMutableData>,
152 ) -> Option<NonNull<CGDataConsumer>>;
153 }
154 let ret = unsafe { CGDataConsumerCreateWithCFData(data) };
155 ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
156}