1use libc::{c_char};
4
5use array::*;
6use base::*;
7use character_set::*;
8use data::*;
9use dictionary::*;
10use locale::*;
11
12pub type CFStringEncoding = u32;
13
14pub const kCFStringEncodingMacRoman: CFStringEncoding = 0;
15pub const kCFStringEncodingWindowsLatin1: CFStringEncoding = 0x0500;
16pub const kCFStringEncodingISOLatin1: CFStringEncoding = 0x0201;
17pub const kCFStringEncodingNextStepLatin: CFStringEncoding = 0x0B01;
18pub const kCFStringEncodingASCII: CFStringEncoding = 0x0600;
19pub const kCFStringEncodingUnicode: CFStringEncoding = 0x0100;
20pub const kCFStringEncodingUTF8: CFStringEncoding = 0x08000100;
21pub const kCFStringEncodingNonLossyASCII: CFStringEncoding = 0x0BFF;
22pub const kCFStringEncodingUTF16: CFStringEncoding = 0x0100;
23pub const kCFStringEncodingUTF16BE: CFStringEncoding = 0x10000100;
24pub const kCFStringEncodingUTF16LE: CFStringEncoding = 0x14000100;
25pub const kCFStringEncodingUTF32: CFStringEncoding = 0x0c000100;
26pub const kCFStringEncodingUTF32BE: CFStringEncoding = 0x18000100;
27pub const kCFStringEncodingUTF32LE: CFStringEncoding = 0x1c000100;
28pub const kCFStringEncodingInvalidId: CFStringEncoding = 0xffffffff;
29
30pub type CFStringCompareFlags = CFOptionFlags;
31pub const kCFCompareCaseInsensitive: CFStringCompareFlags = 1;
32pub const kCFCompareBackwards: CFStringCompareFlags = 4;
33pub const kCFCompareAnchored: CFStringCompareFlags = 8;
34pub const kCFCompareNonliteral: CFStringCompareFlags = 16;
35pub const kCFCompareLocalized: CFStringCompareFlags = 32;
36pub const kCFCompareNumerically: CFStringCompareFlags = 64;
37pub const kCFCompareDiacriticInsensitive: CFStringCompareFlags = 128;
38pub const kCFCompareWidthInsensitive: CFStringCompareFlags = 256;
39pub const kCFCompareForcedOrdering: CFStringCompareFlags = 512;
40
41
42extern "C" {
43 pub fn CFStringGetTypeID() -> CFTypeID;
44
45 pub fn CFStringCreateWithCString(alloc: CFAllocatorRef, cStr: *const c_char, encoding: CFStringEncoding) -> CFStringRef;
48 pub fn CFStringCreateWithBytes(alloc: CFAllocatorRef, bytes: *const UInt8, numBytes: CFIndex, encoding: CFStringEncoding, isExternalRepresentation: Boolean) -> CFStringRef;
49 pub fn CFStringCreateWithCharacters(alloc: CFAllocatorRef, chars: *const UniChar, numChars: CFIndex) -> CFStringRef;
50
51 pub fn CFStringCreateWithCStringNoCopy(alloc: CFAllocatorRef, cStr: *const c_char, encoding: CFStringEncoding, contentsDeallocator: CFAllocatorRef) -> CFStringRef;
52 pub fn CFStringCreateWithBytesNoCopy(alloc: CFAllocatorRef, bytes: *const UInt8, numBytes: CFIndex, encoding: CFStringEncoding, isExternalRepresentation: Boolean, contentsDeallocator: CFAllocatorRef) -> CFStringRef;
53 pub fn CFStringCreateWithCharactersNoCopy(alloc: CFAllocatorRef, chars: *const UniChar, numChars: CFIndex, contentsDeallocator: CFAllocatorRef) -> CFStringRef;
54
55 pub fn CFStringCreateWithSubstring(alloc: CFAllocatorRef, str: CFStringRef, range: CFRange) -> CFStringRef;
56 pub fn CFStringCreateCopy(alloc: CFAllocatorRef, theString: CFStringRef) -> CFStringRef;
57 pub fn CFStringCreateWithFormat(alloc: CFAllocatorRef, formatOptions: CFDictionaryRef, format: CFStringRef, ...) -> CFStringRef;
58 pub fn CFStringCreateMutable(alloc: CFAllocatorRef, maxLength: CFIndex) -> CFMutableStringRef;
59 pub fn CFStringCreateMutableCopy(alloc: CFAllocatorRef, maxLength: CFIndex, theString: CFStringRef) -> CFMutableStringRef;
60 pub fn CFStringCreateMutableWithExternalCharactersNoCopy(alloc: CFAllocatorRef, chars: *mut UniChar, numChars: CFIndex, capacity: CFIndex, externalCharactersAllocator: CFAllocatorRef) -> CFMutableStringRef;
61
62 pub fn CFStringGetLength(theString: CFStringRef) -> CFIndex;
65 pub fn CFStringGetCharacterAtIndex(theString: CFStringRef, idx: CFIndex) -> UniChar;
66 pub fn CFStringGetCharacters(theString: CFStringRef, range: CFRange, buffer: *mut UniChar);
67
68 pub fn CFStringGetCString(theString: CFStringRef, buffer: *mut c_char, bufferSize: CFIndex, encoding: CFStringEncoding) -> Boolean;
71 pub fn CFStringGetCStringPtr(theString: CFStringRef, encoding: CFStringEncoding) -> *const c_char;
72 pub fn CFStringGetCharactersPtr(theString: CFStringRef) -> *const UniChar;
73 pub fn CFStringGetBytes(theString: CFStringRef, range: CFRange, encoding: CFStringEncoding, lossByte: UInt8, isExternalRepresentation: Boolean, buffer: *mut UInt8, maxBufLen: CFIndex, usedBufLen: *mut CFIndex) -> CFIndex;
74
75 pub fn CFStringCreateFromExternalRepresentation(alloc: CFAllocatorRef, data: CFDataRef, encoding: CFStringEncoding) -> CFStringRef;
78 pub fn CFStringCreateExternalRepresentation(alloc: CFAllocatorRef, theString: CFStringRef, encoding: CFStringEncoding, lossByte: UInt8) -> CFDataRef;
79
80 pub fn CFStringGetSmallestEncoding(theString: CFStringRef) -> CFStringEncoding;
81 pub fn CFStringGetFastestEncoding(theString: CFStringRef) -> CFStringEncoding;
82
83 pub fn CFStringGetSystemEncoding() -> CFStringEncoding;
84 pub fn CFStringGetMaximumSizeForEncoding(length: CFIndex, encoding: CFStringEncoding) -> CFIndex;
85
86 pub fn CFStringGetFileSystemRepresentation(string: CFStringRef, buffer: *mut c_char, maxBufLen: CFIndex) -> Boolean;
89 pub fn CFStringGetMaximumSizeOfFileSystemRepresentation(string: CFStringRef) -> CFIndex;
90 pub fn CFStringCreateWithFileSystemRepresentation(alloc: CFAllocatorRef, buffer: *const c_char) -> CFStringRef;
91
92 pub fn CFStringCompareWithOptionsAndLocale(theString1: CFStringRef, theString2: CFStringRef, rangeToCompare: CFRange, compareOptions: CFStringCompareFlags, locale: CFLocaleRef) -> CFComparisonResult;
95 pub fn CFStringCompareWithOptions(theString1: CFStringRef, theString2: CFStringRef, rangeToCompare: CFRange, compareOptions: CFStringCompareFlags) -> CFComparisonResult;
96 pub fn CFStringCompare(theString1: CFStringRef, theString2: CFStringRef, compareOptions: CFStringCompareFlags) -> CFComparisonResult;
97
98 pub fn CFStringFindWithOptionsAndLocale(theString: CFStringRef, stringToFind: CFStringRef, rangeToSearch: CFRange, searchOptions: CFStringCompareFlags, locale: CFLocaleRef, result: *mut CFRange) -> Boolean;
99 pub fn CFStringFindWithOptions(theString: CFStringRef, stringToFind: CFStringRef, rangeToSearch: CFRange, searchOptions: CFStringCompareFlags, result: *mut CFRange) -> Boolean;
100 pub fn CFStringCreateArrayWithFindResults(alloc: CFAllocatorRef, theString: CFStringRef, stringToFind: CFStringRef, rangeToSearch: CFRange, compareOptions: CFStringCompareFlags) -> CFArrayRef;
101
102 pub fn CFStringFind(theString: CFStringRef, stringToFind: CFStringRef, compareOptions: CFStringCompareFlags) -> CFRange;
103 pub fn CFStringHasPrefix(theString: CFStringRef, prefix: CFStringRef) -> Boolean;
104 pub fn CFStringHasSuffix(theString: CFStringRef, suffix: CFStringRef) -> Boolean;
105
106 pub fn CFStringGetRangeOfComposedCharactersAtIndex(theString: CFStringRef, theIndex: CFIndex) -> CFRange;
107 pub fn CFStringFindCharacterFromSet(theString: CFStringRef, theSet: CFCharacterSetRef, rangeToSearch: CFRange, searchOptions: CFStringCompareFlags, result: *mut CFRange) -> Boolean;
108 pub fn CFStringGetLineBounds(theString: CFStringRef, range: CFRange, lineBeginIndex: *mut CFIndex, lineEndIndex: *mut CFIndex, contentsEndIndex: *mut CFIndex);
109 pub fn CFStringGetParagraphBounds(string: CFStringRef, range: CFRange, parBeginIndex: *mut CFIndex, parEndIndex: *mut CFIndex, contentsEndIndex: *mut CFIndex);
110
111 pub fn CFShow(obj: CFTypeRef);
112 pub fn CFShowStr(str_: CFStringRef);
113}