core_foundation_sys/
bit_vector.rs1use std::os::raw::c_void;
11
12use crate::base::{Boolean, CFAllocatorRef, CFIndex, CFRange, CFTypeID, UInt32, UInt8};
13
14#[repr(C)]
15pub struct __CFBitVector(c_void);
16
17pub type CFBitVectorRef = *const __CFBitVector;
18pub type CFMutableBitVectorRef = *mut __CFBitVector;
19pub type CFBit = UInt32;
20
21extern "C" {
22 pub fn CFBitVectorCreate(
29 allocator: CFAllocatorRef,
30 bytes: *const UInt8,
31 numBits: CFIndex,
32 ) -> CFBitVectorRef;
33 pub fn CFBitVectorCreateCopy(allocator: CFAllocatorRef, bv: CFBitVectorRef) -> CFBitVectorRef;
34
35 pub fn CFBitVectorContainsBit(bv: CFBitVectorRef, range: CFRange, value: CFBit) -> Boolean;
37 pub fn CFBitVectorGetBitAtIndex(bv: CFBitVectorRef, idx: CFIndex) -> CFBit;
38 pub fn CFBitVectorGetBits(bv: CFBitVectorRef, range: CFRange, bytes: *mut UInt8);
39 pub fn CFBitVectorGetCount(bv: CFBitVectorRef) -> CFIndex;
40 pub fn CFBitVectorGetCountOfBit(bv: CFBitVectorRef, range: CFRange, value: CFBit) -> CFIndex;
41 pub fn CFBitVectorGetFirstIndexOfBit(
42 bv: CFBitVectorRef,
43 range: CFRange,
44 value: CFBit,
45 ) -> CFIndex;
46 pub fn CFBitVectorGetLastIndexOfBit(
47 bv: CFBitVectorRef,
48 range: CFRange,
49 value: CFBit,
50 ) -> CFIndex;
51
52 pub fn CFBitVectorGetTypeID() -> CFTypeID;
54
55 pub fn CFBitVectorCreateMutable(
58 allocator: CFAllocatorRef,
59 capacity: CFIndex,
60 ) -> CFMutableBitVectorRef;
61 pub fn CFBitVectorCreateMutableCopy(
62 allocator: CFAllocatorRef,
63 capacity: CFIndex,
64 bv: CFBitVectorRef,
65 ) -> CFMutableBitVectorRef;
66
67 pub fn CFBitVectorFlipBitAtIndex(bv: CFMutableBitVectorRef, idx: CFIndex);
69 pub fn CFBitVectorFlipBits(bv: CFMutableBitVectorRef, range: CFRange);
70 pub fn CFBitVectorSetAllBits(bv: CFMutableBitVectorRef, value: CFBit);
71 pub fn CFBitVectorSetBitAtIndex(bv: CFMutableBitVectorRef, idx: CFIndex, value: CFBit);
72 pub fn CFBitVectorSetBits(bv: CFMutableBitVectorRef, range: CFRange, value: CFBit);
73 pub fn CFBitVectorSetCount(bv: CFMutableBitVectorRef, count: CFIndex);
74}