CoreFoundation_sys/
string.rs

1// Exports of <CoreFoundation/CFString.h>
2
3use 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    // constructors
46
47    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    // accessors
63
64    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    // conversions
69
70    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    // string <-> data
76
77    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    // filesystem path conversion
87
88    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    // comparison
93
94    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}