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