objc2_core_graphics/generated/
CGDataConsumer.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/coregraphics/cgdataconsumer?language=objc)
14#[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
28/// [Apple's documentation](https://developer.apple.com/documentation/coregraphics/cgdataconsumerputbytescallback?language=objc)
29pub type CGDataConsumerPutBytesCallback =
30    Option<unsafe extern "C-unwind" fn(*mut c_void, NonNull<c_void>, usize) -> usize>;
31
32/// [Apple's documentation](https://developer.apple.com/documentation/coregraphics/cgdataconsumerreleaseinfocallback?language=objc)
33pub type CGDataConsumerReleaseInfoCallback = Option<unsafe extern "C-unwind" fn(*mut c_void)>;
34
35/// [Apple's documentation](https://developer.apple.com/documentation/coregraphics/cgdataconsumercallbacks?language=objc)
36#[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}