Upgrade to latest Rust.
This commit is contained in:
@@ -13,7 +13,6 @@ use base::{CFAllocatorRef, CFIndex, CFIndexConvertible, CFRelease, CFType, CFTyp
|
||||
use base::{kCFAllocatorDefault};
|
||||
use std::cast;
|
||||
use std::libc::c_void;
|
||||
use std::vec;
|
||||
|
||||
/// FIXME(pcwalton): This is wrong.
|
||||
pub type CFArrayRetainCallBack = *u8;
|
||||
@@ -47,7 +46,6 @@ pub struct CFArray {
|
||||
}
|
||||
|
||||
impl Drop for CFArray {
|
||||
#[fixed_stack_segment]
|
||||
fn drop(&mut self) {
|
||||
unsafe {
|
||||
CFRelease(self.as_CFTypeRef())
|
||||
@@ -55,12 +53,12 @@ impl Drop for CFArray {
|
||||
}
|
||||
}
|
||||
|
||||
pub struct CFArrayIterator<'self> {
|
||||
priv array: &'self CFArray,
|
||||
pub struct CFArrayIterator<'a> {
|
||||
priv array: &'a CFArray,
|
||||
priv index: CFIndex,
|
||||
}
|
||||
|
||||
impl<'self> Iterator<*c_void> for CFArrayIterator<'self> {
|
||||
impl<'a> Iterator<*c_void> for CFArrayIterator<'a> {
|
||||
fn next(&mut self) -> Option<*c_void> {
|
||||
if self.index >= self.array.len() {
|
||||
None
|
||||
@@ -85,7 +83,6 @@ impl TCFType<CFArrayRef> for CFArray {
|
||||
}
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn type_id(_: Option<CFArray>) -> CFTypeID {
|
||||
unsafe {
|
||||
@@ -96,12 +93,11 @@ impl TCFType<CFArrayRef> for CFArray {
|
||||
|
||||
impl CFArray {
|
||||
/// Creates a new `CFArray` with the given elements, which must be `CFType` objects.
|
||||
#[fixed_stack_segment]
|
||||
pub fn from_CFTypes(elems: &[CFType]) -> CFArray {
|
||||
unsafe {
|
||||
let elems = elems.map(|elem| elem.as_CFTypeRef());
|
||||
let array_ref = CFArrayCreate(kCFAllocatorDefault,
|
||||
cast::transmute(vec::raw::to_ptr(elems)),
|
||||
cast::transmute(elems.as_ptr()),
|
||||
elems.len().to_CFIndex(),
|
||||
&kCFTypeArrayCallBacks);
|
||||
TCFType::wrap_under_create_rule(array_ref)
|
||||
@@ -121,7 +117,6 @@ impl CFArray {
|
||||
}
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
pub fn len(&self) -> CFIndex {
|
||||
unsafe {
|
||||
@@ -134,7 +129,6 @@ impl Index<i64,*c_void> for CFArray {
|
||||
/// Careful; the loop body must wrap the reference properly. Generally, when array elements are
|
||||
/// Core Foundation objects (not always true), they need to be wrapped with
|
||||
/// `TCFType::wrap_under_get_rule()`. The safer `iter_CFTypes` method will do this for you.
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn index(&self, index: &CFIndex) -> *c_void {
|
||||
assert!(*index < self.len());
|
||||
@@ -144,8 +138,7 @@ impl Index<i64,*c_void> for CFArray {
|
||||
}
|
||||
}
|
||||
|
||||
#[link_args="-framework CoreFoundation"]
|
||||
#[nolink]
|
||||
#[link(name = "CoreFoundation", kind = "framework")]
|
||||
extern {
|
||||
/*
|
||||
* CFArray.h
|
||||
|
||||
@@ -69,7 +69,6 @@ pub struct CFType {
|
||||
}
|
||||
|
||||
impl Clone for CFType {
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn clone(&self) -> CFType {
|
||||
unsafe {
|
||||
@@ -79,7 +78,6 @@ impl Clone for CFType {
|
||||
}
|
||||
|
||||
impl Drop for CFType {
|
||||
#[fixed_stack_segment]
|
||||
fn drop(&mut self) {
|
||||
unsafe {
|
||||
CFRelease(self.obj)
|
||||
@@ -122,7 +120,6 @@ pub trait TCFType<ConcreteTypeRef> {
|
||||
|
||||
/// Returns an instance of the object, wrapping the underlying `CFTypeRef` subclass. Use this
|
||||
/// when following Core Foundation's "Get Rule". The reference count *is* bumped.
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
unsafe fn wrap_under_get_rule(reference: ConcreteTypeRef) -> Self {
|
||||
let reference: ConcreteTypeRef = cast::transmute(CFRetain(cast::transmute(reference)));
|
||||
@@ -131,7 +128,6 @@ pub trait TCFType<ConcreteTypeRef> {
|
||||
|
||||
/// Returns the reference count of the object. It is unwise to do anything other than test
|
||||
/// whether the return value of this method is greater than zero.
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn retain_count(&self) -> CFIndex {
|
||||
unsafe {
|
||||
@@ -140,7 +136,6 @@ pub trait TCFType<ConcreteTypeRef> {
|
||||
}
|
||||
|
||||
/// Returns the type ID of this object.
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn type_of(&self) -> CFTypeID {
|
||||
unsafe {
|
||||
@@ -149,7 +144,6 @@ pub trait TCFType<ConcreteTypeRef> {
|
||||
}
|
||||
|
||||
/// Writes a debugging version of this object on standard error.
|
||||
#[fixed_stack_segment]
|
||||
fn show(&self) {
|
||||
unsafe {
|
||||
CFShow(self.as_CFTypeRef())
|
||||
@@ -199,8 +193,7 @@ impl TCFType<CFTypeRef> for CFType {
|
||||
}
|
||||
}
|
||||
|
||||
#[link_args="-framework CoreFoundation"]
|
||||
#[nolink]
|
||||
#[link(name = "CoreFoundation", kind = "framework")]
|
||||
extern {
|
||||
/*
|
||||
* CFBase.h
|
||||
|
||||
+1
-5
@@ -25,7 +25,6 @@ pub struct CFBoolean {
|
||||
}
|
||||
|
||||
impl Drop for CFBoolean {
|
||||
#[fixed_stack_segment]
|
||||
fn drop(&mut self) {
|
||||
unsafe {
|
||||
CFRelease(self.as_CFTypeRef())
|
||||
@@ -44,7 +43,6 @@ impl TCFType<CFBooleanRef> for CFBoolean {
|
||||
}
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn type_id(_: Option<CFBoolean>) -> CFTypeID {
|
||||
unsafe {
|
||||
@@ -67,13 +65,11 @@ impl CFBoolean {
|
||||
}
|
||||
}
|
||||
|
||||
#[link_args="-framework CoreFoundation"]
|
||||
#[nolink]
|
||||
#[link(name = "CoreFoundation", kind = "framework")]
|
||||
extern {
|
||||
static kCFBooleanTrue: CFBooleanRef;
|
||||
static kCFBooleanFalse: CFBooleanRef;
|
||||
|
||||
fn CFBooleanGetValue(boolean: CFBooleanRef) -> Boolean;
|
||||
fn CFBooleanGetTypeID() -> CFTypeID;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,11 +9,10 @@
|
||||
|
||||
//! Core Foundation byte buffers.
|
||||
|
||||
use base::{CFAllocatorRef, CFIndex, CFIndexConvertible, CFRange, CFRelease, CFTypeID, TCFType};
|
||||
use base::{CFAllocatorRef, CFIndex, CFIndexConvertible, CFRelease, CFTypeID, TCFType};
|
||||
use base::{kCFAllocatorDefault};
|
||||
|
||||
use std::cast;
|
||||
use std::vec;
|
||||
|
||||
struct __CFData;
|
||||
|
||||
@@ -27,7 +26,6 @@ pub struct CFData {
|
||||
}
|
||||
|
||||
impl Drop for CFData {
|
||||
#[fixed_stack_segment]
|
||||
fn drop(&mut self) {
|
||||
unsafe {
|
||||
CFRelease(self.as_CFTypeRef())
|
||||
@@ -46,7 +44,6 @@ impl TCFType<CFDataRef> for CFData {
|
||||
}
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn type_id(_: Option<CFData>) -> CFTypeID {
|
||||
unsafe {
|
||||
@@ -56,11 +53,10 @@ impl TCFType<CFDataRef> for CFData {
|
||||
}
|
||||
|
||||
impl CFData {
|
||||
#[fixed_stack_segment]
|
||||
pub fn from_buffer(buffer: &[u8]) -> CFData {
|
||||
unsafe {
|
||||
let data_ref = CFDataCreate(kCFAllocatorDefault,
|
||||
vec::raw::to_ptr(buffer),
|
||||
buffer.as_ptr(),
|
||||
buffer.len().to_CFIndex());
|
||||
TCFType::wrap_under_create_rule(data_ref)
|
||||
}
|
||||
@@ -68,7 +64,6 @@ impl CFData {
|
||||
|
||||
/// Returns a pointer to the underlying bytes in this data. Note that this byte buffer is
|
||||
/// read-only.
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
pub fn bytes<'a>(&'a self) -> &'a [u8] {
|
||||
unsafe {
|
||||
@@ -77,7 +72,6 @@ impl CFData {
|
||||
}
|
||||
|
||||
/// Returns the length of this byte buffer.
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
pub fn len(&self) -> CFIndex {
|
||||
unsafe {
|
||||
@@ -86,8 +80,7 @@ impl CFData {
|
||||
}
|
||||
}
|
||||
|
||||
#[link_args="-framework CoreFoundation"]
|
||||
#[nolink]
|
||||
#[link(name = "CoreFoundation", kind = "framework")]
|
||||
extern {
|
||||
/*
|
||||
* CFData.h
|
||||
@@ -95,13 +88,8 @@ extern {
|
||||
|
||||
fn CFDataCreate(allocator: CFAllocatorRef,
|
||||
bytes: *u8, length: CFIndex) -> CFDataRef;
|
||||
fn CFDataCreateCopy(allocator: CFAllocatorRef, theData: CFDataRef) -> CFDataRef;
|
||||
fn CFDataCreateWithBytesNoCopy(allocator: CFAllocatorRef,
|
||||
bytes: *u8, length: CFIndex,
|
||||
bytesDeallocator: CFAllocatorRef) -> CFDataRef;
|
||||
//fn CFDataFind
|
||||
fn CFDataGetBytePtr(theData: CFDataRef) -> *u8;
|
||||
fn CFDataGetBytes(theData: CFDataRef, range: CFRange, buffer: *u8);
|
||||
fn CFDataGetLength(theData: CFDataRef) -> CFIndex;
|
||||
|
||||
fn CFDataGetTypeID() -> CFTypeID;
|
||||
|
||||
+3
-20
@@ -53,7 +53,6 @@ pub struct CFDictionary {
|
||||
}
|
||||
|
||||
impl Drop for CFDictionary {
|
||||
#[fixed_stack_segment]
|
||||
fn drop(&mut self) {
|
||||
unsafe {
|
||||
CFRelease(self.as_CFTypeRef())
|
||||
@@ -72,7 +71,6 @@ impl TCFType<CFDictionaryRef> for CFDictionary {
|
||||
}
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn type_id(_: Option<CFDictionary>) -> CFTypeID {
|
||||
unsafe {
|
||||
@@ -82,7 +80,6 @@ impl TCFType<CFDictionaryRef> for CFDictionary {
|
||||
}
|
||||
|
||||
impl CFDictionary {
|
||||
#[fixed_stack_segment]
|
||||
pub fn from_CFType_pairs(pairs: &[(CFType, CFType)]) -> CFDictionary {
|
||||
let (keys, values) =
|
||||
vec::unzip(pairs.iter()
|
||||
@@ -90,8 +87,8 @@ impl CFDictionary {
|
||||
value.as_CFTypeRef())));
|
||||
unsafe {
|
||||
let dictionary_ref = CFDictionaryCreate(kCFAllocatorDefault,
|
||||
cast::transmute(vec::raw::to_ptr(keys)),
|
||||
cast::transmute(vec::raw::to_ptr(values)),
|
||||
cast::transmute(keys.as_ptr()),
|
||||
cast::transmute(values.as_ptr()),
|
||||
keys.len().to_CFIndex(),
|
||||
&kCFTypeDictionaryKeyCallBacks,
|
||||
&kCFTypeDictionaryValueCallBacks);
|
||||
@@ -99,7 +96,6 @@ impl CFDictionary {
|
||||
}
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
pub fn len(&self) -> uint {
|
||||
unsafe {
|
||||
@@ -112,7 +108,6 @@ impl CFDictionary {
|
||||
self.len() == 0
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
pub fn contains_key(&self, key: *c_void) -> bool {
|
||||
unsafe {
|
||||
@@ -120,7 +115,6 @@ impl CFDictionary {
|
||||
}
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
pub fn find(&self, key: *c_void) -> Option<*c_void> {
|
||||
unsafe {
|
||||
@@ -150,8 +144,7 @@ impl CFDictionary {
|
||||
}
|
||||
}
|
||||
|
||||
#[link_args="-framework CoreFoundation"]
|
||||
#[nolink]
|
||||
#[link(name = "CoreFoundation", kind = "framework")]
|
||||
extern {
|
||||
/*
|
||||
* CFDictionary.h
|
||||
@@ -160,23 +153,13 @@ extern {
|
||||
static kCFTypeDictionaryKeyCallBacks: CFDictionaryKeyCallBacks;
|
||||
static kCFTypeDictionaryValueCallBacks: CFDictionaryValueCallBacks;
|
||||
|
||||
fn CFDictionaryApplyFunction(theDict: CFDictionaryRef, applier: CFDictionaryApplierFunction,
|
||||
context: *c_void);
|
||||
fn CFDictionaryContainsKey(theDict: CFDictionaryRef, key: *c_void) -> Boolean;
|
||||
fn CFDictionaryContainsValue(theDict: CFDictionaryRef, value: *c_void) -> Boolean;
|
||||
fn CFDictionaryCreate(allocator: CFAllocatorRef, keys: **c_void, values: **c_void,
|
||||
numValues: CFIndex, keyCallBacks: *CFDictionaryKeyCallBacks,
|
||||
valueCallBacks: *CFDictionaryValueCallBacks)
|
||||
-> CFDictionaryRef;
|
||||
fn CFDictionaryCreateCopy(allocator: CFAllocatorRef,
|
||||
theDict: CFDictionaryRef)
|
||||
-> CFDictionaryRef;
|
||||
fn CFDictionaryGetCount(theDict: CFDictionaryRef) -> CFIndex;
|
||||
fn CFDictionaryGetCountOfKey(theDict: CFDictionaryRef, key: *c_void) -> CFIndex;
|
||||
fn CFDictionaryGetCountOfValue(theDict: CFDictionaryRef, value: *c_void) -> CFIndex;
|
||||
fn CFDictionaryGetKeysAndValues(theDict: CFDictionaryRef, keys: **c_void, values: **c_void);
|
||||
fn CFDictionaryGetTypeID() -> CFTypeID;
|
||||
fn CFDictionaryGetValue(theDict: CFDictionaryRef, key: *c_void) -> *c_void;
|
||||
fn CFDictionaryGetValueIfPresent(theDict: CFDictionaryRef, key: *c_void, value: *mut *c_void)
|
||||
-> Boolean;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#[link(name = "core_foundation", vers = "0.1")];
|
||||
#[crate_id = "github.com/mozilla-servo/rust-core-foundation#core_foundation:0.1"];
|
||||
|
||||
extern mod std;
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
#[allow(non_uppercase_statics)];
|
||||
|
||||
use base::{Boolean, CFAllocatorRef, CFRelease, CFTypeID, TCFType, kCFAllocatorDefault};
|
||||
use base::{CFAllocatorRef, CFRelease, CFTypeID, TCFType, kCFAllocatorDefault};
|
||||
|
||||
use std::cast;
|
||||
use std::libc::c_void;
|
||||
@@ -19,23 +19,23 @@ use std::libc::c_void;
|
||||
pub type CFNumberType = u32;
|
||||
|
||||
// members of enum CFNumberType
|
||||
static kCFNumberSInt8Type: CFNumberType = 1;
|
||||
static kCFNumberSInt16Type: CFNumberType = 2;
|
||||
static kCFNumberSInt32Type: CFNumberType = 3;
|
||||
// static kCFNumberSInt8Type: CFNumberType = 1;
|
||||
// static kCFNumberSInt16Type: CFNumberType = 2;
|
||||
// static kCFNumberSInt32Type: CFNumberType = 3;
|
||||
static kCFNumberSInt64Type: CFNumberType = 4;
|
||||
static kCFNumberFloat32Type: CFNumberType = 5;
|
||||
// static kCFNumberFloat32Type: CFNumberType = 5;
|
||||
static kCFNumberFloat64Type: CFNumberType = 6;
|
||||
static kCFNumberCharType: CFNumberType = 7;
|
||||
static kCFNumberShortType: CFNumberType = 8;
|
||||
static kCFNumberIntType: CFNumberType = 9;
|
||||
static kCFNumberLongType: CFNumberType = 10;
|
||||
static kCFNumberLongLongType: CFNumberType = 11;
|
||||
static kCFNumberFloatType: CFNumberType = 12;
|
||||
static kCFNumberDoubleType: CFNumberType = 13;
|
||||
static kCFNumberCFIndexType: CFNumberType = 14;
|
||||
static kCFNumberNSIntegerType: CFNumberType = 15;
|
||||
static kCFNumberCGFloatType: CFNumberType = 16;
|
||||
static kCFNumberMaxType: CFNumberType = 16;
|
||||
// static kCFNumberCharType: CFNumberType = 7;
|
||||
// static kCFNumberShortType: CFNumberType = 8;
|
||||
// static kCFNumberIntType: CFNumberType = 9;
|
||||
// static kCFNumberLongType: CFNumberType = 10;
|
||||
// static kCFNumberLongLongType: CFNumberType = 11;
|
||||
// static kCFNumberFloatType: CFNumberType = 12;
|
||||
// static kCFNumberDoubleType: CFNumberType = 13;
|
||||
// static kCFNumberCFIndexType: CFNumberType = 14;
|
||||
// static kCFNumberNSIntegerType: CFNumberType = 15;
|
||||
// static kCFNumberCGFloatType: CFNumberType = 16;
|
||||
// static kCFNumberMaxType: CFNumberType = 16;
|
||||
|
||||
struct __CFNumber;
|
||||
|
||||
@@ -49,7 +49,6 @@ pub struct CFNumber {
|
||||
}
|
||||
|
||||
impl Drop for CFNumber {
|
||||
#[fixed_stack_segment]
|
||||
fn drop(&mut self) {
|
||||
unsafe {
|
||||
CFRelease(self.as_CFTypeRef())
|
||||
@@ -68,7 +67,6 @@ impl TCFType<CFNumberRef> for CFNumber {
|
||||
}
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn type_id(_: Option<CFNumber>) -> CFTypeID {
|
||||
unsafe {
|
||||
@@ -79,7 +77,6 @@ impl TCFType<CFNumberRef> for CFNumber {
|
||||
|
||||
// TODO(pcwalton): Floating point.
|
||||
impl ToPrimitive for CFNumber {
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn to_i64(&self) -> Option<i64> {
|
||||
unsafe {
|
||||
@@ -90,14 +87,12 @@ impl ToPrimitive for CFNumber {
|
||||
}
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn to_u64(&self) -> Option<u64> {
|
||||
// CFNumber does not support unsigned 64-bit values.
|
||||
None
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn to_f64(&self) -> Option<f64> {
|
||||
unsafe {
|
||||
@@ -111,7 +106,6 @@ impl ToPrimitive for CFNumber {
|
||||
|
||||
// TODO(pcwalton): Floating point.
|
||||
impl FromPrimitive for CFNumber {
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn from_i64(value: i64) -> Option<CFNumber> {
|
||||
unsafe {
|
||||
@@ -122,14 +116,12 @@ impl FromPrimitive for CFNumber {
|
||||
}
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn from_u64(_: u64) -> Option<CFNumber> {
|
||||
// CFNumber does not support unsigned 64-bit values.
|
||||
None
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn from_f64(value: f64) -> Option<CFNumber> {
|
||||
unsafe {
|
||||
@@ -146,23 +138,17 @@ pub fn number(value: i64) -> CFNumber {
|
||||
FromPrimitive::from_i64(value).unwrap()
|
||||
}
|
||||
|
||||
#[link_args="-framework CoreFoundation"]
|
||||
#[nolink]
|
||||
#[link(name = "CoreFoundation", kind = "framework")]
|
||||
extern {
|
||||
/*
|
||||
* CFNumber.h
|
||||
*/
|
||||
|
||||
static kCFNumberNaN: CFNumberRef;
|
||||
static kCFNumberNegativeInfinity: CFNumberRef;
|
||||
static kCFNumberPositiveInfinity: CFNumberRef;
|
||||
|
||||
fn CFNumberCreate(allocator: CFAllocatorRef, theType: CFNumberType, valuePtr: *c_void)
|
||||
-> CFNumberRef;
|
||||
//fn CFNumberGetByteSize
|
||||
fn CFNumberGetType(number: CFNumberRef) -> CFNumberType;
|
||||
fn CFNumberGetValue(number: CFNumberRef, theType: CFNumberType, valuePtr: *mut c_void) -> bool;
|
||||
fn CFNumberIsFloatType(number: CFNumberRef) -> Boolean;
|
||||
//fn CFNumberCompare
|
||||
fn CFNumberGetTypeID() -> CFTypeID;
|
||||
}
|
||||
|
||||
@@ -9,12 +9,11 @@
|
||||
|
||||
//! An immutable bag of elements.
|
||||
|
||||
use base::{Boolean, CFAllocatorRef, CFIndex, CFIndexConvertible, CFRelease, CFType, CFTypeID};
|
||||
use base::{CFAllocatorRef, CFIndex, CFIndexConvertible, CFRelease, CFType, CFTypeID};
|
||||
use base::{TCFType, kCFAllocatorDefault};
|
||||
|
||||
use std::cast;
|
||||
use std::libc::c_void;
|
||||
use std::vec;
|
||||
|
||||
pub type CFSetRetainCallBack = *u8;
|
||||
pub type CFSetReleaseCallBack = *u8;
|
||||
@@ -43,7 +42,6 @@ pub struct CFSet {
|
||||
}
|
||||
|
||||
impl Drop for CFSet {
|
||||
#[fixed_stack_segment]
|
||||
fn drop(&mut self) {
|
||||
unsafe {
|
||||
CFRelease(self.as_CFTypeRef())
|
||||
@@ -62,7 +60,6 @@ impl TCFType<CFSetRef> for CFSet {
|
||||
}
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn type_id(_: Option<CFSet>) -> CFTypeID {
|
||||
unsafe {
|
||||
@@ -73,12 +70,11 @@ impl TCFType<CFSetRef> for CFSet {
|
||||
|
||||
impl CFSet {
|
||||
/// Creates a new set from a list of `CFType` instances.
|
||||
#[fixed_stack_segment]
|
||||
pub fn from_slice(elems: &[CFType]) -> CFSet {
|
||||
unsafe {
|
||||
let elems = elems.map(|elem| elem.as_CFTypeRef());
|
||||
let set_ref = CFSetCreate(kCFAllocatorDefault,
|
||||
cast::transmute(vec::raw::to_ptr(elems)),
|
||||
cast::transmute(elems.as_ptr()),
|
||||
elems.len().to_CFIndex(),
|
||||
&kCFTypeSetCallBacks);
|
||||
TCFType::wrap_under_create_rule(set_ref)
|
||||
@@ -86,28 +82,17 @@ impl CFSet {
|
||||
}
|
||||
}
|
||||
|
||||
#[link_args="-framework CoreFoundation"]
|
||||
#[nolink]
|
||||
#[link(name = "CoreFoundation", kind = "framework")]
|
||||
extern {
|
||||
/*
|
||||
* CFSet.h
|
||||
*/
|
||||
|
||||
static kCFTypeSetCallBacks: CFSetCallBacks;
|
||||
static kCFTypeCopyStringSetCallBacks: CFSetCallBacks;
|
||||
|
||||
/* Creating Sets */
|
||||
fn CFSetCreate(allocator: CFAllocatorRef, values: **c_void, numValues: CFIndex,
|
||||
callBacks: *CFSetCallBacks) -> CFSetRef;
|
||||
fn CFSetCreateCopy(allocator: CFAllocatorRef, theSet: CFSetRef) -> CFSetRef;
|
||||
|
||||
/* Examining a Set */
|
||||
fn CFSetContainsValue(theSet: CFSetRef, value: *c_void) -> Boolean;
|
||||
fn CFSetGetCount(theSet: CFSetRef) -> CFIndex;
|
||||
fn CFSetGetCountOfValue(theSet: CFSetRef, value: *c_void) -> CFIndex;
|
||||
fn CFSetGetValue(theSet: CFSetRef, value: *c_void) -> *c_void;
|
||||
fn CFSetGetValueIfPresent(theSet: CFSetRef, candidate: *c_void, value: **c_void) -> Boolean;
|
||||
fn CFSetGetValues(theSet: CFSetRef, values: **c_void);
|
||||
|
||||
/* Applying a Function to Set Members */
|
||||
//fn CFSetApplyFunction
|
||||
|
||||
@@ -24,35 +24,35 @@ pub type UniChar = libc::c_ushort;
|
||||
// CFString.h
|
||||
|
||||
pub type CFStringCompareFlags = CFOptionFlags;
|
||||
static kCFCompareCaseInsensitive: CFStringCompareFlags = 1;
|
||||
static kCFCompareBackwards: CFStringCompareFlags = 4;
|
||||
static kCFCompareAnchored: CFStringCompareFlags = 8;
|
||||
static kCFCompareNonliteral: CFStringCompareFlags = 16;
|
||||
static kCFCompareLocalized: CFStringCompareFlags = 32;
|
||||
static kCFCompareNumerically: CFStringCompareFlags = 64;
|
||||
static kCFCompareDiacriticInsensitive: CFStringCompareFlags = 128;
|
||||
static kCFCompareWidthInsensitive: CFStringCompareFlags = 256;
|
||||
static kCFCompareForcedOrdering: CFStringCompareFlags = 512;
|
||||
//static kCFCompareCaseInsensitive: CFStringCompareFlags = 1;
|
||||
//static kCFCompareBackwards: CFStringCompareFlags = 4;
|
||||
//static kCFCompareAnchored: CFStringCompareFlags = 8;
|
||||
//static kCFCompareNonliteral: CFStringCompareFlags = 16;
|
||||
//static kCFCompareLocalized: CFStringCompareFlags = 32;
|
||||
//static kCFCompareNumerically: CFStringCompareFlags = 64;
|
||||
//static kCFCompareDiacriticInsensitive: CFStringCompareFlags = 128;
|
||||
//static kCFCompareWidthInsensitive: CFStringCompareFlags = 256;
|
||||
//static kCFCompareForcedOrdering: CFStringCompareFlags = 512;
|
||||
|
||||
pub type CFStringEncoding = u32;
|
||||
|
||||
// OS X built-in encodings.
|
||||
|
||||
static kCFStringEncodingMacRoman: CFStringEncoding = 0;
|
||||
static kCFStringEncodingWindowsLatin1: CFStringEncoding = 0x0500;
|
||||
static kCFStringEncodingISOLatin1: CFStringEncoding = 0x0201;
|
||||
static kCFStringEncodingNextStepLatin: CFStringEncoding = 0x0B01;
|
||||
static kCFStringEncodingASCII: CFStringEncoding = 0x0600;
|
||||
static kCFStringEncodingUnicode: CFStringEncoding = 0x0100;
|
||||
//static kCFStringEncodingMacRoman: CFStringEncoding = 0;
|
||||
//static kCFStringEncodingWindowsLatin1: CFStringEncoding = 0x0500;
|
||||
//static kCFStringEncodingISOLatin1: CFStringEncoding = 0x0201;
|
||||
//static kCFStringEncodingNextStepLatin: CFStringEncoding = 0x0B01;
|
||||
//static kCFStringEncodingASCII: CFStringEncoding = 0x0600;
|
||||
//static kCFStringEncodingUnicode: CFStringEncoding = 0x0100;
|
||||
static kCFStringEncodingUTF8: CFStringEncoding = 0x08000100;
|
||||
static kCFStringEncodingNonLossyASCII: CFStringEncoding = 0x0BFF;
|
||||
//static kCFStringEncodingNonLossyASCII: CFStringEncoding = 0x0BFF;
|
||||
|
||||
static kCFStringEncodingUTF16: CFStringEncoding = 0x0100;
|
||||
static kCFStringEncodingUTF16BE: CFStringEncoding = 0x10000100;
|
||||
static kCFStringEncodingUTF16LE: CFStringEncoding = 0x14000100;
|
||||
static kCFStringEncodingUTF32: CFStringEncoding = 0x0c000100;
|
||||
static kCFStringEncodingUTF32BE: CFStringEncoding = 0x18000100;
|
||||
static kCFStringEncodingUTF32LE: CFStringEncoding = 0x1c000100;
|
||||
//static kCFStringEncodingUTF16: CFStringEncoding = 0x0100;
|
||||
//static kCFStringEncodingUTF16BE: CFStringEncoding = 0x10000100;
|
||||
//static kCFStringEncodingUTF16LE: CFStringEncoding = 0x14000100;
|
||||
//static kCFStringEncodingUTF32: CFStringEncoding = 0x0c000100;
|
||||
//static kCFStringEncodingUTF32BE: CFStringEncoding = 0x18000100;
|
||||
//static kCFStringEncodingUTF32LE: CFStringEncoding = 0x1c000100;
|
||||
|
||||
|
||||
// CFStringEncodingExt.h
|
||||
@@ -61,139 +61,139 @@ type CFStringEncodings = CFIndex;
|
||||
|
||||
// External encodings, except those defined above.
|
||||
// Defined above: kCFStringEncodingMacRoman = 0
|
||||
static kCFStringEncodingMacJapanese: CFStringEncoding = 1;
|
||||
static kCFStringEncodingMacChineseTrad: CFStringEncoding = 2;
|
||||
static kCFStringEncodingMacKorean: CFStringEncoding = 3;
|
||||
static kCFStringEncodingMacArabic: CFStringEncoding = 4;
|
||||
static kCFStringEncodingMacHebrew: CFStringEncoding = 5;
|
||||
static kCFStringEncodingMacGreek: CFStringEncoding = 6;
|
||||
static kCFStringEncodingMacCyrillic: CFStringEncoding = 7;
|
||||
static kCFStringEncodingMacDevanagari: CFStringEncoding = 9;
|
||||
static kCFStringEncodingMacGurmukhi: CFStringEncoding = 10;
|
||||
static kCFStringEncodingMacGujarati: CFStringEncoding = 11;
|
||||
static kCFStringEncodingMacOriya: CFStringEncoding = 12;
|
||||
static kCFStringEncodingMacBengali: CFStringEncoding = 13;
|
||||
static kCFStringEncodingMacTamil: CFStringEncoding = 14;
|
||||
static kCFStringEncodingMacTelugu: CFStringEncoding = 15;
|
||||
static kCFStringEncodingMacKannada: CFStringEncoding = 16;
|
||||
static kCFStringEncodingMacMalayalam: CFStringEncoding = 17;
|
||||
static kCFStringEncodingMacSinhalese: CFStringEncoding = 18;
|
||||
static kCFStringEncodingMacBurmese: CFStringEncoding = 19;
|
||||
static kCFStringEncodingMacKhmer: CFStringEncoding = 20;
|
||||
static kCFStringEncodingMacThai: CFStringEncoding = 21;
|
||||
static kCFStringEncodingMacLaotian: CFStringEncoding = 22;
|
||||
static kCFStringEncodingMacGeorgian: CFStringEncoding = 23;
|
||||
static kCFStringEncodingMacArmenian: CFStringEncoding = 24;
|
||||
static kCFStringEncodingMacChineseSimp: CFStringEncoding = 25;
|
||||
static kCFStringEncodingMacTibetan: CFStringEncoding = 26;
|
||||
static kCFStringEncodingMacMongolian: CFStringEncoding = 27;
|
||||
static kCFStringEncodingMacEthiopic: CFStringEncoding = 28;
|
||||
static kCFStringEncodingMacCentralEurRoman: CFStringEncoding = 29;
|
||||
static kCFStringEncodingMacVietnamese: CFStringEncoding = 30;
|
||||
static kCFStringEncodingMacExtArabic: CFStringEncoding = 31;
|
||||
static kCFStringEncodingMacSymbol: CFStringEncoding = 33;
|
||||
static kCFStringEncodingMacDingbats: CFStringEncoding = 34;
|
||||
static kCFStringEncodingMacTurkish: CFStringEncoding = 35;
|
||||
static kCFStringEncodingMacCroatian: CFStringEncoding = 36;
|
||||
static kCFStringEncodingMacIcelandic: CFStringEncoding = 37;
|
||||
static kCFStringEncodingMacRomanian: CFStringEncoding = 38;
|
||||
static kCFStringEncodingMacCeltic: CFStringEncoding = 39;
|
||||
static kCFStringEncodingMacGaelic: CFStringEncoding = 40;
|
||||
static kCFStringEncodingMacFarsi: CFStringEncoding = 0x8C;
|
||||
static kCFStringEncodingMacUkrainian: CFStringEncoding = 0x98;
|
||||
static kCFStringEncodingMacInuit: CFStringEncoding = 0xEC;
|
||||
static kCFStringEncodingMacVT100: CFStringEncoding = 0xFC;
|
||||
static kCFStringEncodingMacHFS: CFStringEncoding = 0xFF;
|
||||
//static kCFStringEncodingMacJapanese: CFStringEncoding = 1;
|
||||
//static kCFStringEncodingMacChineseTrad: CFStringEncoding = 2;
|
||||
//static kCFStringEncodingMacKorean: CFStringEncoding = 3;
|
||||
//static kCFStringEncodingMacArabic: CFStringEncoding = 4;
|
||||
//static kCFStringEncodingMacHebrew: CFStringEncoding = 5;
|
||||
//static kCFStringEncodingMacGreek: CFStringEncoding = 6;
|
||||
//static kCFStringEncodingMacCyrillic: CFStringEncoding = 7;
|
||||
//static kCFStringEncodingMacDevanagari: CFStringEncoding = 9;
|
||||
//static kCFStringEncodingMacGurmukhi: CFStringEncoding = 10;
|
||||
//static kCFStringEncodingMacGujarati: CFStringEncoding = 11;
|
||||
//static kCFStringEncodingMacOriya: CFStringEncoding = 12;
|
||||
//static kCFStringEncodingMacBengali: CFStringEncoding = 13;
|
||||
//static kCFStringEncodingMacTamil: CFStringEncoding = 14;
|
||||
//static kCFStringEncodingMacTelugu: CFStringEncoding = 15;
|
||||
//static kCFStringEncodingMacKannada: CFStringEncoding = 16;
|
||||
//static kCFStringEncodingMacMalayalam: CFStringEncoding = 17;
|
||||
//static kCFStringEncodingMacSinhalese: CFStringEncoding = 18;
|
||||
//static kCFStringEncodingMacBurmese: CFStringEncoding = 19;
|
||||
//static kCFStringEncodingMacKhmer: CFStringEncoding = 20;
|
||||
//static kCFStringEncodingMacThai: CFStringEncoding = 21;
|
||||
//static kCFStringEncodingMacLaotian: CFStringEncoding = 22;
|
||||
//static kCFStringEncodingMacGeorgian: CFStringEncoding = 23;
|
||||
//static kCFStringEncodingMacArmenian: CFStringEncoding = 24;
|
||||
//static kCFStringEncodingMacChineseSimp: CFStringEncoding = 25;
|
||||
//static kCFStringEncodingMacTibetan: CFStringEncoding = 26;
|
||||
//static kCFStringEncodingMacMongolian: CFStringEncoding = 27;
|
||||
//static kCFStringEncodingMacEthiopic: CFStringEncoding = 28;
|
||||
//static kCFStringEncodingMacCentralEurRoman: CFStringEncoding = 29;
|
||||
//static kCFStringEncodingMacVietnamese: CFStringEncoding = 30;
|
||||
//static kCFStringEncodingMacExtArabic: CFStringEncoding = 31;
|
||||
//static kCFStringEncodingMacSymbol: CFStringEncoding = 33;
|
||||
//static kCFStringEncodingMacDingbats: CFStringEncoding = 34;
|
||||
//static kCFStringEncodingMacTurkish: CFStringEncoding = 35;
|
||||
//static kCFStringEncodingMacCroatian: CFStringEncoding = 36;
|
||||
//static kCFStringEncodingMacIcelandic: CFStringEncoding = 37;
|
||||
//static kCFStringEncodingMacRomanian: CFStringEncoding = 38;
|
||||
//static kCFStringEncodingMacCeltic: CFStringEncoding = 39;
|
||||
//static kCFStringEncodingMacGaelic: CFStringEncoding = 40;
|
||||
//static kCFStringEncodingMacFarsi: CFStringEncoding = 0x8C;
|
||||
//static kCFStringEncodingMacUkrainian: CFStringEncoding = 0x98;
|
||||
//static kCFStringEncodingMacInuit: CFStringEncoding = 0xEC;
|
||||
//static kCFStringEncodingMacVT100: CFStringEncoding = 0xFC;
|
||||
//static kCFStringEncodingMacHFS: CFStringEncoding = 0xFF;
|
||||
// Defined above: kCFStringEncodingISOLatin1 = 0x0201
|
||||
static kCFStringEncodingISOLatin2: CFStringEncoding = 0x0202;
|
||||
static kCFStringEncodingISOLatin3: CFStringEncoding = 0x0203;
|
||||
static kCFStringEncodingISOLatin4: CFStringEncoding = 0x0204;
|
||||
static kCFStringEncodingISOLatinCyrillic: CFStringEncoding = 0x0205;
|
||||
static kCFStringEncodingISOLatinArabic: CFStringEncoding = 0x0206;
|
||||
static kCFStringEncodingISOLatinGreek: CFStringEncoding = 0x0207;
|
||||
static kCFStringEncodingISOLatinHebrew: CFStringEncoding = 0x0208;
|
||||
static kCFStringEncodingISOLatin5: CFStringEncoding = 0x0209;
|
||||
static kCFStringEncodingISOLatin6: CFStringEncoding = 0x020A;
|
||||
static kCFStringEncodingISOLatinThai: CFStringEncoding = 0x020B;
|
||||
static kCFStringEncodingISOLatin7: CFStringEncoding = 0x020D;
|
||||
static kCFStringEncodingISOLatin8: CFStringEncoding = 0x020E;
|
||||
static kCFStringEncodingISOLatin9: CFStringEncoding = 0x020F;
|
||||
static kCFStringEncodingISOLatin10: CFStringEncoding = 0x0210;
|
||||
static kCFStringEncodingDOSLatinUS: CFStringEncoding = 0x0400;
|
||||
static kCFStringEncodingDOSGreek: CFStringEncoding = 0x0405;
|
||||
static kCFStringEncodingDOSBalticRim: CFStringEncoding = 0x0406;
|
||||
static kCFStringEncodingDOSLatin1: CFStringEncoding = 0x0410;
|
||||
static kCFStringEncodingDOSGreek1: CFStringEncoding = 0x0411;
|
||||
static kCFStringEncodingDOSLatin2: CFStringEncoding = 0x0412;
|
||||
static kCFStringEncodingDOSCyrillic: CFStringEncoding = 0x0413;
|
||||
static kCFStringEncodingDOSTurkish: CFStringEncoding = 0x0414;
|
||||
static kCFStringEncodingDOSPortuguese: CFStringEncoding = 0x0415;
|
||||
static kCFStringEncodingDOSIcelandic: CFStringEncoding = 0x0416;
|
||||
static kCFStringEncodingDOSHebrew: CFStringEncoding = 0x0417;
|
||||
static kCFStringEncodingDOSCanadianFrench: CFStringEncoding = 0x0418;
|
||||
static kCFStringEncodingDOSArabic: CFStringEncoding = 0x0419;
|
||||
static kCFStringEncodingDOSNordic: CFStringEncoding = 0x041A;
|
||||
static kCFStringEncodingDOSRussian: CFStringEncoding = 0x041B;
|
||||
static kCFStringEncodingDOSGreek2: CFStringEncoding = 0x041C;
|
||||
static kCFStringEncodingDOSThai: CFStringEncoding = 0x041D;
|
||||
static kCFStringEncodingDOSJapanese: CFStringEncoding = 0x0420;
|
||||
static kCFStringEncodingDOSChineseSimplif: CFStringEncoding = 0x0421;
|
||||
static kCFStringEncodingDOSKorean: CFStringEncoding = 0x0422;
|
||||
static kCFStringEncodingDOSChineseTrad: CFStringEncoding = 0x0423;
|
||||
//static kCFStringEncodingISOLatin2: CFStringEncoding = 0x0202;
|
||||
//static kCFStringEncodingISOLatin3: CFStringEncoding = 0x0203;
|
||||
//static kCFStringEncodingISOLatin4: CFStringEncoding = 0x0204;
|
||||
//static kCFStringEncodingISOLatinCyrillic: CFStringEncoding = 0x0205;
|
||||
//static kCFStringEncodingISOLatinArabic: CFStringEncoding = 0x0206;
|
||||
//static kCFStringEncodingISOLatinGreek: CFStringEncoding = 0x0207;
|
||||
//static kCFStringEncodingISOLatinHebrew: CFStringEncoding = 0x0208;
|
||||
//static kCFStringEncodingISOLatin5: CFStringEncoding = 0x0209;
|
||||
//static kCFStringEncodingISOLatin6: CFStringEncoding = 0x020A;
|
||||
//static kCFStringEncodingISOLatinThai: CFStringEncoding = 0x020B;
|
||||
//static kCFStringEncodingISOLatin7: CFStringEncoding = 0x020D;
|
||||
//static kCFStringEncodingISOLatin8: CFStringEncoding = 0x020E;
|
||||
//static kCFStringEncodingISOLatin9: CFStringEncoding = 0x020F;
|
||||
//static kCFStringEncodingISOLatin10: CFStringEncoding = 0x0210;
|
||||
//static kCFStringEncodingDOSLatinUS: CFStringEncoding = 0x0400;
|
||||
//static kCFStringEncodingDOSGreek: CFStringEncoding = 0x0405;
|
||||
//static kCFStringEncodingDOSBalticRim: CFStringEncoding = 0x0406;
|
||||
//static kCFStringEncodingDOSLatin1: CFStringEncoding = 0x0410;
|
||||
//static kCFStringEncodingDOSGreek1: CFStringEncoding = 0x0411;
|
||||
//static kCFStringEncodingDOSLatin2: CFStringEncoding = 0x0412;
|
||||
//static kCFStringEncodingDOSCyrillic: CFStringEncoding = 0x0413;
|
||||
//static kCFStringEncodingDOSTurkish: CFStringEncoding = 0x0414;
|
||||
//static kCFStringEncodingDOSPortuguese: CFStringEncoding = 0x0415;
|
||||
//static kCFStringEncodingDOSIcelandic: CFStringEncoding = 0x0416;
|
||||
//static kCFStringEncodingDOSHebrew: CFStringEncoding = 0x0417;
|
||||
//static kCFStringEncodingDOSCanadianFrench: CFStringEncoding = 0x0418;
|
||||
//static kCFStringEncodingDOSArabic: CFStringEncoding = 0x0419;
|
||||
//static kCFStringEncodingDOSNordic: CFStringEncoding = 0x041A;
|
||||
//static kCFStringEncodingDOSRussian: CFStringEncoding = 0x041B;
|
||||
//static kCFStringEncodingDOSGreek2: CFStringEncoding = 0x041C;
|
||||
//static kCFStringEncodingDOSThai: CFStringEncoding = 0x041D;
|
||||
//static kCFStringEncodingDOSJapanese: CFStringEncoding = 0x0420;
|
||||
//static kCFStringEncodingDOSChineseSimplif: CFStringEncoding = 0x0421;
|
||||
//static kCFStringEncodingDOSKorean: CFStringEncoding = 0x0422;
|
||||
//static kCFStringEncodingDOSChineseTrad: CFStringEncoding = 0x0423;
|
||||
// Defined above: kCFStringEncodingWindowsLatin1 = 0x0500
|
||||
static kCFStringEncodingWindowsLatin2: CFStringEncoding = 0x0501;
|
||||
static kCFStringEncodingWindowsCyrillic: CFStringEncoding = 0x0502;
|
||||
static kCFStringEncodingWindowsGreek: CFStringEncoding = 0x0503;
|
||||
static kCFStringEncodingWindowsLatin5: CFStringEncoding = 0x0504;
|
||||
static kCFStringEncodingWindowsHebrew: CFStringEncoding = 0x0505;
|
||||
static kCFStringEncodingWindowsArabic: CFStringEncoding = 0x0506;
|
||||
static kCFStringEncodingWindowsBalticRim: CFStringEncoding = 0x0507;
|
||||
static kCFStringEncodingWindowsVietnamese: CFStringEncoding = 0x0508;
|
||||
static kCFStringEncodingWindowsKoreanJohab: CFStringEncoding = 0x0510;
|
||||
//static kCFStringEncodingWindowsLatin2: CFStringEncoding = 0x0501;
|
||||
//static kCFStringEncodingWindowsCyrillic: CFStringEncoding = 0x0502;
|
||||
//static kCFStringEncodingWindowsGreek: CFStringEncoding = 0x0503;
|
||||
//static kCFStringEncodingWindowsLatin5: CFStringEncoding = 0x0504;
|
||||
//static kCFStringEncodingWindowsHebrew: CFStringEncoding = 0x0505;
|
||||
//static kCFStringEncodingWindowsArabic: CFStringEncoding = 0x0506;
|
||||
//static kCFStringEncodingWindowsBalticRim: CFStringEncoding = 0x0507;
|
||||
//static kCFStringEncodingWindowsVietnamese: CFStringEncoding = 0x0508;
|
||||
//static kCFStringEncodingWindowsKoreanJohab: CFStringEncoding = 0x0510;
|
||||
// Defined above: kCFStringEncodingASCII = 0x0600
|
||||
static kCFStringEncodingANSEL: CFStringEncoding = 0x0601;
|
||||
static kCFStringEncodingJIS_X0201_76: CFStringEncoding = 0x0620;
|
||||
static kCFStringEncodingJIS_X0208_83: CFStringEncoding = 0x0621;
|
||||
static kCFStringEncodingJIS_X0208_90: CFStringEncoding = 0x0622;
|
||||
static kCFStringEncodingJIS_X0212_90: CFStringEncoding = 0x0623;
|
||||
static kCFStringEncodingJIS_C6226_78: CFStringEncoding = 0x0624;
|
||||
static kCFStringEncodingShiftJIS_X0213: CFStringEncoding = 0x0628;
|
||||
static kCFStringEncodingShiftJIS_X0213_MenKuTen: CFStringEncoding = 0x0629;
|
||||
static kCFStringEncodingGB_2312_80: CFStringEncoding = 0x0630;
|
||||
static kCFStringEncodingGBK_95: CFStringEncoding = 0x0631;
|
||||
static kCFStringEncodingGB_18030_2000: CFStringEncoding = 0x0632;
|
||||
static kCFStringEncodingKSC_5601_87: CFStringEncoding = 0x0640;
|
||||
static kCFStringEncodingKSC_5601_92_Johab: CFStringEncoding = 0x0641;
|
||||
static kCFStringEncodingCNS_11643_92_P1: CFStringEncoding = 0x0651;
|
||||
static kCFStringEncodingCNS_11643_92_P2: CFStringEncoding = 0x0652;
|
||||
static kCFStringEncodingCNS_11643_92_P3: CFStringEncoding = 0x0653;
|
||||
static kCFStringEncodingISO_2022_JP: CFStringEncoding = 0x0820;
|
||||
static kCFStringEncodingISO_2022_JP_2: CFStringEncoding = 0x0821;
|
||||
static kCFStringEncodingISO_2022_JP_1: CFStringEncoding = 0x0822;
|
||||
static kCFStringEncodingISO_2022_JP_3: CFStringEncoding = 0x0823;
|
||||
static kCFStringEncodingISO_2022_CN: CFStringEncoding = 0x0830;
|
||||
static kCFStringEncodingISO_2022_CN_EXT: CFStringEncoding = 0x0831;
|
||||
static kCFStringEncodingISO_2022_KR: CFStringEncoding = 0x0840;
|
||||
static kCFStringEncodingEUC_JP: CFStringEncoding = 0x0920;
|
||||
static kCFStringEncodingEUC_CN: CFStringEncoding = 0x0930;
|
||||
static kCFStringEncodingEUC_TW: CFStringEncoding = 0x0931;
|
||||
static kCFStringEncodingEUC_KR: CFStringEncoding = 0x0940;
|
||||
static kCFStringEncodingShiftJIS: CFStringEncoding = 0x0A01;
|
||||
static kCFStringEncodingKOI8_R: CFStringEncoding = 0x0A02;
|
||||
static kCFStringEncodingBig5: CFStringEncoding = 0x0A03;
|
||||
static kCFStringEncodingMacRomanLatin1: CFStringEncoding = 0x0A04;
|
||||
static kCFStringEncodingHZ_GB_2312: CFStringEncoding = 0x0A05;
|
||||
static kCFStringEncodingBig5_HKSCS_1999: CFStringEncoding = 0x0A06;
|
||||
static kCFStringEncodingVISCII: CFStringEncoding = 0x0A07;
|
||||
static kCFStringEncodingKOI8_U: CFStringEncoding = 0x0A08;
|
||||
static kCFStringEncodingBig5_E: CFStringEncoding = 0x0A09;
|
||||
//static kCFStringEncodingANSEL: CFStringEncoding = 0x0601;
|
||||
//static kCFStringEncodingJIS_X0201_76: CFStringEncoding = 0x0620;
|
||||
//static kCFStringEncodingJIS_X0208_83: CFStringEncoding = 0x0621;
|
||||
//static kCFStringEncodingJIS_X0208_90: CFStringEncoding = 0x0622;
|
||||
//static kCFStringEncodingJIS_X0212_90: CFStringEncoding = 0x0623;
|
||||
//static kCFStringEncodingJIS_C6226_78: CFStringEncoding = 0x0624;
|
||||
//static kCFStringEncodingShiftJIS_X0213: CFStringEncoding = 0x0628;
|
||||
//static kCFStringEncodingShiftJIS_X0213_MenKuTen: CFStringEncoding = 0x0629;
|
||||
//static kCFStringEncodingGB_2312_80: CFStringEncoding = 0x0630;
|
||||
//static kCFStringEncodingGBK_95: CFStringEncoding = 0x0631;
|
||||
//static kCFStringEncodingGB_18030_2000: CFStringEncoding = 0x0632;
|
||||
//static kCFStringEncodingKSC_5601_87: CFStringEncoding = 0x0640;
|
||||
//static kCFStringEncodingKSC_5601_92_Johab: CFStringEncoding = 0x0641;
|
||||
//static kCFStringEncodingCNS_11643_92_P1: CFStringEncoding = 0x0651;
|
||||
//static kCFStringEncodingCNS_11643_92_P2: CFStringEncoding = 0x0652;
|
||||
//static kCFStringEncodingCNS_11643_92_P3: CFStringEncoding = 0x0653;
|
||||
//static kCFStringEncodingISO_2022_JP: CFStringEncoding = 0x0820;
|
||||
//static kCFStringEncodingISO_2022_JP_2: CFStringEncoding = 0x0821;
|
||||
//static kCFStringEncodingISO_2022_JP_1: CFStringEncoding = 0x0822;
|
||||
//static kCFStringEncodingISO_2022_JP_3: CFStringEncoding = 0x0823;
|
||||
//static kCFStringEncodingISO_2022_CN: CFStringEncoding = 0x0830;
|
||||
//static kCFStringEncodingISO_2022_CN_EXT: CFStringEncoding = 0x0831;
|
||||
//static kCFStringEncodingISO_2022_KR: CFStringEncoding = 0x0840;
|
||||
//static kCFStringEncodingEUC_JP: CFStringEncoding = 0x0920;
|
||||
//static kCFStringEncodingEUC_CN: CFStringEncoding = 0x0930;
|
||||
//static kCFStringEncodingEUC_TW: CFStringEncoding = 0x0931;
|
||||
//static kCFStringEncodingEUC_KR: CFStringEncoding = 0x0940;
|
||||
//static kCFStringEncodingShiftJIS: CFStringEncoding = 0x0A01;
|
||||
//static kCFStringEncodingKOI8_R: CFStringEncoding = 0x0A02;
|
||||
//static kCFStringEncodingBig5: CFStringEncoding = 0x0A03;
|
||||
//static kCFStringEncodingMacRomanLatin1: CFStringEncoding = 0x0A04;
|
||||
//static kCFStringEncodingHZ_GB_2312: CFStringEncoding = 0x0A05;
|
||||
//static kCFStringEncodingBig5_HKSCS_1999: CFStringEncoding = 0x0A06;
|
||||
//static kCFStringEncodingVISCII: CFStringEncoding = 0x0A07;
|
||||
//static kCFStringEncodingKOI8_U: CFStringEncoding = 0x0A08;
|
||||
//static kCFStringEncodingBig5_E: CFStringEncoding = 0x0A09;
|
||||
// Defined above: kCFStringEncodingNextStepLatin = 0x0B01
|
||||
static kCFStringEncodingNextStepJapanese: CFStringEncoding = 0x0B02;
|
||||
static kCFStringEncodingEBCDIC_US: CFStringEncoding = 0x0C01;
|
||||
static kCFStringEncodingEBCDIC_CP037: CFStringEncoding = 0x0C02;
|
||||
static kCFStringEncodingUTF7: CFStringEncoding = 0x04000100;
|
||||
static kCFStringEncodingUTF7_IMAP: CFStringEncoding = 0x0A10;
|
||||
static kCFStringEncodingShiftJIS_X0213_00: CFStringEncoding = 0x0628; /* Deprecated */
|
||||
//static kCFStringEncodingNextStepJapanese: CFStringEncoding = 0x0B02;
|
||||
//static kCFStringEncodingEBCDIC_US: CFStringEncoding = 0x0C01;
|
||||
//static kCFStringEncodingEBCDIC_CP037: CFStringEncoding = 0x0C02;
|
||||
//static kCFStringEncodingUTF7: CFStringEncoding = 0x04000100;
|
||||
//static kCFStringEncodingUTF7_IMAP: CFStringEncoding = 0x0A10;
|
||||
//static kCFStringEncodingShiftJIS_X0213_00: CFStringEncoding = 0x0628; /* Deprecated */
|
||||
|
||||
struct __CFString;
|
||||
|
||||
@@ -207,7 +207,6 @@ pub struct CFString {
|
||||
}
|
||||
|
||||
impl Clone for CFString {
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn clone(&self) -> CFString {
|
||||
unsafe {
|
||||
@@ -217,7 +216,6 @@ impl Clone for CFString {
|
||||
}
|
||||
|
||||
impl Drop for CFString {
|
||||
#[fixed_stack_segment]
|
||||
fn drop(&mut self) {
|
||||
unsafe {
|
||||
CFRelease(self.as_CFTypeRef())
|
||||
@@ -237,7 +235,6 @@ impl TCFType<CFStringRef> for CFString {
|
||||
}
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn type_id(_: Option<CFString>) -> CFTypeID {
|
||||
unsafe {
|
||||
@@ -248,25 +245,21 @@ impl TCFType<CFStringRef> for CFString {
|
||||
|
||||
impl FromStr for CFString {
|
||||
/// Creates a new `CFString` instance from a Rust string.
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn from_str(string: &str) -> Option<CFString> {
|
||||
unsafe {
|
||||
let string_ref = string.as_imm_buf(|bytes, len| {
|
||||
CFStringCreateWithBytes(kCFAllocatorDefault,
|
||||
bytes,
|
||||
len.to_CFIndex(),
|
||||
kCFStringEncodingUTF8,
|
||||
false as Boolean,
|
||||
kCFAllocatorNull)
|
||||
});
|
||||
let string_ref = CFStringCreateWithBytes(kCFAllocatorDefault,
|
||||
string.as_ptr(),
|
||||
string.len().to_CFIndex(),
|
||||
kCFStringEncodingUTF8,
|
||||
false as Boolean,
|
||||
kCFAllocatorNull);
|
||||
Some(TCFType::wrap_under_create_rule(string_ref))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ToStr for CFString {
|
||||
#[fixed_stack_segment]
|
||||
fn to_str(&self) -> ~str {
|
||||
unsafe {
|
||||
let char_len = self.char_len();
|
||||
@@ -291,7 +284,7 @@ impl ToStr for CFString {
|
||||
kCFStringEncodingUTF8,
|
||||
0,
|
||||
false as Boolean,
|
||||
vec::raw::to_ptr(buffer),
|
||||
buffer.as_ptr(),
|
||||
buffer.len().to_CFIndex(),
|
||||
&mut bytes_used) as uint;
|
||||
assert!(chars_written.to_CFIndex() == char_len);
|
||||
@@ -309,24 +302,20 @@ impl ToStr for CFString {
|
||||
impl CFString {
|
||||
/// Like `CFString::from_string`, but references a string that can be used as a backing store
|
||||
/// by virtue of being statically allocated.
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
pub fn from_static_string(string: &'static str) -> CFString {
|
||||
unsafe {
|
||||
let string_ref = string.as_imm_buf(|bytes, len| {
|
||||
CFStringCreateWithBytesNoCopy(kCFAllocatorDefault,
|
||||
bytes,
|
||||
len.to_CFIndex(),
|
||||
kCFStringEncodingUTF8,
|
||||
false as Boolean,
|
||||
kCFAllocatorNull)
|
||||
});
|
||||
let string_ref = CFStringCreateWithBytesNoCopy(kCFAllocatorDefault,
|
||||
string.as_ptr(),
|
||||
string.len().to_CFIndex(),
|
||||
kCFStringEncodingUTF8,
|
||||
false as Boolean,
|
||||
kCFAllocatorNull);
|
||||
TCFType::wrap_under_create_rule(string_ref)
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns the number of characters in the string.
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
pub fn char_len(&self) -> CFIndex {
|
||||
unsafe {
|
||||
@@ -335,8 +324,7 @@ impl CFString {
|
||||
}
|
||||
}
|
||||
|
||||
#[link_args="-framework CoreFoundation"]
|
||||
#[nolink]
|
||||
#[link(name = "CoreFoundation", kind = "framework")]
|
||||
extern {
|
||||
/*
|
||||
* CFString.h
|
||||
|
||||
@@ -11,9 +11,8 @@
|
||||
|
||||
#[allow(non_uppercase_statics)];
|
||||
|
||||
use base::{CFAllocatorRef, CFOptionFlags, CFRelease, CFTypeID, TCFType};
|
||||
use data::CFDataRef;
|
||||
use string::{CFString, CFStringRef, CFStringEncoding};
|
||||
use base::{CFOptionFlags, CFRelease, CFTypeID, TCFType};
|
||||
use string::{CFString, CFStringRef};
|
||||
|
||||
struct __CFURL;
|
||||
|
||||
@@ -24,7 +23,6 @@ pub struct CFURL {
|
||||
}
|
||||
|
||||
impl Drop for CFURL {
|
||||
#[fixed_stack_segment]
|
||||
fn drop(&mut self) {
|
||||
unsafe {
|
||||
CFRelease(self.as_CFTypeRef())
|
||||
@@ -43,7 +41,6 @@ impl TCFType<CFURLRef> for CFURL {
|
||||
}
|
||||
}
|
||||
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn type_id(_: Option<CFURL>) -> CFTypeID {
|
||||
unsafe {
|
||||
@@ -53,7 +50,6 @@ impl TCFType<CFURLRef> for CFURL {
|
||||
}
|
||||
|
||||
impl ToStr for CFURL {
|
||||
#[fixed_stack_segment]
|
||||
#[inline]
|
||||
fn to_str(&self) -> ~str {
|
||||
unsafe {
|
||||
@@ -65,61 +61,60 @@ impl ToStr for CFURL {
|
||||
|
||||
type CFURLBookmarkCreationOptions = CFOptionFlags;
|
||||
|
||||
static kCFURLBookmarkCreationPreferFileIDResolutionMask: CFURLBookmarkCreationOptions =
|
||||
(1 << 8) as u32;
|
||||
static kCFURLBookmarkCreationMinimalBookmarkMask: CFURLBookmarkCreationOptions =
|
||||
(1 << 9) as u32;
|
||||
static kCFURLBookmarkCreationSuitableForBookmarkFile: CFURLBookmarkCreationOptions =
|
||||
(1 << 10) as u32;
|
||||
static kCFURLBookmarkCreationWithSecurityScope: CFURLBookmarkCreationOptions =
|
||||
(1 << 11) as u32;
|
||||
static kCFURLBookmarkCreationSecurityScopeAllowOnlyReadAccess: CFURLBookmarkCreationOptions =
|
||||
(1 << 12) as u32;
|
||||
// static kCFURLBookmarkCreationPreferFileIDResolutionMask: CFURLBookmarkCreationOptions =
|
||||
// (1 << 8) as u32;
|
||||
// static kCFURLBookmarkCreationMinimalBookmarkMask: CFURLBookmarkCreationOptions =
|
||||
// (1 << 9) as u32;
|
||||
// static kCFURLBookmarkCreationSuitableForBookmarkFile: CFURLBookmarkCreationOptions =
|
||||
// (1 << 10) as u32;
|
||||
// static kCFURLBookmarkCreationWithSecurityScope: CFURLBookmarkCreationOptions =
|
||||
// (1 << 11) as u32;
|
||||
// static kCFURLBookmarkCreationSecurityScopeAllowOnlyReadAccess: CFURLBookmarkCreationOptions =
|
||||
// (1 << 12) as u32;
|
||||
|
||||
// TODO: there are a lot of missing keys and constants. Add if you are bored or need them.
|
||||
|
||||
#[link_args="-framework CoreFoundation"]
|
||||
#[nolink]
|
||||
#[link(name = "CoreFoundation", kind = "framework")]
|
||||
extern {
|
||||
/*
|
||||
* CFURL.h
|
||||
*/
|
||||
|
||||
/* Common File System Resource Keys */
|
||||
static kCFURLAttributeModificationDateKey: CFStringRef;
|
||||
static kCFURLContentAccessDateKey: CFStringRef;
|
||||
static kCFURLContentModificationDateKey: CFStringRef;
|
||||
static kCFURLCreationDateKey: CFStringRef;
|
||||
static kCFURLCustomIconKey: CFStringRef;
|
||||
static kCFURLEffectiveIconKey: CFStringRef;
|
||||
static kCFURLFileResourceIdentifierKey: CFStringRef;
|
||||
static kCFURLFileSecurityKey: CFStringRef;
|
||||
static kCFURLHasHiddenExtensionKey: CFStringRef;
|
||||
static kCFURLIsDirectoryKey: CFStringRef;
|
||||
static kCFURLIsExecutableKey: CFStringRef;
|
||||
static kCFURLIsHiddenKey: CFStringRef;
|
||||
static kCFURLIsPackageKey: CFStringRef;
|
||||
static kCFURLIsReadableKey: CFStringRef;
|
||||
static kCFURLIsRegularFileKey: CFStringRef;
|
||||
static kCFURLIsSymbolicLinkKey: CFStringRef;
|
||||
static kCFURLIsSystemImmutableKey: CFStringRef;
|
||||
static kCFURLIsUserImmutableKey: CFStringRef;
|
||||
static kCFURLIsVolumeKey: CFStringRef;
|
||||
static kCFURLIsWritableKey: CFStringRef;
|
||||
static kCFURLLabelColorKey: CFStringRef;
|
||||
static kCFURLLabelNumberKey: CFStringRef;
|
||||
static kCFURLLinkCountKey: CFStringRef;
|
||||
static kCFURLLocalizedLabelKey: CFStringRef;
|
||||
static kCFURLLocalizedNameKey: CFStringRef;
|
||||
static kCFURLLocalizedTypeDescriptionKey: CFStringRef;
|
||||
static kCFURLNameKey: CFStringRef;
|
||||
static kCFURLParentDirectoryURLKey: CFStringRef;
|
||||
static kCFURLPreferredIOBlockSizeKey: CFStringRef;
|
||||
static kCFURLTypeIdentifierKey: CFStringRef;
|
||||
static kCFURLVolumeIdentifierKey: CFStringRef;
|
||||
static kCFURLVolumeURLKey: CFStringRef;
|
||||
static kCFURLIsExcludedFromBackupKey: CFStringRef;
|
||||
static kCFURLFileResourceTypeKey: CFStringRef;
|
||||
// static kCFURLAttributeModificationDateKey: CFStringRef;
|
||||
// static kCFURLContentAccessDateKey: CFStringRef;
|
||||
// static kCFURLContentModificationDateKey: CFStringRef;
|
||||
// static kCFURLCreationDateKey: CFStringRef;
|
||||
// static kCFURLCustomIconKey: CFStringRef;
|
||||
// static kCFURLEffectiveIconKey: CFStringRef;
|
||||
// static kCFURLFileResourceIdentifierKey: CFStringRef;
|
||||
// static kCFURLFileSecurityKey: CFStringRef;
|
||||
// static kCFURLHasHiddenExtensionKey: CFStringRef;
|
||||
// static kCFURLIsDirectoryKey: CFStringRef;
|
||||
// static kCFURLIsExecutableKey: CFStringRef;
|
||||
// static kCFURLIsHiddenKey: CFStringRef;
|
||||
// static kCFURLIsPackageKey: CFStringRef;
|
||||
// static kCFURLIsReadableKey: CFStringRef;
|
||||
// static kCFURLIsRegularFileKey: CFStringRef;
|
||||
// static kCFURLIsSymbolicLinkKey: CFStringRef;
|
||||
// static kCFURLIsSystemImmutableKey: CFStringRef;
|
||||
// static kCFURLIsUserImmutableKey: CFStringRef;
|
||||
// static kCFURLIsVolumeKey: CFStringRef;
|
||||
// static kCFURLIsWritableKey: CFStringRef;
|
||||
// static kCFURLLabelColorKey: CFStringRef;
|
||||
// static kCFURLLabelNumberKey: CFStringRef;
|
||||
// static kCFURLLinkCountKey: CFStringRef;
|
||||
// static kCFURLLocalizedLabelKey: CFStringRef;
|
||||
// static kCFURLLocalizedNameKey: CFStringRef;
|
||||
// static kCFURLLocalizedTypeDescriptionKey: CFStringRef;
|
||||
// static kCFURLNameKey: CFStringRef;
|
||||
// static kCFURLParentDirectoryURLKey: CFStringRef;
|
||||
// static kCFURLPreferredIOBlockSizeKey: CFStringRef;
|
||||
// static kCFURLTypeIdentifierKey: CFStringRef;
|
||||
// static kCFURLVolumeIdentifierKey: CFStringRef;
|
||||
// static kCFURLVolumeURLKey: CFStringRef;
|
||||
// static kCFURLIsExcludedFromBackupKey: CFStringRef;
|
||||
// static kCFURLFileResourceTypeKey: CFStringRef;
|
||||
|
||||
/* Creating a CFURL */
|
||||
//fn CFURLCopyAbsoluteURL
|
||||
@@ -137,8 +132,8 @@ extern {
|
||||
//fn CFURLCreateWithBytes
|
||||
//fn CFURLCreateWithFileSystemPath
|
||||
//fn CFURLCreateWithFileSystemPathRelativeToBase
|
||||
fn CFURLCreateWithString(allocator: CFAllocatorRef, urlString: CFStringRef,
|
||||
baseURL: CFURLRef) -> CFURLRef;
|
||||
//fn CFURLCreateWithString(allocator: CFAllocatorRef, urlString: CFStringRef,
|
||||
// baseURL: CFURLRef) -> CFURLRef;
|
||||
|
||||
/* Accessing the Parts of a URL */
|
||||
//fn CFURLCanBeDecomposed
|
||||
@@ -160,8 +155,8 @@ extern {
|
||||
//fn CFURLHasDirectoryPath
|
||||
|
||||
/* Converting URLs to Other Representations */
|
||||
fn CFURLCreateData(allocator: CFAllocatorRef, url: CFURLRef,
|
||||
encoding: CFStringEncoding, escapeWhitespace: bool) -> CFDataRef;
|
||||
//fn CFURLCreateData(allocator: CFAllocatorRef, url: CFURLRef,
|
||||
// encoding: CFStringEncoding, escapeWhitespace: bool) -> CFDataRef;
|
||||
//fn CFURLCreateStringByAddingPercentEscapes
|
||||
//fn CFURLCreateStringByReplacingPercentEscapes
|
||||
//fn CFURLCreateStringByReplacingPercentEscapesUsingEncoding
|
||||
@@ -170,7 +165,7 @@ extern {
|
||||
fn CFURLGetString(anURL: CFURLRef) -> CFStringRef;
|
||||
|
||||
/* Getting URL Properties */
|
||||
fn CFURLGetBaseURL(anURL: CFURLRef) -> CFURLRef;
|
||||
//fn CFURLGetBaseURL(anURL: CFURLRef) -> CFURLRef;
|
||||
//fn CFURLGetBytes
|
||||
//fn CFURLGetByteRangeForComponent
|
||||
fn CFURLGetTypeID() -> CFTypeID;
|
||||
|
||||
Reference in New Issue
Block a user