//! This file has been automatically generated by `objc2`'s `header-translator`. //! DO NOT EDIT use core::cell::UnsafeCell; use core::ffi::*; use core::marker::{PhantomData, PhantomPinned}; use core::ptr::NonNull; #[cfg(feature = "objc2")] use objc2::__framework_prelude::*; use crate::*; /// [Apple's documentation](https://developer.apple.com/documentation/corefoundation/cfbit?language=objc) pub type CFBit = u32; /// [Apple's documentation](https://developer.apple.com/documentation/corefoundation/cfbitvector?language=objc) #[doc(alias = "CFBitVectorRef")] #[repr(C)] pub struct CFBitVector { inner: [u8; 0], _p: UnsafeCell, PhantomPinned)>>, } cf_type!( unsafe impl CFBitVector {} ); #[cfg(feature = "objc2")] cf_objc2_type!( unsafe impl RefEncode<"__CFBitVector"> for CFBitVector {} ); /// [Apple's documentation](https://developer.apple.com/documentation/corefoundation/cfmutablebitvector?language=objc) #[doc(alias = "CFMutableBitVectorRef")] #[repr(C)] pub struct CFMutableBitVector { inner: [u8; 0], _p: UnsafeCell, PhantomPinned)>>, } cf_type!( unsafe impl CFMutableBitVector: CFBitVector {} ); #[cfg(feature = "objc2")] cf_objc2_type!( unsafe impl RefEncode<"__CFBitVector"> for CFMutableBitVector {} ); unsafe impl ConcreteType for CFBitVector { #[doc(alias = "CFBitVectorGetTypeID")] #[inline] fn type_id() -> CFTypeID { extern "C-unwind" { fn CFBitVectorGetTypeID() -> CFTypeID; } unsafe { CFBitVectorGetTypeID() } } } impl CFBitVector { /// # Safety /// /// - `allocator` might not allow `None`. /// - `bytes` must be a valid pointer. #[doc(alias = "CFBitVectorCreate")] #[inline] pub unsafe fn new( allocator: Option<&CFAllocator>, bytes: *const u8, num_bits: CFIndex, ) -> Option> { extern "C-unwind" { fn CFBitVectorCreate( allocator: Option<&CFAllocator>, bytes: *const u8, num_bits: CFIndex, ) -> Option>; } let ret = unsafe { CFBitVectorCreate(allocator, bytes, num_bits) }; ret.map(|ret| unsafe { CFRetained::from_raw(ret) }) } /// # Safety /// /// - `allocator` might not allow `None`. /// - `bv` might not allow `None`. #[doc(alias = "CFBitVectorCreateCopy")] #[inline] pub unsafe fn new_copy( allocator: Option<&CFAllocator>, bv: Option<&CFBitVector>, ) -> Option> { extern "C-unwind" { fn CFBitVectorCreateCopy( allocator: Option<&CFAllocator>, bv: Option<&CFBitVector>, ) -> Option>; } let ret = unsafe { CFBitVectorCreateCopy(allocator, bv) }; ret.map(|ret| unsafe { CFRetained::from_raw(ret) }) } } impl CFMutableBitVector { /// # Safety /// /// `allocator` might not allow `None`. #[doc(alias = "CFBitVectorCreateMutable")] #[inline] pub unsafe fn new( allocator: Option<&CFAllocator>, capacity: CFIndex, ) -> Option> { extern "C-unwind" { fn CFBitVectorCreateMutable( allocator: Option<&CFAllocator>, capacity: CFIndex, ) -> Option>; } let ret = unsafe { CFBitVectorCreateMutable(allocator, capacity) }; ret.map(|ret| unsafe { CFRetained::from_raw(ret) }) } /// # Safety /// /// - `allocator` might not allow `None`. /// - `bv` might not allow `None`. #[doc(alias = "CFBitVectorCreateMutableCopy")] #[inline] pub unsafe fn new_copy( allocator: Option<&CFAllocator>, capacity: CFIndex, bv: Option<&CFBitVector>, ) -> Option> { extern "C-unwind" { fn CFBitVectorCreateMutableCopy( allocator: Option<&CFAllocator>, capacity: CFIndex, bv: Option<&CFBitVector>, ) -> Option>; } let ret = unsafe { CFBitVectorCreateMutableCopy(allocator, capacity, bv) }; ret.map(|ret| unsafe { CFRetained::from_raw(ret) }) } } impl CFBitVector { #[doc(alias = "CFBitVectorGetCount")] #[inline] pub fn count(&self) -> CFIndex { extern "C-unwind" { fn CFBitVectorGetCount(bv: &CFBitVector) -> CFIndex; } unsafe { CFBitVectorGetCount(self) } } #[doc(alias = "CFBitVectorGetCountOfBit")] #[inline] pub fn count_of_bit(&self, range: CFRange, value: CFBit) -> CFIndex { extern "C-unwind" { fn CFBitVectorGetCountOfBit(bv: &CFBitVector, range: CFRange, value: CFBit) -> CFIndex; } unsafe { CFBitVectorGetCountOfBit(self, range, value) } } #[doc(alias = "CFBitVectorContainsBit")] #[inline] pub fn contains_bit(&self, range: CFRange, value: CFBit) -> bool { extern "C-unwind" { fn CFBitVectorContainsBit(bv: &CFBitVector, range: CFRange, value: CFBit) -> Boolean; } let ret = unsafe { CFBitVectorContainsBit(self, range, value) }; ret != 0 } #[doc(alias = "CFBitVectorGetBitAtIndex")] #[inline] pub fn bit_at_index(&self, idx: CFIndex) -> CFBit { extern "C-unwind" { fn CFBitVectorGetBitAtIndex(bv: &CFBitVector, idx: CFIndex) -> CFBit; } unsafe { CFBitVectorGetBitAtIndex(self, idx) } } /// # Safety /// /// `bytes` must be a valid pointer. #[doc(alias = "CFBitVectorGetBits")] #[inline] pub unsafe fn bits(&self, range: CFRange, bytes: *mut u8) { extern "C-unwind" { fn CFBitVectorGetBits(bv: &CFBitVector, range: CFRange, bytes: *mut u8); } unsafe { CFBitVectorGetBits(self, range, bytes) } } #[doc(alias = "CFBitVectorGetFirstIndexOfBit")] #[inline] pub fn first_index_of_bit(&self, range: CFRange, value: CFBit) -> CFIndex { extern "C-unwind" { fn CFBitVectorGetFirstIndexOfBit( bv: &CFBitVector, range: CFRange, value: CFBit, ) -> CFIndex; } unsafe { CFBitVectorGetFirstIndexOfBit(self, range, value) } } #[doc(alias = "CFBitVectorGetLastIndexOfBit")] #[inline] pub fn last_index_of_bit(&self, range: CFRange, value: CFBit) -> CFIndex { extern "C-unwind" { fn CFBitVectorGetLastIndexOfBit( bv: &CFBitVector, range: CFRange, value: CFBit, ) -> CFIndex; } unsafe { CFBitVectorGetLastIndexOfBit(self, range, value) } } } impl CFMutableBitVector { /// # Safety /// /// `bv` might not allow `None`. #[doc(alias = "CFBitVectorSetCount")] #[inline] pub unsafe fn set_count(bv: Option<&CFMutableBitVector>, count: CFIndex) { extern "C-unwind" { fn CFBitVectorSetCount(bv: Option<&CFMutableBitVector>, count: CFIndex); } unsafe { CFBitVectorSetCount(bv, count) } } /// # Safety /// /// `bv` might not allow `None`. #[doc(alias = "CFBitVectorFlipBitAtIndex")] #[inline] pub unsafe fn flip_bit_at_index(bv: Option<&CFMutableBitVector>, idx: CFIndex) { extern "C-unwind" { fn CFBitVectorFlipBitAtIndex(bv: Option<&CFMutableBitVector>, idx: CFIndex); } unsafe { CFBitVectorFlipBitAtIndex(bv, idx) } } /// # Safety /// /// `bv` might not allow `None`. #[doc(alias = "CFBitVectorFlipBits")] #[inline] pub unsafe fn flip_bits(bv: Option<&CFMutableBitVector>, range: CFRange) { extern "C-unwind" { fn CFBitVectorFlipBits(bv: Option<&CFMutableBitVector>, range: CFRange); } unsafe { CFBitVectorFlipBits(bv, range) } } /// # Safety /// /// `bv` might not allow `None`. #[doc(alias = "CFBitVectorSetBitAtIndex")] #[inline] pub unsafe fn set_bit_at_index(bv: Option<&CFMutableBitVector>, idx: CFIndex, value: CFBit) { extern "C-unwind" { fn CFBitVectorSetBitAtIndex( bv: Option<&CFMutableBitVector>, idx: CFIndex, value: CFBit, ); } unsafe { CFBitVectorSetBitAtIndex(bv, idx, value) } } /// # Safety /// /// `bv` might not allow `None`. #[doc(alias = "CFBitVectorSetBits")] #[inline] pub unsafe fn set_bits(bv: Option<&CFMutableBitVector>, range: CFRange, value: CFBit) { extern "C-unwind" { fn CFBitVectorSetBits(bv: Option<&CFMutableBitVector>, range: CFRange, value: CFBit); } unsafe { CFBitVectorSetBits(bv, range, value) } } /// # Safety /// /// `bv` might not allow `None`. #[doc(alias = "CFBitVectorSetAllBits")] #[inline] pub unsafe fn set_all_bits(bv: Option<&CFMutableBitVector>, value: CFBit) { extern "C-unwind" { fn CFBitVectorSetAllBits(bv: Option<&CFMutableBitVector>, value: CFBit); } unsafe { CFBitVectorSetAllBits(bv, value) } } } #[deprecated = "renamed to `CFBitVector::new`"] #[inline] pub unsafe extern "C-unwind" fn CFBitVectorCreate( allocator: Option<&CFAllocator>, bytes: *const u8, num_bits: CFIndex, ) -> Option> { extern "C-unwind" { fn CFBitVectorCreate( allocator: Option<&CFAllocator>, bytes: *const u8, num_bits: CFIndex, ) -> Option>; } let ret = unsafe { CFBitVectorCreate(allocator, bytes, num_bits) }; ret.map(|ret| unsafe { CFRetained::from_raw(ret) }) } #[deprecated = "renamed to `CFBitVector::new_copy`"] #[inline] pub unsafe extern "C-unwind" fn CFBitVectorCreateCopy( allocator: Option<&CFAllocator>, bv: Option<&CFBitVector>, ) -> Option> { extern "C-unwind" { fn CFBitVectorCreateCopy( allocator: Option<&CFAllocator>, bv: Option<&CFBitVector>, ) -> Option>; } let ret = unsafe { CFBitVectorCreateCopy(allocator, bv) }; ret.map(|ret| unsafe { CFRetained::from_raw(ret) }) } #[deprecated = "renamed to `CFMutableBitVector::new`"] #[inline] pub unsafe extern "C-unwind" fn CFBitVectorCreateMutable( allocator: Option<&CFAllocator>, capacity: CFIndex, ) -> Option> { extern "C-unwind" { fn CFBitVectorCreateMutable( allocator: Option<&CFAllocator>, capacity: CFIndex, ) -> Option>; } let ret = unsafe { CFBitVectorCreateMutable(allocator, capacity) }; ret.map(|ret| unsafe { CFRetained::from_raw(ret) }) } #[deprecated = "renamed to `CFMutableBitVector::new_copy`"] #[inline] pub unsafe extern "C-unwind" fn CFBitVectorCreateMutableCopy( allocator: Option<&CFAllocator>, capacity: CFIndex, bv: Option<&CFBitVector>, ) -> Option> { extern "C-unwind" { fn CFBitVectorCreateMutableCopy( allocator: Option<&CFAllocator>, capacity: CFIndex, bv: Option<&CFBitVector>, ) -> Option>; } let ret = unsafe { CFBitVectorCreateMutableCopy(allocator, capacity, bv) }; ret.map(|ret| unsafe { CFRetained::from_raw(ret) }) } #[deprecated = "renamed to `CFBitVector::count`"] #[inline] pub extern "C-unwind" fn CFBitVectorGetCount(bv: &CFBitVector) -> CFIndex { extern "C-unwind" { fn CFBitVectorGetCount(bv: &CFBitVector) -> CFIndex; } unsafe { CFBitVectorGetCount(bv) } } #[deprecated = "renamed to `CFBitVector::count_of_bit`"] #[inline] pub extern "C-unwind" fn CFBitVectorGetCountOfBit( bv: &CFBitVector, range: CFRange, value: CFBit, ) -> CFIndex { extern "C-unwind" { fn CFBitVectorGetCountOfBit(bv: &CFBitVector, range: CFRange, value: CFBit) -> CFIndex; } unsafe { CFBitVectorGetCountOfBit(bv, range, value) } } #[deprecated = "renamed to `CFBitVector::contains_bit`"] #[inline] pub extern "C-unwind" fn CFBitVectorContainsBit( bv: &CFBitVector, range: CFRange, value: CFBit, ) -> bool { extern "C-unwind" { fn CFBitVectorContainsBit(bv: &CFBitVector, range: CFRange, value: CFBit) -> Boolean; } let ret = unsafe { CFBitVectorContainsBit(bv, range, value) }; ret != 0 } #[deprecated = "renamed to `CFBitVector::bit_at_index`"] #[inline] pub extern "C-unwind" fn CFBitVectorGetBitAtIndex(bv: &CFBitVector, idx: CFIndex) -> CFBit { extern "C-unwind" { fn CFBitVectorGetBitAtIndex(bv: &CFBitVector, idx: CFIndex) -> CFBit; } unsafe { CFBitVectorGetBitAtIndex(bv, idx) } } extern "C-unwind" { #[deprecated = "renamed to `CFBitVector::bits`"] pub fn CFBitVectorGetBits(bv: &CFBitVector, range: CFRange, bytes: *mut u8); } #[deprecated = "renamed to `CFBitVector::first_index_of_bit`"] #[inline] pub extern "C-unwind" fn CFBitVectorGetFirstIndexOfBit( bv: &CFBitVector, range: CFRange, value: CFBit, ) -> CFIndex { extern "C-unwind" { fn CFBitVectorGetFirstIndexOfBit(bv: &CFBitVector, range: CFRange, value: CFBit) -> CFIndex; } unsafe { CFBitVectorGetFirstIndexOfBit(bv, range, value) } } #[deprecated = "renamed to `CFBitVector::last_index_of_bit`"] #[inline] pub extern "C-unwind" fn CFBitVectorGetLastIndexOfBit( bv: &CFBitVector, range: CFRange, value: CFBit, ) -> CFIndex { extern "C-unwind" { fn CFBitVectorGetLastIndexOfBit(bv: &CFBitVector, range: CFRange, value: CFBit) -> CFIndex; } unsafe { CFBitVectorGetLastIndexOfBit(bv, range, value) } } extern "C-unwind" { #[deprecated = "renamed to `CFMutableBitVector::set_count`"] pub fn CFBitVectorSetCount(bv: Option<&CFMutableBitVector>, count: CFIndex); } extern "C-unwind" { #[deprecated = "renamed to `CFMutableBitVector::flip_bit_at_index`"] pub fn CFBitVectorFlipBitAtIndex(bv: Option<&CFMutableBitVector>, idx: CFIndex); } extern "C-unwind" { #[deprecated = "renamed to `CFMutableBitVector::flip_bits`"] pub fn CFBitVectorFlipBits(bv: Option<&CFMutableBitVector>, range: CFRange); } extern "C-unwind" { #[deprecated = "renamed to `CFMutableBitVector::set_bit_at_index`"] pub fn CFBitVectorSetBitAtIndex(bv: Option<&CFMutableBitVector>, idx: CFIndex, value: CFBit); } extern "C-unwind" { #[deprecated = "renamed to `CFMutableBitVector::set_bits`"] pub fn CFBitVectorSetBits(bv: Option<&CFMutableBitVector>, range: CFRange, value: CFBit); } extern "C-unwind" { #[deprecated = "renamed to `CFMutableBitVector::set_all_bits`"] pub fn CFBitVectorSetAllBits(bv: Option<&CFMutableBitVector>, value: CFBit); }