core_foundation_sys/
string_tokenizer.rs1use std::os::raw::c_void;
11
12use crate::array::CFMutableArrayRef;
13use crate::base::{CFAllocatorRef, CFIndex, CFOptionFlags, CFRange, CFTypeID, CFTypeRef};
14use crate::locale::CFLocaleRef;
15use crate::string::CFStringRef;
16
17#[repr(C)]
18pub struct __CFStringTokenizer(c_void);
19pub type CFStringTokenizerRef = *mut __CFStringTokenizer;
20
21pub type CFStringTokenizerTokenType = CFOptionFlags;
22
23pub const kCFStringTokenizerTokenNone: CFStringTokenizerTokenType = 0;
24pub const kCFStringTokenizerTokenNormal: CFStringTokenizerTokenType = 1 << 0;
25pub const kCFStringTokenizerTokenHasSubTokensMask: CFStringTokenizerTokenType = 1 << 1;
26pub const kCFStringTokenizerTokenHasDerivedSubTokensMask: CFStringTokenizerTokenType = 1 << 2;
27pub const kCFStringTokenizerTokenHasHasNumbersMask: CFStringTokenizerTokenType = 1 << 3;
28pub const kCFStringTokenizerTokenHasNonLettersMask: CFStringTokenizerTokenType = 1 << 4;
29pub const kCFStringTokenizerTokenIsCJWordMask: CFStringTokenizerTokenType = 1 << 5;
30
31pub const kCFStringTokenizerUnitWord: CFOptionFlags = 0;
33pub const kCFStringTokenizerUnitSentence: CFOptionFlags = 1;
34pub const kCFStringTokenizerUnitParagraph: CFOptionFlags = 2;
35pub const kCFStringTokenizerUnitLineBreak: CFOptionFlags = 3;
36pub const kCFStringTokenizerUnitWordBoundary: CFOptionFlags = 4;
37pub const kCFStringTokenizerAttributeLatinTranscription: CFOptionFlags = 1 << 16;
38pub const kCFStringTokenizerAttributeLanguage: CFOptionFlags = 1 << 17;
39
40extern "C" {
41 pub fn CFStringTokenizerCreate(
47 alloc: CFAllocatorRef,
48 string: CFStringRef,
49 range: CFRange,
50 options: CFOptionFlags,
51 locale: CFLocaleRef,
52 ) -> CFStringTokenizerRef;
53
54 pub fn CFStringTokenizerSetString(
56 tokenizer: CFStringTokenizerRef,
57 string: CFStringRef,
58 range: CFRange,
59 );
60
61 pub fn CFStringTokenizerAdvanceToNextToken(
63 tokenizer: CFStringTokenizerRef,
64 ) -> CFStringTokenizerTokenType;
65 pub fn CFStringTokenizerGoToTokenAtIndex(
66 tokenizer: CFStringTokenizerRef,
67 index: CFIndex,
68 ) -> CFStringTokenizerTokenType;
69
70 pub fn CFStringTokenizerCopyCurrentTokenAttribute(
72 tokenizer: CFStringTokenizerRef,
73 attribute: CFOptionFlags,
74 ) -> CFTypeRef;
75 pub fn CFStringTokenizerGetCurrentTokenRange(tokenizer: CFStringTokenizerRef) -> CFRange;
76 pub fn CFStringTokenizerGetCurrentSubTokens(
77 tokenizer: CFStringTokenizerRef,
78 ranges: *mut CFRange,
79 maxRangeLength: CFIndex,
80 derivedSubTokens: CFMutableArrayRef,
81 ) -> CFIndex;
82
83 pub fn CFStringTokenizerCopyBestStringLanguage(
85 string: CFStringRef,
86 range: CFRange,
87 ) -> CFStringRef;
88
89 pub fn CFStringTokenizerGetTypeID() -> CFTypeID;
91}