objc2_core_graphics/generated/
CGPDFStream.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::cell::UnsafeCell;
4use core::marker::{PhantomData, PhantomPinned};
5use core::ptr::NonNull;
6#[cfg(feature = "objc2")]
7use objc2::__framework_prelude::*;
8use objc2_core_foundation::*;
9
10use crate::*;
11
12/// [Apple's documentation](https://developer.apple.com/documentation/coregraphics/cgpdfstream?language=objc)
13#[repr(C)]
14#[derive(Debug)]
15pub struct CGPDFStream {
16    inner: [u8; 0],
17    _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
18}
19
20#[cfg(feature = "objc2")]
21unsafe impl RefEncode for CGPDFStream {
22    const ENCODING_REF: Encoding = Encoding::Pointer(&Encoding::Struct("CGPDFStream", &[]));
23}
24
25/// [Apple's documentation](https://developer.apple.com/documentation/coregraphics/cgpdfstreamref?language=objc)
26pub type CGPDFStreamRef = *mut CGPDFStream;
27
28/// [Apple's documentation](https://developer.apple.com/documentation/coregraphics/cgpdfdataformat?language=objc)
29// NS_ENUM
30#[repr(transparent)]
31#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
32pub struct CGPDFDataFormat(pub i32);
33impl CGPDFDataFormat {
34    #[doc(alias = "CGPDFDataFormatRaw")]
35    pub const Raw: Self = Self(0);
36    #[doc(alias = "CGPDFDataFormatJPEGEncoded")]
37    pub const JPEGEncoded: Self = Self(1);
38    #[doc(alias = "CGPDFDataFormatJPEG2000")]
39    pub const JPEG2000: Self = Self(2);
40}
41
42#[cfg(feature = "objc2")]
43unsafe impl Encode for CGPDFDataFormat {
44    const ENCODING: Encoding = i32::ENCODING;
45}
46
47#[cfg(feature = "objc2")]
48unsafe impl RefEncode for CGPDFDataFormat {
49    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
50}
51
52impl CGPDFStream {
53    /// # Safety
54    ///
55    /// `stream` must be a valid pointer or null.
56    #[doc(alias = "CGPDFStreamGetDictionary")]
57    #[cfg(feature = "CGPDFDictionary")]
58    #[inline]
59    pub unsafe fn dictionary(stream: CGPDFStreamRef) -> CGPDFDictionaryRef {
60        extern "C-unwind" {
61            fn CGPDFStreamGetDictionary(stream: CGPDFStreamRef) -> CGPDFDictionaryRef;
62        }
63        unsafe { CGPDFStreamGetDictionary(stream) }
64    }
65
66    /// # Safety
67    ///
68    /// - `stream` must be a valid pointer or null.
69    /// - `format` must be a valid pointer or null.
70    #[doc(alias = "CGPDFStreamCopyData")]
71    #[inline]
72    pub unsafe fn data(
73        stream: CGPDFStreamRef,
74        format: *mut CGPDFDataFormat,
75    ) -> Option<CFRetained<CFData>> {
76        extern "C-unwind" {
77            fn CGPDFStreamCopyData(
78                stream: CGPDFStreamRef,
79                format: *mut CGPDFDataFormat,
80            ) -> Option<NonNull<CFData>>;
81        }
82        let ret = unsafe { CGPDFStreamCopyData(stream, format) };
83        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
84    }
85}
86
87extern "C-unwind" {
88    #[cfg(feature = "CGPDFDictionary")]
89    #[deprecated = "renamed to `CGPDFStream::dictionary`"]
90    pub fn CGPDFStreamGetDictionary(stream: CGPDFStreamRef) -> CGPDFDictionaryRef;
91}
92
93#[deprecated = "renamed to `CGPDFStream::data`"]
94#[inline]
95pub unsafe extern "C-unwind" fn CGPDFStreamCopyData(
96    stream: CGPDFStreamRef,
97    format: *mut CGPDFDataFormat,
98) -> Option<CFRetained<CFData>> {
99    extern "C-unwind" {
100        fn CGPDFStreamCopyData(
101            stream: CGPDFStreamRef,
102            format: *mut CGPDFDataFormat,
103        ) -> Option<NonNull<CFData>>;
104    }
105    let ret = unsafe { CGPDFStreamCopyData(stream, format) };
106    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
107}