objc2_metal/generated/
MTLIOCompressor.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6
7use crate::*;
8
9/// [Apple's documentation](https://developer.apple.com/documentation/metal/mtliocompressionstatus?language=objc)
10// NS_ENUM
11#[repr(transparent)]
12#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
13pub struct MTLIOCompressionStatus(pub NSInteger);
14impl MTLIOCompressionStatus {
15    #[doc(alias = "MTLIOCompressionStatusComplete")]
16    pub const Complete: Self = Self(0);
17    #[doc(alias = "MTLIOCompressionStatusError")]
18    pub const Error: Self = Self(1);
19}
20
21unsafe impl Encode for MTLIOCompressionStatus {
22    const ENCODING: Encoding = NSInteger::ENCODING;
23}
24
25unsafe impl RefEncode for MTLIOCompressionStatus {
26    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
27}
28
29/// [Apple's documentation](https://developer.apple.com/documentation/metal/mtliocompressioncontext?language=objc)
30pub type MTLIOCompressionContext = *mut c_void;
31
32#[inline]
33pub extern "C-unwind" fn MTLIOCompressionContextDefaultChunkSize() -> usize {
34    extern "C-unwind" {
35        fn MTLIOCompressionContextDefaultChunkSize() -> usize;
36    }
37    unsafe { MTLIOCompressionContextDefaultChunkSize() }
38}
39
40extern "C-unwind" {
41    /// # Safety
42    ///
43    /// - `path` must be a valid pointer.
44    /// - `chunkSize` might not be bounds-checked.
45    #[cfg(feature = "MTLDevice")]
46    pub fn MTLIOCreateCompressionContext(
47        path: NonNull<c_char>,
48        r#type: MTLIOCompressionMethod,
49        chunk_size: usize,
50    ) -> MTLIOCompressionContext;
51}
52
53extern "C-unwind" {
54    /// # Safety
55    ///
56    /// - `context` must be a valid pointer.
57    /// - `data` must be a valid pointer.
58    /// - `size` might not be bounds-checked.
59    pub fn MTLIOCompressionContextAppendData(
60        context: MTLIOCompressionContext,
61        data: NonNull<c_void>,
62        size: usize,
63    );
64}
65
66extern "C-unwind" {
67    /// # Safety
68    ///
69    /// `context` must be a valid pointer.
70    pub fn MTLIOFlushAndDestroyCompressionContext(
71        context: MTLIOCompressionContext,
72    ) -> MTLIOCompressionStatus;
73}