78 lines
2.7 KiB
Rust
78 lines
2.7 KiB
Rust
// Copyright 2013-2015 The Servo Project Developers. See the COPYRIGHT
|
|
// file at the top-level directory of this distribution.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
|
// option. This file may not be copied, modified, or distributed
|
|
// except according to those terms.
|
|
|
|
use crate::base::{CFAllocatorRef, CFIndex, CFOptionFlags, CFRange, CFTypeID};
|
|
use std::os::raw::c_void;
|
|
|
|
#[repr(C)]
|
|
pub struct __CFData(c_void);
|
|
|
|
pub type CFDataRef = *const __CFData;
|
|
pub type CFMutableDataRef = *mut __CFData;
|
|
pub type CFDataSearchFlags = CFOptionFlags;
|
|
|
|
// typedef CF_OPTIONS(CFOptionFlags, CFDataSearchFlags)
|
|
pub const kCFDataSearchBackwards: CFDataSearchFlags = 1usize << 0;
|
|
pub const kCFDataSearchAnchored: CFDataSearchFlags = 1usize << 1;
|
|
|
|
extern "C" {
|
|
/*
|
|
* CFData.h
|
|
*/
|
|
|
|
/* CFData */
|
|
/* Creating a CFData Object */
|
|
pub fn CFDataCreate(allocator: CFAllocatorRef, bytes: *const u8, length: CFIndex) -> CFDataRef;
|
|
pub fn CFDataCreateCopy(allocator: CFAllocatorRef, theData: CFDataRef) -> CFDataRef;
|
|
pub fn CFDataCreateWithBytesNoCopy(
|
|
allocator: CFAllocatorRef,
|
|
bytes: *const u8,
|
|
length: CFIndex,
|
|
bytesDeallocator: CFAllocatorRef,
|
|
) -> CFDataRef;
|
|
|
|
/* Examining a CFData Object */
|
|
pub fn CFDataGetBytePtr(theData: CFDataRef) -> *const u8;
|
|
pub fn CFDataGetBytes(theData: CFDataRef, range: CFRange, buffer: *mut u8);
|
|
pub fn CFDataGetLength(theData: CFDataRef) -> CFIndex;
|
|
pub fn CFDataFind(
|
|
theData: CFDataRef,
|
|
dataToFind: CFDataRef,
|
|
searchRange: CFRange,
|
|
compareOptions: CFDataSearchFlags,
|
|
) -> CFRange;
|
|
|
|
/* Getting the CFData Type ID */
|
|
pub fn CFDataGetTypeID() -> CFTypeID;
|
|
|
|
/* CFMutableData */
|
|
/* Creating a Mutable Data Object */
|
|
pub fn CFDataCreateMutable(allocator: CFAllocatorRef, capacity: CFIndex) -> CFMutableDataRef;
|
|
pub fn CFDataCreateMutableCopy(
|
|
allocator: CFAllocatorRef,
|
|
capacity: CFIndex,
|
|
theData: CFDataRef,
|
|
) -> CFMutableDataRef;
|
|
|
|
/* Accessing Data */
|
|
pub fn CFDataGetMutableBytePtr(theData: CFMutableDataRef) -> *mut u8;
|
|
|
|
/* Modifying a Mutable Data Object */
|
|
pub fn CFDataAppendBytes(theData: CFMutableDataRef, bytes: *const u8, length: CFIndex);
|
|
pub fn CFDataDeleteBytes(theData: CFMutableDataRef, range: CFRange);
|
|
pub fn CFDataReplaceBytes(
|
|
theData: CFMutableDataRef,
|
|
range: CFRange,
|
|
newBytes: *const u8,
|
|
newLength: CFIndex,
|
|
);
|
|
pub fn CFDataIncreaseLength(theData: CFMutableDataRef, extraLength: CFIndex);
|
|
pub fn CFDataSetLength(theData: CFMutableDataRef, length: CFIndex);
|
|
}
|