core_foundation_sys/
number_formatter.rs1use std::os::raw::{c_double, c_void};
11
12use crate::base::{Boolean, CFAllocatorRef, CFIndex, CFOptionFlags, CFRange, CFTypeID, CFTypeRef};
13use crate::locale::CFLocaleRef;
14use crate::number::{CFNumberRef, CFNumberType};
15use crate::string::CFStringRef;
16
17#[repr(C)]
18pub struct __CFNumberFormatter(c_void);
19
20pub type CFNumberFormatterRef = *mut __CFNumberFormatter;
21
22pub type CFNumberFormatterKey = CFStringRef;
23pub type CFNumberFormatterStyle = CFIndex;
24pub type CFNumberFormatterOptionFlags = CFOptionFlags;
25pub type CFNumberFormatterRoundingMode = CFIndex;
26pub type CFNumberFormatterPadPosition = CFIndex;
27
28pub const kCFNumberFormatterNoStyle: CFNumberFormatterStyle = 0;
30pub const kCFNumberFormatterDecimalStyle: CFNumberFormatterStyle = 1;
31pub const kCFNumberFormatterCurrencyStyle: CFNumberFormatterStyle = 2;
32pub const kCFNumberFormatterPercentStyle: CFNumberFormatterStyle = 3;
33pub const kCFNumberFormatterScientificStyle: CFNumberFormatterStyle = 4;
34pub const kCFNumberFormatterSpellOutStyle: CFNumberFormatterStyle = 5;
35pub const kCFNumberFormatterParseIntegersOnly: CFNumberFormatterOptionFlags = 1;
42
43pub const kCFNumberFormatterRoundCeiling: CFNumberFormatterRoundingMode = 0;
45pub const kCFNumberFormatterRoundFloor: CFNumberFormatterRoundingMode = 1;
46pub const kCFNumberFormatterRoundDown: CFNumberFormatterRoundingMode = 2;
47pub const kCFNumberFormatterRoundUp: CFNumberFormatterRoundingMode = 3;
48pub const kCFNumberFormatterRoundHalfEven: CFNumberFormatterRoundingMode = 4;
49pub const kCFNumberFormatterRoundHalfDown: CFNumberFormatterRoundingMode = 5;
50pub const kCFNumberFormatterRoundHalfUp: CFNumberFormatterRoundingMode = 6;
51
52pub const kCFNumberFormatterPadBeforePrefix: CFNumberFormatterPadPosition = 0;
54pub const kCFNumberFormatterPadAfterPrefix: CFNumberFormatterPadPosition = 1;
55pub const kCFNumberFormatterPadBeforeSuffix: CFNumberFormatterPadPosition = 2;
56pub const kCFNumberFormatterPadAfterSuffix: CFNumberFormatterPadPosition = 3;
57
58extern "C" {
59 pub static kCFNumberFormatterCurrencyCode: CFNumberFormatterKey; pub static kCFNumberFormatterDecimalSeparator: CFNumberFormatterKey; pub static kCFNumberFormatterCurrencyDecimalSeparator: CFNumberFormatterKey; pub static kCFNumberFormatterAlwaysShowDecimalSeparator: CFNumberFormatterKey; pub static kCFNumberFormatterGroupingSeparator: CFNumberFormatterKey; pub static kCFNumberFormatterUseGroupingSeparator: CFNumberFormatterKey; pub static kCFNumberFormatterPercentSymbol: CFNumberFormatterKey; pub static kCFNumberFormatterZeroSymbol: CFNumberFormatterKey; pub static kCFNumberFormatterNaNSymbol: CFNumberFormatterKey; pub static kCFNumberFormatterInfinitySymbol: CFNumberFormatterKey; pub static kCFNumberFormatterMinusSign: CFNumberFormatterKey; pub static kCFNumberFormatterPlusSign: CFNumberFormatterKey; pub static kCFNumberFormatterCurrencySymbol: CFNumberFormatterKey; pub static kCFNumberFormatterExponentSymbol: CFNumberFormatterKey; pub static kCFNumberFormatterMinIntegerDigits: CFNumberFormatterKey; pub static kCFNumberFormatterMaxIntegerDigits: CFNumberFormatterKey; pub static kCFNumberFormatterMinFractionDigits: CFNumberFormatterKey; pub static kCFNumberFormatterMaxFractionDigits: CFNumberFormatterKey; pub static kCFNumberFormatterGroupingSize: CFNumberFormatterKey; pub static kCFNumberFormatterSecondaryGroupingSize: CFNumberFormatterKey; pub static kCFNumberFormatterRoundingMode: CFNumberFormatterKey; pub static kCFNumberFormatterRoundingIncrement: CFNumberFormatterKey; pub static kCFNumberFormatterFormatWidth: CFNumberFormatterKey; pub static kCFNumberFormatterPaddingPosition: CFNumberFormatterKey; pub static kCFNumberFormatterPaddingCharacter: CFNumberFormatterKey; pub static kCFNumberFormatterDefaultFormat: CFNumberFormatterKey; pub static kCFNumberFormatterMultiplier: CFNumberFormatterKey; pub static kCFNumberFormatterPositivePrefix: CFNumberFormatterKey; pub static kCFNumberFormatterPositiveSuffix: CFNumberFormatterKey; pub static kCFNumberFormatterNegativePrefix: CFNumberFormatterKey; pub static kCFNumberFormatterNegativeSuffix: CFNumberFormatterKey; pub static kCFNumberFormatterPerMillSymbol: CFNumberFormatterKey; pub static kCFNumberFormatterInternationalCurrencySymbol: CFNumberFormatterKey; pub static kCFNumberFormatterCurrencyGroupingSeparator: CFNumberFormatterKey; pub static kCFNumberFormatterIsLenient: CFNumberFormatterKey; pub static kCFNumberFormatterUseSignificantDigits: CFNumberFormatterKey; pub static kCFNumberFormatterMinSignificantDigits: CFNumberFormatterKey; pub static kCFNumberFormatterMaxSignificantDigits: CFNumberFormatterKey; pub fn CFNumberFormatterCreate(
107 allocator: CFAllocatorRef,
108 locale: CFLocaleRef,
109 style: CFNumberFormatterStyle,
110 ) -> CFNumberFormatterRef;
111
112 pub fn CFNumberFormatterSetFormat(formatter: CFNumberFormatterRef, formatString: CFStringRef);
114 pub fn CFNumberFormatterSetProperty(
115 formatter: CFNumberFormatterRef,
116 key: CFNumberFormatterKey,
117 value: CFTypeRef,
118 );
119
120 pub fn CFNumberFormatterCreateNumberFromString(
122 allocator: CFAllocatorRef,
123 formatter: CFNumberFormatterRef,
124 string: CFStringRef,
125 rangep: *mut CFRange,
126 options: CFOptionFlags,
127 ) -> CFNumberRef;
128 pub fn CFNumberFormatterCreateStringWithNumber(
129 allocator: CFAllocatorRef,
130 formatter: CFNumberFormatterRef,
131 number: CFNumberRef,
132 ) -> CFStringRef;
133 pub fn CFNumberFormatterCreateStringWithValue(
134 allocator: CFAllocatorRef,
135 formatter: CFNumberFormatterRef,
136 numberType: CFNumberType,
137 valuePtr: *const c_void,
138 ) -> CFStringRef;
139 pub fn CFNumberFormatterGetDecimalInfoForCurrencyCode(
140 currencyCode: CFStringRef,
141 defaultFractionDigits: *mut i32,
142 roundingIncrement: *mut c_double,
143 ) -> Boolean;
144 pub fn CFNumberFormatterGetValueFromString(
145 formatter: CFNumberFormatterRef,
146 string: CFStringRef,
147 rangep: *mut CFRange,
148 numberType: CFNumberType,
149 valuePtr: *mut c_void,
150 ) -> Boolean;
151
152 pub fn CFNumberFormatterCopyProperty(
154 formatter: CFNumberFormatterRef,
155 key: CFNumberFormatterKey,
156 ) -> CFTypeRef;
157 pub fn CFNumberFormatterGetFormat(formatter: CFNumberFormatterRef) -> CFStringRef;
158 pub fn CFNumberFormatterGetLocale(formatter: CFNumberFormatterRef) -> CFLocaleRef;
159 pub fn CFNumberFormatterGetStyle(formatter: CFNumberFormatterRef) -> CFNumberFormatterStyle;
160
161 pub fn CFNumberFormatterGetTypeID() -> CFTypeID;
163}