objc2_core_graphics/generated/
CGRenderingBufferProvider.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/cgrenderingbufferprovider?language=objc)
14#[doc(alias = "CGRenderingBufferProviderRef")]
15#[repr(C)]
16pub struct CGRenderingBufferProvider {
17    inner: [u8; 0],
18    _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
19}
20
21cf_type!(
22    unsafe impl CGRenderingBufferProvider {}
23);
24#[cfg(feature = "objc2")]
25cf_objc2_type!(
26    unsafe impl RefEncode<"CGRenderingBufferProvider"> for CGRenderingBufferProvider {}
27);
28
29impl CGRenderingBufferProvider {
30    /// # Safety
31    ///
32    /// - `info` must be a valid pointer or null.
33    /// - `lock_pointer` block's return must be a valid pointer or null.
34    #[doc(alias = "CGRenderingBufferProviderCreate")]
35    #[cfg(feature = "block2")]
36    #[inline]
37    pub unsafe fn new(
38        info: *mut c_void,
39        size: usize,
40        lock_pointer: &block2::DynBlock<dyn Fn(*mut c_void) -> *mut c_void>,
41        unlock_pointer: Option<&block2::DynBlock<dyn Fn(*mut c_void, NonNull<c_void>)>>,
42        release_info: Option<&block2::DynBlock<dyn Fn(*mut c_void)>>,
43    ) -> Option<CFRetained<CGRenderingBufferProvider>> {
44        extern "C-unwind" {
45            fn CGRenderingBufferProviderCreate(
46                info: *mut c_void,
47                size: usize,
48                lock_pointer: &block2::DynBlock<dyn Fn(*mut c_void) -> *mut c_void>,
49                unlock_pointer: Option<&block2::DynBlock<dyn Fn(*mut c_void, NonNull<c_void>)>>,
50                release_info: Option<&block2::DynBlock<dyn Fn(*mut c_void)>>,
51            ) -> Option<NonNull<CGRenderingBufferProvider>>;
52        }
53        let ret = unsafe {
54            CGRenderingBufferProviderCreate(info, size, lock_pointer, unlock_pointer, release_info)
55        };
56        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
57    }
58
59    #[doc(alias = "CGRenderingBufferProviderCreateWithCFData")]
60    #[inline]
61    pub fn with_cf_data(data: &CFMutableData) -> Option<CFRetained<CGRenderingBufferProvider>> {
62        extern "C-unwind" {
63            fn CGRenderingBufferProviderCreateWithCFData(
64                data: &CFMutableData,
65            ) -> Option<NonNull<CGRenderingBufferProvider>>;
66        }
67        let ret = unsafe { CGRenderingBufferProviderCreateWithCFData(data) };
68        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
69    }
70
71    #[doc(alias = "CGRenderingBufferProviderGetSize")]
72    #[inline]
73    pub fn size(&self) -> usize {
74        extern "C-unwind" {
75            fn CGRenderingBufferProviderGetSize(provider: &CGRenderingBufferProvider) -> usize;
76        }
77        unsafe { CGRenderingBufferProviderGetSize(self) }
78    }
79}
80
81#[inline]
82pub extern "C-unwind" fn CGRenderingBufferLockBytePtr(
83    provider: &CGRenderingBufferProvider,
84) -> *mut c_void {
85    extern "C-unwind" {
86        fn CGRenderingBufferLockBytePtr(provider: &CGRenderingBufferProvider) -> *mut c_void;
87    }
88    unsafe { CGRenderingBufferLockBytePtr(provider) }
89}
90
91#[inline]
92pub extern "C-unwind" fn CGRenderingBufferUnlockBytePtr(provider: &CGRenderingBufferProvider) {
93    extern "C-unwind" {
94        fn CGRenderingBufferUnlockBytePtr(provider: &CGRenderingBufferProvider);
95    }
96    unsafe { CGRenderingBufferUnlockBytePtr(provider) }
97}
98
99unsafe impl ConcreteType for CGRenderingBufferProvider {
100    #[doc(alias = "CGRenderingBufferProviderGetTypeID")]
101    #[inline]
102    fn type_id() -> CFTypeID {
103        extern "C-unwind" {
104            fn CGRenderingBufferProviderGetTypeID() -> CFTypeID;
105        }
106        unsafe { CGRenderingBufferProviderGetTypeID() }
107    }
108}
109
110#[cfg(feature = "block2")]
111#[deprecated = "renamed to `CGRenderingBufferProvider::new`"]
112#[inline]
113pub unsafe extern "C-unwind" fn CGRenderingBufferProviderCreate(
114    info: *mut c_void,
115    size: usize,
116    lock_pointer: &block2::DynBlock<dyn Fn(*mut c_void) -> *mut c_void>,
117    unlock_pointer: Option<&block2::DynBlock<dyn Fn(*mut c_void, NonNull<c_void>)>>,
118    release_info: Option<&block2::DynBlock<dyn Fn(*mut c_void)>>,
119) -> Option<CFRetained<CGRenderingBufferProvider>> {
120    extern "C-unwind" {
121        fn CGRenderingBufferProviderCreate(
122            info: *mut c_void,
123            size: usize,
124            lock_pointer: &block2::DynBlock<dyn Fn(*mut c_void) -> *mut c_void>,
125            unlock_pointer: Option<&block2::DynBlock<dyn Fn(*mut c_void, NonNull<c_void>)>>,
126            release_info: Option<&block2::DynBlock<dyn Fn(*mut c_void)>>,
127        ) -> Option<NonNull<CGRenderingBufferProvider>>;
128    }
129    let ret = unsafe {
130        CGRenderingBufferProviderCreate(info, size, lock_pointer, unlock_pointer, release_info)
131    };
132    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
133}
134
135#[deprecated = "renamed to `CGRenderingBufferProvider::with_cf_data`"]
136#[inline]
137pub extern "C-unwind" fn CGRenderingBufferProviderCreateWithCFData(
138    data: &CFMutableData,
139) -> Option<CFRetained<CGRenderingBufferProvider>> {
140    extern "C-unwind" {
141        fn CGRenderingBufferProviderCreateWithCFData(
142            data: &CFMutableData,
143        ) -> Option<NonNull<CGRenderingBufferProvider>>;
144    }
145    let ret = unsafe { CGRenderingBufferProviderCreateWithCFData(data) };
146    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
147}
148
149#[deprecated = "renamed to `CGRenderingBufferProvider::size`"]
150#[inline]
151pub extern "C-unwind" fn CGRenderingBufferProviderGetSize(
152    provider: &CGRenderingBufferProvider,
153) -> usize {
154    extern "C-unwind" {
155        fn CGRenderingBufferProviderGetSize(provider: &CGRenderingBufferProvider) -> usize;
156    }
157    unsafe { CGRenderingBufferProviderGetSize(provider) }
158}