1use crate::common::*;
4use crate::Foundation::*;
5
6pub type unichar = c_ushort;
7
8ns_options!(
9 #[underlying(NSUInteger)]
10 pub enum NSStringCompareOptions {
11 NSCaseInsensitiveSearch = 1,
12 NSLiteralSearch = 2,
13 NSBackwardsSearch = 4,
14 NSAnchoredSearch = 8,
15 NSNumericSearch = 64,
16 NSDiacriticInsensitiveSearch = 128,
17 NSWidthInsensitiveSearch = 256,
18 NSForcedOrderingSearch = 512,
19 NSRegularExpressionSearch = 1024,
20 }
21);
22
23ns_enum!(
24 #[underlying(NSUInteger)]
25 pub enum NSStringEncoding {
26 NSASCIIStringEncoding = 1,
27 NSNEXTSTEPStringEncoding = 2,
28 NSJapaneseEUCStringEncoding = 3,
29 NSUTF8StringEncoding = 4,
30 NSISOLatin1StringEncoding = 5,
31 NSSymbolStringEncoding = 6,
32 NSNonLossyASCIIStringEncoding = 7,
33 NSShiftJISStringEncoding = 8,
34 NSISOLatin2StringEncoding = 9,
35 NSUnicodeStringEncoding = 10,
36 NSWindowsCP1251StringEncoding = 11,
37 NSWindowsCP1252StringEncoding = 12,
38 NSWindowsCP1253StringEncoding = 13,
39 NSWindowsCP1254StringEncoding = 14,
40 NSWindowsCP1250StringEncoding = 15,
41 NSISO2022JPStringEncoding = 21,
42 NSMacOSRomanStringEncoding = 30,
43 NSUTF16StringEncoding = NSUnicodeStringEncoding,
44 NSUTF16BigEndianStringEncoding = 0x90000100,
45 NSUTF16LittleEndianStringEncoding = 0x94000100,
46 NSUTF32StringEncoding = 0x8c000100,
47 NSUTF32BigEndianStringEncoding = 0x98000100,
48 NSUTF32LittleEndianStringEncoding = 0x9c000100,
49 }
50);
51
52ns_options!(
53 #[underlying(NSUInteger)]
54 pub enum NSStringEncodingConversionOptions {
55 NSStringEncodingConversionAllowLossy = 1,
56 NSStringEncodingConversionExternalRepresentation = 2,
57 }
58);
59
60extern_class!(
61 #[derive(PartialEq, Eq, Hash)]
62 #[cfg(feature = "Foundation_NSString")]
63 pub struct NSString;
64
65 #[cfg(feature = "Foundation_NSString")]
66 unsafe impl ClassType for NSString {
67 type Super = NSObject;
68 type Mutability = ImmutableWithMutableSubclass<NSMutableString>;
69 }
70);
71
72#[cfg(feature = "Foundation_NSString")]
73unsafe impl NSCoding for NSString {}
74
75#[cfg(feature = "Foundation_NSString")]
76unsafe impl NSCopying for NSString {}
77
78#[cfg(feature = "Foundation_NSString")]
79unsafe impl NSMutableCopying for NSString {}
80
81#[cfg(feature = "Foundation_NSString")]
82unsafe impl NSObjectProtocol for NSString {}
83
84#[cfg(feature = "Foundation_NSString")]
85unsafe impl NSSecureCoding for NSString {}
86
87extern_methods!(
88 #[cfg(feature = "Foundation_NSString")]
89 unsafe impl NSString {
90 #[method(length)]
91 pub fn length(&self) -> NSUInteger;
92
93 #[method(characterAtIndex:)]
94 pub unsafe fn characterAtIndex(&self, index: NSUInteger) -> unichar;
95
96 #[method_id(@__retain_semantics Init init)]
97 pub fn init(this: Allocated<Self>) -> Id<Self>;
98
99 #[cfg(feature = "Foundation_NSCoder")]
100 #[method_id(@__retain_semantics Init initWithCoder:)]
101 pub unsafe fn initWithCoder(this: Allocated<Self>, coder: &NSCoder) -> Option<Id<Self>>;
102 }
103);
104
105extern_methods!(
106 #[cfg(feature = "Foundation_NSString")]
108 unsafe impl NSString {
109 #[method_id(@__retain_semantics New new)]
110 pub fn new() -> Id<Self>;
111 }
112);
113
114#[cfg(feature = "Foundation_NSString")]
115impl DefaultId for NSString {
116 #[inline]
117 fn default_id() -> Id<Self> {
118 Self::new()
119 }
120}
121
122ns_options!(
123 #[underlying(NSUInteger)]
124 pub enum NSStringEnumerationOptions {
125 NSStringEnumerationByLines = 0,
126 NSStringEnumerationByParagraphs = 1,
127 NSStringEnumerationByComposedCharacterSequences = 2,
128 NSStringEnumerationByWords = 3,
129 NSStringEnumerationBySentences = 4,
130 NSStringEnumerationByCaretPositions = 5,
131 NSStringEnumerationByDeletionClusters = 6,
132 NSStringEnumerationReverse = 1 << 8,
133 NSStringEnumerationSubstringNotRequired = 1 << 9,
134 NSStringEnumerationLocalized = 1 << 10,
135 }
136);
137
138typed_extensible_enum!(
139 pub type NSStringTransform = NSString;
140);
141
142extern_static!(NSStringTransformLatinToKatakana: &'static NSStringTransform);
143
144extern_static!(NSStringTransformLatinToHiragana: &'static NSStringTransform);
145
146extern_static!(NSStringTransformLatinToHangul: &'static NSStringTransform);
147
148extern_static!(NSStringTransformLatinToArabic: &'static NSStringTransform);
149
150extern_static!(NSStringTransformLatinToHebrew: &'static NSStringTransform);
151
152extern_static!(NSStringTransformLatinToThai: &'static NSStringTransform);
153
154extern_static!(NSStringTransformLatinToCyrillic: &'static NSStringTransform);
155
156extern_static!(NSStringTransformLatinToGreek: &'static NSStringTransform);
157
158extern_static!(NSStringTransformToLatin: &'static NSStringTransform);
159
160extern_static!(NSStringTransformMandarinToLatin: &'static NSStringTransform);
161
162extern_static!(NSStringTransformHiraganaToKatakana: &'static NSStringTransform);
163
164extern_static!(NSStringTransformFullwidthToHalfwidth: &'static NSStringTransform);
165
166extern_static!(NSStringTransformToXMLHex: &'static NSStringTransform);
167
168extern_static!(NSStringTransformToUnicodeName: &'static NSStringTransform);
169
170extern_static!(NSStringTransformStripCombiningMarks: &'static NSStringTransform);
171
172extern_static!(NSStringTransformStripDiacritics: &'static NSStringTransform);
173
174extern_methods!(
175 #[cfg(feature = "Foundation_NSString")]
177 unsafe impl NSString {
178 #[method_id(@__retain_semantics Other substringFromIndex:)]
179 pub unsafe fn substringFromIndex(&self, from: NSUInteger) -> Id<NSString>;
180
181 #[method_id(@__retain_semantics Other substringToIndex:)]
182 pub unsafe fn substringToIndex(&self, to: NSUInteger) -> Id<NSString>;
183
184 #[method_id(@__retain_semantics Other substringWithRange:)]
185 pub unsafe fn substringWithRange(&self, range: NSRange) -> Id<NSString>;
186
187 #[method(getCharacters:range:)]
188 pub unsafe fn getCharacters_range(&self, buffer: NonNull<unichar>, range: NSRange);
189
190 #[method(compare:)]
191 pub fn compare(&self, string: &NSString) -> NSComparisonResult;
192
193 #[method(compare:options:)]
194 pub unsafe fn compare_options(
195 &self,
196 string: &NSString,
197 mask: NSStringCompareOptions,
198 ) -> NSComparisonResult;
199
200 #[method(compare:options:range:)]
201 pub unsafe fn compare_options_range(
202 &self,
203 string: &NSString,
204 mask: NSStringCompareOptions,
205 range_of_receiver_to_compare: NSRange,
206 ) -> NSComparisonResult;
207
208 #[method(compare:options:range:locale:)]
209 pub unsafe fn compare_options_range_locale(
210 &self,
211 string: &NSString,
212 mask: NSStringCompareOptions,
213 range_of_receiver_to_compare: NSRange,
214 locale: Option<&AnyObject>,
215 ) -> NSComparisonResult;
216
217 #[method(caseInsensitiveCompare:)]
218 pub unsafe fn caseInsensitiveCompare(&self, string: &NSString) -> NSComparisonResult;
219
220 #[method(localizedCompare:)]
221 pub unsafe fn localizedCompare(&self, string: &NSString) -> NSComparisonResult;
222
223 #[method(localizedCaseInsensitiveCompare:)]
224 pub unsafe fn localizedCaseInsensitiveCompare(
225 &self,
226 string: &NSString,
227 ) -> NSComparisonResult;
228
229 #[method(localizedStandardCompare:)]
230 pub unsafe fn localizedStandardCompare(&self, string: &NSString) -> NSComparisonResult;
231
232 #[method(isEqualToString:)]
233 pub unsafe fn isEqualToString(&self, a_string: &NSString) -> bool;
234
235 #[method(hasPrefix:)]
236 pub fn hasPrefix(&self, str: &NSString) -> bool;
237
238 #[method(hasSuffix:)]
239 pub fn hasSuffix(&self, str: &NSString) -> bool;
240
241 #[method_id(@__retain_semantics Other commonPrefixWithString:options:)]
242 pub unsafe fn commonPrefixWithString_options(
243 &self,
244 str: &NSString,
245 mask: NSStringCompareOptions,
246 ) -> Id<NSString>;
247
248 #[method(containsString:)]
249 pub unsafe fn containsString(&self, str: &NSString) -> bool;
250
251 #[method(localizedCaseInsensitiveContainsString:)]
252 pub unsafe fn localizedCaseInsensitiveContainsString(&self, str: &NSString) -> bool;
253
254 #[method(localizedStandardContainsString:)]
255 pub unsafe fn localizedStandardContainsString(&self, str: &NSString) -> bool;
256
257 #[method(localizedStandardRangeOfString:)]
258 pub unsafe fn localizedStandardRangeOfString(&self, str: &NSString) -> NSRange;
259
260 #[method(rangeOfString:)]
261 pub unsafe fn rangeOfString(&self, search_string: &NSString) -> NSRange;
262
263 #[method(rangeOfString:options:)]
264 pub unsafe fn rangeOfString_options(
265 &self,
266 search_string: &NSString,
267 mask: NSStringCompareOptions,
268 ) -> NSRange;
269
270 #[method(rangeOfString:options:range:)]
271 pub unsafe fn rangeOfString_options_range(
272 &self,
273 search_string: &NSString,
274 mask: NSStringCompareOptions,
275 range_of_receiver_to_search: NSRange,
276 ) -> NSRange;
277
278 #[cfg(feature = "Foundation_NSLocale")]
279 #[method(rangeOfString:options:range:locale:)]
280 pub unsafe fn rangeOfString_options_range_locale(
281 &self,
282 search_string: &NSString,
283 mask: NSStringCompareOptions,
284 range_of_receiver_to_search: NSRange,
285 locale: Option<&NSLocale>,
286 ) -> NSRange;
287
288 #[cfg(feature = "Foundation_NSCharacterSet")]
289 #[method(rangeOfCharacterFromSet:)]
290 pub unsafe fn rangeOfCharacterFromSet(&self, search_set: &NSCharacterSet) -> NSRange;
291
292 #[cfg(feature = "Foundation_NSCharacterSet")]
293 #[method(rangeOfCharacterFromSet:options:)]
294 pub unsafe fn rangeOfCharacterFromSet_options(
295 &self,
296 search_set: &NSCharacterSet,
297 mask: NSStringCompareOptions,
298 ) -> NSRange;
299
300 #[cfg(feature = "Foundation_NSCharacterSet")]
301 #[method(rangeOfCharacterFromSet:options:range:)]
302 pub unsafe fn rangeOfCharacterFromSet_options_range(
303 &self,
304 search_set: &NSCharacterSet,
305 mask: NSStringCompareOptions,
306 range_of_receiver_to_search: NSRange,
307 ) -> NSRange;
308
309 #[method(rangeOfComposedCharacterSequenceAtIndex:)]
310 pub unsafe fn rangeOfComposedCharacterSequenceAtIndex(&self, index: NSUInteger) -> NSRange;
311
312 #[method(rangeOfComposedCharacterSequencesForRange:)]
313 pub unsafe fn rangeOfComposedCharacterSequencesForRange(&self, range: NSRange) -> NSRange;
314
315 #[method_id(@__retain_semantics Other stringByAppendingString:)]
316 pub fn stringByAppendingString(&self, a_string: &NSString) -> Id<NSString>;
317
318 #[method(doubleValue)]
319 pub unsafe fn doubleValue(&self) -> c_double;
320
321 #[method(floatValue)]
322 pub unsafe fn floatValue(&self) -> c_float;
323
324 #[method(intValue)]
325 pub unsafe fn intValue(&self) -> c_int;
326
327 #[method(integerValue)]
328 pub unsafe fn integerValue(&self) -> NSInteger;
329
330 #[method(longLongValue)]
331 pub unsafe fn longLongValue(&self) -> c_longlong;
332
333 #[method(boolValue)]
334 pub unsafe fn boolValue(&self) -> bool;
335
336 #[method_id(@__retain_semantics Other uppercaseString)]
337 pub unsafe fn uppercaseString(&self) -> Id<NSString>;
338
339 #[method_id(@__retain_semantics Other lowercaseString)]
340 pub unsafe fn lowercaseString(&self) -> Id<NSString>;
341
342 #[method_id(@__retain_semantics Other capitalizedString)]
343 pub unsafe fn capitalizedString(&self) -> Id<NSString>;
344
345 #[method_id(@__retain_semantics Other localizedUppercaseString)]
346 pub unsafe fn localizedUppercaseString(&self) -> Id<NSString>;
347
348 #[method_id(@__retain_semantics Other localizedLowercaseString)]
349 pub unsafe fn localizedLowercaseString(&self) -> Id<NSString>;
350
351 #[method_id(@__retain_semantics Other localizedCapitalizedString)]
352 pub unsafe fn localizedCapitalizedString(&self) -> Id<NSString>;
353
354 #[cfg(feature = "Foundation_NSLocale")]
355 #[method_id(@__retain_semantics Other uppercaseStringWithLocale:)]
356 pub unsafe fn uppercaseStringWithLocale(&self, locale: Option<&NSLocale>) -> Id<NSString>;
357
358 #[cfg(feature = "Foundation_NSLocale")]
359 #[method_id(@__retain_semantics Other lowercaseStringWithLocale:)]
360 pub unsafe fn lowercaseStringWithLocale(&self, locale: Option<&NSLocale>) -> Id<NSString>;
361
362 #[cfg(feature = "Foundation_NSLocale")]
363 #[method_id(@__retain_semantics Other capitalizedStringWithLocale:)]
364 pub unsafe fn capitalizedStringWithLocale(&self, locale: Option<&NSLocale>)
365 -> Id<NSString>;
366
367 #[method(getLineStart:end:contentsEnd:forRange:)]
368 pub unsafe fn getLineStart_end_contentsEnd_forRange(
369 &self,
370 start_ptr: *mut NSUInteger,
371 line_end_ptr: *mut NSUInteger,
372 contents_end_ptr: *mut NSUInteger,
373 range: NSRange,
374 );
375
376 #[method(lineRangeForRange:)]
377 pub unsafe fn lineRangeForRange(&self, range: NSRange) -> NSRange;
378
379 #[method(getParagraphStart:end:contentsEnd:forRange:)]
380 pub unsafe fn getParagraphStart_end_contentsEnd_forRange(
381 &self,
382 start_ptr: *mut NSUInteger,
383 par_end_ptr: *mut NSUInteger,
384 contents_end_ptr: *mut NSUInteger,
385 range: NSRange,
386 );
387
388 #[method(paragraphRangeForRange:)]
389 pub unsafe fn paragraphRangeForRange(&self, range: NSRange) -> NSRange;
390
391 #[method(enumerateSubstringsInRange:options:usingBlock:)]
392 pub unsafe fn enumerateSubstringsInRange_options_usingBlock(
393 &self,
394 range: NSRange,
395 opts: NSStringEnumerationOptions,
396 block: &Block<(*mut NSString, NSRange, NSRange, NonNull<Bool>), ()>,
397 );
398
399 #[method(enumerateLinesUsingBlock:)]
400 pub unsafe fn enumerateLinesUsingBlock(
401 &self,
402 block: &Block<(NonNull<NSString>, NonNull<Bool>), ()>,
403 );
404
405 #[method(UTF8String)]
406 pub fn UTF8String(&self) -> *mut c_char;
407
408 #[method(fastestEncoding)]
409 pub unsafe fn fastestEncoding(&self) -> NSStringEncoding;
410
411 #[method(smallestEncoding)]
412 pub unsafe fn smallestEncoding(&self) -> NSStringEncoding;
413
414 #[cfg(feature = "Foundation_NSData")]
415 #[method_id(@__retain_semantics Other dataUsingEncoding:allowLossyConversion:)]
416 pub unsafe fn dataUsingEncoding_allowLossyConversion(
417 &self,
418 encoding: NSStringEncoding,
419 lossy: bool,
420 ) -> Option<Id<NSData>>;
421
422 #[cfg(feature = "Foundation_NSData")]
423 #[method_id(@__retain_semantics Other dataUsingEncoding:)]
424 pub unsafe fn dataUsingEncoding(&self, encoding: NSStringEncoding) -> Option<Id<NSData>>;
425
426 #[method(canBeConvertedToEncoding:)]
427 pub unsafe fn canBeConvertedToEncoding(&self, encoding: NSStringEncoding) -> bool;
428
429 #[method(cStringUsingEncoding:)]
430 pub unsafe fn cStringUsingEncoding(&self, encoding: NSStringEncoding) -> *mut c_char;
431
432 #[method(getCString:maxLength:encoding:)]
433 pub unsafe fn getCString_maxLength_encoding(
434 &self,
435 buffer: NonNull<c_char>,
436 max_buffer_count: NSUInteger,
437 encoding: NSStringEncoding,
438 ) -> bool;
439
440 #[method(getBytes:maxLength:usedLength:encoding:options:range:remainingRange:)]
441 pub unsafe fn getBytes_maxLength_usedLength_encoding_options_range_remainingRange(
442 &self,
443 buffer: *mut c_void,
444 max_buffer_count: NSUInteger,
445 used_buffer_count: *mut NSUInteger,
446 encoding: NSStringEncoding,
447 options: NSStringEncodingConversionOptions,
448 range: NSRange,
449 leftover: NSRangePointer,
450 ) -> bool;
451
452 #[method(maximumLengthOfBytesUsingEncoding:)]
453 pub unsafe fn maximumLengthOfBytesUsingEncoding(&self, enc: NSStringEncoding)
454 -> NSUInteger;
455
456 #[method(lengthOfBytesUsingEncoding:)]
457 pub fn lengthOfBytesUsingEncoding(&self, enc: NSStringEncoding) -> NSUInteger;
458
459 #[method(availableStringEncodings)]
460 pub unsafe fn availableStringEncodings() -> NonNull<NSStringEncoding>;
461
462 #[method_id(@__retain_semantics Other localizedNameOfStringEncoding:)]
463 pub unsafe fn localizedNameOfStringEncoding(encoding: NSStringEncoding) -> Id<NSString>;
464
465 #[method(defaultCStringEncoding)]
466 pub unsafe fn defaultCStringEncoding() -> NSStringEncoding;
467
468 #[method_id(@__retain_semantics Other decomposedStringWithCanonicalMapping)]
469 pub unsafe fn decomposedStringWithCanonicalMapping(&self) -> Id<NSString>;
470
471 #[method_id(@__retain_semantics Other precomposedStringWithCanonicalMapping)]
472 pub unsafe fn precomposedStringWithCanonicalMapping(&self) -> Id<NSString>;
473
474 #[method_id(@__retain_semantics Other decomposedStringWithCompatibilityMapping)]
475 pub unsafe fn decomposedStringWithCompatibilityMapping(&self) -> Id<NSString>;
476
477 #[method_id(@__retain_semantics Other precomposedStringWithCompatibilityMapping)]
478 pub unsafe fn precomposedStringWithCompatibilityMapping(&self) -> Id<NSString>;
479
480 #[cfg(feature = "Foundation_NSArray")]
481 #[method_id(@__retain_semantics Other componentsSeparatedByString:)]
482 pub unsafe fn componentsSeparatedByString(
483 &self,
484 separator: &NSString,
485 ) -> Id<NSArray<NSString>>;
486
487 #[cfg(all(feature = "Foundation_NSArray", feature = "Foundation_NSCharacterSet"))]
488 #[method_id(@__retain_semantics Other componentsSeparatedByCharactersInSet:)]
489 pub unsafe fn componentsSeparatedByCharactersInSet(
490 &self,
491 separator: &NSCharacterSet,
492 ) -> Id<NSArray<NSString>>;
493
494 #[cfg(feature = "Foundation_NSCharacterSet")]
495 #[method_id(@__retain_semantics Other stringByTrimmingCharactersInSet:)]
496 pub unsafe fn stringByTrimmingCharactersInSet(&self, set: &NSCharacterSet) -> Id<NSString>;
497
498 #[method_id(@__retain_semantics Other stringByPaddingToLength:withString:startingAtIndex:)]
499 pub unsafe fn stringByPaddingToLength_withString_startingAtIndex(
500 &self,
501 new_length: NSUInteger,
502 pad_string: &NSString,
503 pad_index: NSUInteger,
504 ) -> Id<NSString>;
505
506 #[cfg(feature = "Foundation_NSLocale")]
507 #[method_id(@__retain_semantics Other stringByFoldingWithOptions:locale:)]
508 pub unsafe fn stringByFoldingWithOptions_locale(
509 &self,
510 options: NSStringCompareOptions,
511 locale: Option<&NSLocale>,
512 ) -> Id<NSString>;
513
514 #[method_id(@__retain_semantics Other stringByReplacingOccurrencesOfString:withString:options:range:)]
515 pub unsafe fn stringByReplacingOccurrencesOfString_withString_options_range(
516 &self,
517 target: &NSString,
518 replacement: &NSString,
519 options: NSStringCompareOptions,
520 search_range: NSRange,
521 ) -> Id<NSString>;
522
523 #[method_id(@__retain_semantics Other stringByReplacingOccurrencesOfString:withString:)]
524 pub unsafe fn stringByReplacingOccurrencesOfString_withString(
525 &self,
526 target: &NSString,
527 replacement: &NSString,
528 ) -> Id<NSString>;
529
530 #[method_id(@__retain_semantics Other stringByReplacingCharactersInRange:withString:)]
531 pub unsafe fn stringByReplacingCharactersInRange_withString(
532 &self,
533 range: NSRange,
534 replacement: &NSString,
535 ) -> Id<NSString>;
536
537 #[method_id(@__retain_semantics Other stringByApplyingTransform:reverse:)]
538 pub unsafe fn stringByApplyingTransform_reverse(
539 &self,
540 transform: &NSStringTransform,
541 reverse: bool,
542 ) -> Option<Id<NSString>>;
543
544 #[cfg(all(feature = "Foundation_NSError", feature = "Foundation_NSURL"))]
545 #[method(writeToURL:atomically:encoding:error:_)]
546 pub unsafe fn writeToURL_atomically_encoding_error(
547 &self,
548 url: &NSURL,
549 use_auxiliary_file: bool,
550 enc: NSStringEncoding,
551 ) -> Result<(), Id<NSError>>;
552
553 #[cfg(feature = "Foundation_NSError")]
554 #[method(writeToFile:atomically:encoding:error:_)]
555 pub unsafe fn writeToFile_atomically_encoding_error(
556 &self,
557 path: &NSString,
558 use_auxiliary_file: bool,
559 enc: NSStringEncoding,
560 ) -> Result<(), Id<NSError>>;
561
562 #[method_id(@__retain_semantics Other description)]
563 pub unsafe fn description(&self) -> Id<NSString>;
564
565 #[method(hash)]
566 pub unsafe fn hash(&self) -> NSUInteger;
567
568 #[method_id(@__retain_semantics Init initWithCharactersNoCopy:length:freeWhenDone:)]
569 pub unsafe fn initWithCharactersNoCopy_length_freeWhenDone(
570 this: Allocated<Self>,
571 characters: NonNull<unichar>,
572 length: NSUInteger,
573 free_buffer: bool,
574 ) -> Id<Self>;
575
576 #[method_id(@__retain_semantics Init initWithCharactersNoCopy:length:deallocator:)]
577 pub unsafe fn initWithCharactersNoCopy_length_deallocator(
578 this: Allocated<Self>,
579 chars: NonNull<unichar>,
580 len: NSUInteger,
581 deallocator: Option<&Block<(NonNull<unichar>, NSUInteger), ()>>,
582 ) -> Id<Self>;
583
584 #[method_id(@__retain_semantics Init initWithCharacters:length:)]
585 pub unsafe fn initWithCharacters_length(
586 this: Allocated<Self>,
587 characters: NonNull<unichar>,
588 length: NSUInteger,
589 ) -> Id<Self>;
590
591 #[method_id(@__retain_semantics Init initWithUTF8String:)]
592 pub unsafe fn initWithUTF8String(
593 this: Allocated<Self>,
594 null_terminated_c_string: NonNull<c_char>,
595 ) -> Option<Id<Self>>;
596
597 #[method_id(@__retain_semantics Init initWithString:)]
598 pub fn initWithString(this: Allocated<Self>, a_string: &NSString) -> Id<Self>;
599
600 #[cfg(feature = "Foundation_NSData")]
601 #[method_id(@__retain_semantics Init initWithData:encoding:)]
602 pub unsafe fn initWithData_encoding(
603 this: Allocated<Self>,
604 data: &NSData,
605 encoding: NSStringEncoding,
606 ) -> Option<Id<Self>>;
607
608 #[method_id(@__retain_semantics Init initWithBytes:length:encoding:)]
609 pub unsafe fn initWithBytes_length_encoding(
610 this: Allocated<Self>,
611 bytes: NonNull<c_void>,
612 len: NSUInteger,
613 encoding: NSStringEncoding,
614 ) -> Option<Id<Self>>;
615
616 #[method_id(@__retain_semantics Init initWithBytesNoCopy:length:encoding:freeWhenDone:)]
617 pub unsafe fn initWithBytesNoCopy_length_encoding_freeWhenDone(
618 this: Allocated<Self>,
619 bytes: NonNull<c_void>,
620 len: NSUInteger,
621 encoding: NSStringEncoding,
622 free_buffer: bool,
623 ) -> Option<Id<Self>>;
624
625 #[method_id(@__retain_semantics Init initWithBytesNoCopy:length:encoding:deallocator:)]
626 pub unsafe fn initWithBytesNoCopy_length_encoding_deallocator(
627 this: Allocated<Self>,
628 bytes: NonNull<c_void>,
629 len: NSUInteger,
630 encoding: NSStringEncoding,
631 deallocator: Option<&Block<(NonNull<c_void>, NSUInteger), ()>>,
632 ) -> Option<Id<Self>>;
633
634 #[method_id(@__retain_semantics Other string)]
635 pub unsafe fn string() -> Id<Self>;
636
637 #[method_id(@__retain_semantics Other stringWithString:)]
638 pub fn stringWithString(string: &NSString) -> Id<Self>;
639
640 #[method_id(@__retain_semantics Other stringWithCharacters:length:)]
641 pub unsafe fn stringWithCharacters_length(
642 characters: NonNull<unichar>,
643 length: NSUInteger,
644 ) -> Id<Self>;
645
646 #[method_id(@__retain_semantics Other stringWithUTF8String:)]
647 pub unsafe fn stringWithUTF8String(
648 null_terminated_c_string: NonNull<c_char>,
649 ) -> Option<Id<Self>>;
650
651 #[method_id(@__retain_semantics Init initWithCString:encoding:)]
652 pub unsafe fn initWithCString_encoding(
653 this: Allocated<Self>,
654 null_terminated_c_string: NonNull<c_char>,
655 encoding: NSStringEncoding,
656 ) -> Option<Id<Self>>;
657
658 #[method_id(@__retain_semantics Other stringWithCString:encoding:)]
659 pub unsafe fn stringWithCString_encoding(
660 c_string: NonNull<c_char>,
661 enc: NSStringEncoding,
662 ) -> Option<Id<Self>>;
663
664 #[cfg(all(feature = "Foundation_NSError", feature = "Foundation_NSURL"))]
665 #[method_id(@__retain_semantics Init initWithContentsOfURL:encoding:error:_)]
666 pub unsafe fn initWithContentsOfURL_encoding_error(
667 this: Allocated<Self>,
668 url: &NSURL,
669 enc: NSStringEncoding,
670 ) -> Result<Id<Self>, Id<NSError>>;
671
672 #[cfg(feature = "Foundation_NSError")]
673 #[method_id(@__retain_semantics Init initWithContentsOfFile:encoding:error:_)]
674 pub unsafe fn initWithContentsOfFile_encoding_error(
675 this: Allocated<Self>,
676 path: &NSString,
677 enc: NSStringEncoding,
678 ) -> Result<Id<Self>, Id<NSError>>;
679
680 #[cfg(all(feature = "Foundation_NSError", feature = "Foundation_NSURL"))]
681 #[method_id(@__retain_semantics Other stringWithContentsOfURL:encoding:error:_)]
682 pub unsafe fn stringWithContentsOfURL_encoding_error(
683 url: &NSURL,
684 enc: NSStringEncoding,
685 ) -> Result<Id<Self>, Id<NSError>>;
686
687 #[cfg(feature = "Foundation_NSError")]
688 #[method_id(@__retain_semantics Other stringWithContentsOfFile:encoding:error:_)]
689 pub unsafe fn stringWithContentsOfFile_encoding_error(
690 path: &NSString,
691 enc: NSStringEncoding,
692 ) -> Result<Id<Self>, Id<NSError>>;
693
694 #[cfg(all(feature = "Foundation_NSError", feature = "Foundation_NSURL"))]
695 #[method_id(@__retain_semantics Init initWithContentsOfURL:usedEncoding:error:_)]
696 pub unsafe fn initWithContentsOfURL_usedEncoding_error(
697 this: Allocated<Self>,
698 url: &NSURL,
699 enc: *mut NSStringEncoding,
700 ) -> Result<Id<Self>, Id<NSError>>;
701
702 #[cfg(feature = "Foundation_NSError")]
703 #[method_id(@__retain_semantics Init initWithContentsOfFile:usedEncoding:error:_)]
704 pub unsafe fn initWithContentsOfFile_usedEncoding_error(
705 this: Allocated<Self>,
706 path: &NSString,
707 enc: *mut NSStringEncoding,
708 ) -> Result<Id<Self>, Id<NSError>>;
709
710 #[cfg(all(feature = "Foundation_NSError", feature = "Foundation_NSURL"))]
711 #[method_id(@__retain_semantics Other stringWithContentsOfURL:usedEncoding:error:_)]
712 pub unsafe fn stringWithContentsOfURL_usedEncoding_error(
713 url: &NSURL,
714 enc: *mut NSStringEncoding,
715 ) -> Result<Id<Self>, Id<NSError>>;
716
717 #[cfg(feature = "Foundation_NSError")]
718 #[method_id(@__retain_semantics Other stringWithContentsOfFile:usedEncoding:error:_)]
719 pub unsafe fn stringWithContentsOfFile_usedEncoding_error(
720 path: &NSString,
721 enc: *mut NSStringEncoding,
722 ) -> Result<Id<Self>, Id<NSError>>;
723 }
724);
725
726extern_methods!(
727 #[cfg(feature = "Foundation_NSMutableString")]
731 unsafe impl NSMutableString {
732 #[method_id(@__retain_semantics Init initWithCharactersNoCopy:length:freeWhenDone:)]
733 pub unsafe fn initWithCharactersNoCopy_length_freeWhenDone(
734 this: Allocated<Self>,
735 characters: NonNull<unichar>,
736 length: NSUInteger,
737 free_buffer: bool,
738 ) -> Id<Self>;
739
740 #[method_id(@__retain_semantics Init initWithCharactersNoCopy:length:deallocator:)]
741 pub unsafe fn initWithCharactersNoCopy_length_deallocator(
742 this: Allocated<Self>,
743 chars: NonNull<unichar>,
744 len: NSUInteger,
745 deallocator: Option<&Block<(NonNull<unichar>, NSUInteger), ()>>,
746 ) -> Id<Self>;
747
748 #[method_id(@__retain_semantics Init initWithCharacters:length:)]
749 pub unsafe fn initWithCharacters_length(
750 this: Allocated<Self>,
751 characters: NonNull<unichar>,
752 length: NSUInteger,
753 ) -> Id<Self>;
754
755 #[method_id(@__retain_semantics Init initWithUTF8String:)]
756 pub unsafe fn initWithUTF8String(
757 this: Allocated<Self>,
758 null_terminated_c_string: NonNull<c_char>,
759 ) -> Option<Id<Self>>;
760
761 #[method_id(@__retain_semantics Init initWithString:)]
762 pub fn initWithString(this: Allocated<Self>, a_string: &NSString) -> Id<Self>;
763
764 #[cfg(feature = "Foundation_NSData")]
765 #[method_id(@__retain_semantics Init initWithData:encoding:)]
766 pub unsafe fn initWithData_encoding(
767 this: Allocated<Self>,
768 data: &NSData,
769 encoding: NSStringEncoding,
770 ) -> Option<Id<Self>>;
771
772 #[method_id(@__retain_semantics Init initWithBytes:length:encoding:)]
773 pub unsafe fn initWithBytes_length_encoding(
774 this: Allocated<Self>,
775 bytes: NonNull<c_void>,
776 len: NSUInteger,
777 encoding: NSStringEncoding,
778 ) -> Option<Id<Self>>;
779
780 #[method_id(@__retain_semantics Init initWithBytesNoCopy:length:encoding:freeWhenDone:)]
781 pub unsafe fn initWithBytesNoCopy_length_encoding_freeWhenDone(
782 this: Allocated<Self>,
783 bytes: NonNull<c_void>,
784 len: NSUInteger,
785 encoding: NSStringEncoding,
786 free_buffer: bool,
787 ) -> Option<Id<Self>>;
788
789 #[method_id(@__retain_semantics Init initWithBytesNoCopy:length:encoding:deallocator:)]
790 pub unsafe fn initWithBytesNoCopy_length_encoding_deallocator(
791 this: Allocated<Self>,
792 bytes: NonNull<c_void>,
793 len: NSUInteger,
794 encoding: NSStringEncoding,
795 deallocator: Option<&Block<(NonNull<c_void>, NSUInteger), ()>>,
796 ) -> Option<Id<Self>>;
797
798 #[method_id(@__retain_semantics Other string)]
799 pub unsafe fn string() -> Id<Self>;
800
801 #[method_id(@__retain_semantics Other stringWithString:)]
802 pub fn stringWithString(string: &NSString) -> Id<Self>;
803
804 #[method_id(@__retain_semantics Other stringWithCharacters:length:)]
805 pub unsafe fn stringWithCharacters_length(
806 characters: NonNull<unichar>,
807 length: NSUInteger,
808 ) -> Id<Self>;
809
810 #[method_id(@__retain_semantics Other stringWithUTF8String:)]
811 pub unsafe fn stringWithUTF8String(
812 null_terminated_c_string: NonNull<c_char>,
813 ) -> Option<Id<Self>>;
814
815 #[method_id(@__retain_semantics Init initWithCString:encoding:)]
816 pub unsafe fn initWithCString_encoding(
817 this: Allocated<Self>,
818 null_terminated_c_string: NonNull<c_char>,
819 encoding: NSStringEncoding,
820 ) -> Option<Id<Self>>;
821
822 #[method_id(@__retain_semantics Other stringWithCString:encoding:)]
823 pub unsafe fn stringWithCString_encoding(
824 c_string: NonNull<c_char>,
825 enc: NSStringEncoding,
826 ) -> Option<Id<Self>>;
827
828 #[cfg(all(feature = "Foundation_NSError", feature = "Foundation_NSURL"))]
829 #[method_id(@__retain_semantics Init initWithContentsOfURL:encoding:error:_)]
830 pub unsafe fn initWithContentsOfURL_encoding_error(
831 this: Allocated<Self>,
832 url: &NSURL,
833 enc: NSStringEncoding,
834 ) -> Result<Id<Self>, Id<NSError>>;
835
836 #[cfg(feature = "Foundation_NSError")]
837 #[method_id(@__retain_semantics Init initWithContentsOfFile:encoding:error:_)]
838 pub unsafe fn initWithContentsOfFile_encoding_error(
839 this: Allocated<Self>,
840 path: &NSString,
841 enc: NSStringEncoding,
842 ) -> Result<Id<Self>, Id<NSError>>;
843
844 #[cfg(all(feature = "Foundation_NSError", feature = "Foundation_NSURL"))]
845 #[method_id(@__retain_semantics Other stringWithContentsOfURL:encoding:error:_)]
846 pub unsafe fn stringWithContentsOfURL_encoding_error(
847 url: &NSURL,
848 enc: NSStringEncoding,
849 ) -> Result<Id<Self>, Id<NSError>>;
850
851 #[cfg(feature = "Foundation_NSError")]
852 #[method_id(@__retain_semantics Other stringWithContentsOfFile:encoding:error:_)]
853 pub unsafe fn stringWithContentsOfFile_encoding_error(
854 path: &NSString,
855 enc: NSStringEncoding,
856 ) -> Result<Id<Self>, Id<NSError>>;
857
858 #[cfg(all(feature = "Foundation_NSError", feature = "Foundation_NSURL"))]
859 #[method_id(@__retain_semantics Init initWithContentsOfURL:usedEncoding:error:_)]
860 pub unsafe fn initWithContentsOfURL_usedEncoding_error(
861 this: Allocated<Self>,
862 url: &NSURL,
863 enc: *mut NSStringEncoding,
864 ) -> Result<Id<Self>, Id<NSError>>;
865
866 #[cfg(feature = "Foundation_NSError")]
867 #[method_id(@__retain_semantics Init initWithContentsOfFile:usedEncoding:error:_)]
868 pub unsafe fn initWithContentsOfFile_usedEncoding_error(
869 this: Allocated<Self>,
870 path: &NSString,
871 enc: *mut NSStringEncoding,
872 ) -> Result<Id<Self>, Id<NSError>>;
873
874 #[cfg(all(feature = "Foundation_NSError", feature = "Foundation_NSURL"))]
875 #[method_id(@__retain_semantics Other stringWithContentsOfURL:usedEncoding:error:_)]
876 pub unsafe fn stringWithContentsOfURL_usedEncoding_error(
877 url: &NSURL,
878 enc: *mut NSStringEncoding,
879 ) -> Result<Id<Self>, Id<NSError>>;
880
881 #[cfg(feature = "Foundation_NSError")]
882 #[method_id(@__retain_semantics Other stringWithContentsOfFile:usedEncoding:error:_)]
883 pub unsafe fn stringWithContentsOfFile_usedEncoding_error(
884 path: &NSString,
885 enc: *mut NSStringEncoding,
886 ) -> Result<Id<Self>, Id<NSError>>;
887 }
888);
889
890typed_enum!(
891 pub type NSStringEncodingDetectionOptionsKey = NSString;
892);
893
894extern_static!(NSStringEncodingDetectionSuggestedEncodingsKey: &'static NSStringEncodingDetectionOptionsKey);
895
896extern_static!(NSStringEncodingDetectionDisallowedEncodingsKey: &'static NSStringEncodingDetectionOptionsKey);
897
898extern_static!(NSStringEncodingDetectionUseOnlySuggestedEncodingsKey: &'static NSStringEncodingDetectionOptionsKey);
899
900extern_static!(NSStringEncodingDetectionAllowLossyKey: &'static NSStringEncodingDetectionOptionsKey);
901
902extern_static!(NSStringEncodingDetectionFromWindowsKey: &'static NSStringEncodingDetectionOptionsKey);
903
904extern_static!(NSStringEncodingDetectionLossySubstitutionKey: &'static NSStringEncodingDetectionOptionsKey);
905
906extern_static!(NSStringEncodingDetectionLikelyLanguageKey: &'static NSStringEncodingDetectionOptionsKey);
907
908extern_methods!(
909 #[cfg(feature = "Foundation_NSString")]
911 unsafe impl NSString {
912 #[cfg(all(feature = "Foundation_NSData", feature = "Foundation_NSDictionary"))]
913 #[method(stringEncodingForData:encodingOptions:convertedString:usedLossyConversion:)]
914 pub unsafe fn stringEncodingForData_encodingOptions_convertedString_usedLossyConversion(
915 data: &NSData,
916 opts: Option<&NSDictionary<NSStringEncodingDetectionOptionsKey, AnyObject>>,
917 string: Option<&mut Option<Id<NSString>>>,
918 used_lossy_conversion: *mut Bool,
919 ) -> NSStringEncoding;
920 }
921);
922
923extern_methods!(
924 #[cfg(feature = "Foundation_NSString")]
926 unsafe impl NSString {}
927);
928
929#[cfg(feature = "Foundation_NSString")]
930unsafe impl NSItemProviderReading for NSString {}
931
932#[cfg(feature = "Foundation_NSString")]
933unsafe impl NSItemProviderWriting for NSString {}
934
935extern_class!(
936 #[derive(PartialEq, Eq, Hash)]
937 #[cfg(feature = "Foundation_NSString")]
938 pub struct NSMutableString;
939
940 #[cfg(feature = "Foundation_NSString")]
941 unsafe impl ClassType for NSMutableString {
942 #[inherits(NSObject)]
943 type Super = NSString;
944 type Mutability = MutableWithImmutableSuperclass<NSString>;
945 }
946);
947
948#[cfg(feature = "Foundation_NSMutableString")]
949unsafe impl NSCoding for NSMutableString {}
950
951#[cfg(feature = "Foundation_NSMutableString")]
952unsafe impl NSCopying for NSMutableString {}
953
954#[cfg(feature = "Foundation_NSMutableString")]
955unsafe impl NSMutableCopying for NSMutableString {}
956
957#[cfg(feature = "Foundation_NSMutableString")]
958unsafe impl NSObjectProtocol for NSMutableString {}
959
960#[cfg(feature = "Foundation_NSMutableString")]
961unsafe impl NSSecureCoding for NSMutableString {}
962
963extern_methods!(
964 #[cfg(feature = "Foundation_NSMutableString")]
965 unsafe impl NSMutableString {
966 #[method(replaceCharactersInRange:withString:)]
967 pub unsafe fn replaceCharactersInRange_withString(
968 &mut self,
969 range: NSRange,
970 a_string: &NSString,
971 );
972 }
973);
974
975extern_methods!(
976 #[cfg(feature = "Foundation_NSMutableString")]
978 unsafe impl NSMutableString {
979 #[method_id(@__retain_semantics Init init)]
980 pub fn init(this: Allocated<Self>) -> Id<Self>;
981
982 #[cfg(feature = "Foundation_NSCoder")]
983 #[method_id(@__retain_semantics Init initWithCoder:)]
984 pub unsafe fn initWithCoder(this: Allocated<Self>, coder: &NSCoder) -> Option<Id<Self>>;
985 }
986);
987
988extern_methods!(
989 #[cfg(feature = "Foundation_NSMutableString")]
991 unsafe impl NSMutableString {
992 #[method_id(@__retain_semantics New new)]
993 pub fn new() -> Id<Self>;
994 }
995);
996
997#[cfg(feature = "Foundation_NSMutableString")]
998impl DefaultId for NSMutableString {
999 #[inline]
1000 fn default_id() -> Id<Self> {
1001 Self::new()
1002 }
1003}
1004
1005extern_methods!(
1006 #[cfg(feature = "Foundation_NSMutableString")]
1008 unsafe impl NSMutableString {
1009 #[cfg(feature = "Foundation_NSString")]
1010 #[method(insertString:atIndex:)]
1011 pub unsafe fn insertString_atIndex(&mut self, a_string: &NSString, loc: NSUInteger);
1012
1013 #[method(deleteCharactersInRange:)]
1014 pub unsafe fn deleteCharactersInRange(&mut self, range: NSRange);
1015
1016 #[cfg(feature = "Foundation_NSString")]
1017 #[method(appendString:)]
1018 pub fn appendString(&mut self, a_string: &NSString);
1019
1020 #[cfg(feature = "Foundation_NSString")]
1021 #[method(setString:)]
1022 pub fn setString(&mut self, a_string: &NSString);
1023
1024 #[cfg(feature = "Foundation_NSString")]
1025 #[method(replaceOccurrencesOfString:withString:options:range:)]
1026 pub unsafe fn replaceOccurrencesOfString_withString_options_range(
1027 &mut self,
1028 target: &NSString,
1029 replacement: &NSString,
1030 options: NSStringCompareOptions,
1031 search_range: NSRange,
1032 ) -> NSUInteger;
1033
1034 #[method(applyTransform:reverse:range:updatedRange:)]
1035 pub unsafe fn applyTransform_reverse_range_updatedRange(
1036 &mut self,
1037 transform: &NSStringTransform,
1038 reverse: bool,
1039 range: NSRange,
1040 resulting_range: NSRangePointer,
1041 ) -> bool;
1042
1043 #[method_id(@__retain_semantics Init initWithCapacity:)]
1044 pub fn initWithCapacity(this: Allocated<Self>, capacity: NSUInteger)
1045 -> Id<NSMutableString>;
1046
1047 #[method_id(@__retain_semantics Other stringWithCapacity:)]
1048 pub fn stringWithCapacity(capacity: NSUInteger) -> Id<NSMutableString>;
1049 }
1050);
1051
1052extern_static!(NSCharacterConversionException: &'static NSExceptionName);
1053
1054extern_static!(NSParseErrorException: &'static NSExceptionName);
1055
1056extern_methods!(
1057 #[cfg(feature = "Foundation_NSString")]
1059 unsafe impl NSString {
1060 #[method_id(@__retain_semantics Other propertyList)]
1061 pub unsafe fn propertyList(&self) -> Id<AnyObject>;
1062
1063 #[cfg(feature = "Foundation_NSDictionary")]
1064 #[method_id(@__retain_semantics Other propertyListFromStringsFileFormat)]
1065 pub unsafe fn propertyListFromStringsFileFormat(&self) -> Option<Id<NSDictionary>>;
1066 }
1067);
1068
1069extern_methods!(
1070 #[cfg(feature = "Foundation_NSString")]
1072 unsafe impl NSString {
1073 #[deprecated = "Use -cStringUsingEncoding: instead"]
1074 #[method(cString)]
1075 pub unsafe fn cString(&self) -> *mut c_char;
1076
1077 #[deprecated = "Use -cStringUsingEncoding: instead"]
1078 #[method(lossyCString)]
1079 pub unsafe fn lossyCString(&self) -> *mut c_char;
1080
1081 #[deprecated = "Use -lengthOfBytesUsingEncoding: instead"]
1082 #[method(cStringLength)]
1083 pub unsafe fn cStringLength(&self) -> NSUInteger;
1084
1085 #[deprecated = "Use -getCString:maxLength:encoding: instead"]
1086 #[method(getCString:)]
1087 pub unsafe fn getCString(&self, bytes: NonNull<c_char>);
1088
1089 #[deprecated = "Use -getCString:maxLength:encoding: instead"]
1090 #[method(getCString:maxLength:)]
1091 pub unsafe fn getCString_maxLength(&self, bytes: NonNull<c_char>, max_length: NSUInteger);
1092
1093 #[deprecated = "Use -getCString:maxLength:encoding: instead"]
1094 #[method(getCString:maxLength:range:remainingRange:)]
1095 pub unsafe fn getCString_maxLength_range_remainingRange(
1096 &self,
1097 bytes: NonNull<c_char>,
1098 max_length: NSUInteger,
1099 a_range: NSRange,
1100 leftover_range: NSRangePointer,
1101 );
1102
1103 #[deprecated = "Use -writeToFile:atomically:encoding:error: instead"]
1104 #[method(writeToFile:atomically:)]
1105 pub unsafe fn writeToFile_atomically(
1106 &self,
1107 path: &NSString,
1108 use_auxiliary_file: bool,
1109 ) -> bool;
1110
1111 #[cfg(feature = "Foundation_NSURL")]
1112 #[deprecated = "Use -writeToURL:atomically:encoding:error: instead"]
1113 #[method(writeToURL:atomically:)]
1114 pub unsafe fn writeToURL_atomically(&self, url: &NSURL, atomically: bool) -> bool;
1115
1116 #[deprecated = "Use -initWithContentsOfFile:encoding:error: instead"]
1117 #[method_id(@__retain_semantics Init initWithContentsOfFile:)]
1118 pub unsafe fn initWithContentsOfFile(
1119 this: Allocated<Self>,
1120 path: &NSString,
1121 ) -> Option<Id<Self>>;
1122
1123 #[cfg(feature = "Foundation_NSURL")]
1124 #[deprecated = "Use -initWithContentsOfURL:encoding:error: instead"]
1125 #[method_id(@__retain_semantics Init initWithContentsOfURL:)]
1126 pub unsafe fn initWithContentsOfURL(this: Allocated<Self>, url: &NSURL)
1127 -> Option<Id<Self>>;
1128
1129 #[deprecated = "Use +stringWithContentsOfFile:encoding:error: instead"]
1130 #[method_id(@__retain_semantics Other stringWithContentsOfFile:)]
1131 pub unsafe fn stringWithContentsOfFile(path: &NSString) -> Option<Id<AnyObject>>;
1132
1133 #[cfg(feature = "Foundation_NSURL")]
1134 #[deprecated = "Use +stringWithContentsOfURL:encoding:error: instead"]
1135 #[method_id(@__retain_semantics Other stringWithContentsOfURL:)]
1136 pub unsafe fn stringWithContentsOfURL(url: &NSURL) -> Option<Id<AnyObject>>;
1137
1138 #[deprecated = "Use -initWithCString:encoding: instead"]
1139 #[method_id(@__retain_semantics Init initWithCStringNoCopy:length:freeWhenDone:)]
1140 pub unsafe fn initWithCStringNoCopy_length_freeWhenDone(
1141 this: Allocated<Self>,
1142 bytes: NonNull<c_char>,
1143 length: NSUInteger,
1144 free_buffer: bool,
1145 ) -> Option<Id<Self>>;
1146
1147 #[deprecated = "Use -initWithCString:encoding: instead"]
1148 #[method_id(@__retain_semantics Init initWithCString:length:)]
1149 pub unsafe fn initWithCString_length(
1150 this: Allocated<Self>,
1151 bytes: NonNull<c_char>,
1152 length: NSUInteger,
1153 ) -> Option<Id<Self>>;
1154
1155 #[deprecated = "Use -initWithCString:encoding: instead"]
1156 #[method_id(@__retain_semantics Init initWithCString:)]
1157 pub unsafe fn initWithCString(
1158 this: Allocated<Self>,
1159 bytes: NonNull<c_char>,
1160 ) -> Option<Id<Self>>;
1161
1162 #[deprecated = "Use +stringWithCString:encoding:"]
1163 #[method_id(@__retain_semantics Other stringWithCString:length:)]
1164 pub unsafe fn stringWithCString_length(
1165 bytes: NonNull<c_char>,
1166 length: NSUInteger,
1167 ) -> Option<Id<AnyObject>>;
1168
1169 #[deprecated = "Use +stringWithCString:encoding: instead"]
1170 #[method_id(@__retain_semantics Other stringWithCString:)]
1171 pub unsafe fn stringWithCString(bytes: NonNull<c_char>) -> Option<Id<AnyObject>>;
1172
1173 #[method(getCharacters:)]
1174 pub unsafe fn getCharacters(&self, buffer: NonNull<unichar>);
1175 }
1176);
1177
1178extern_methods!(
1179 #[cfg(feature = "Foundation_NSMutableString")]
1183 unsafe impl NSMutableString {
1184 #[deprecated = "Use -initWithContentsOfFile:encoding:error: instead"]
1185 #[method_id(@__retain_semantics Init initWithContentsOfFile:)]
1186 pub unsafe fn initWithContentsOfFile(
1187 this: Allocated<Self>,
1188 path: &NSString,
1189 ) -> Option<Id<Self>>;
1190
1191 #[cfg(feature = "Foundation_NSURL")]
1192 #[deprecated = "Use -initWithContentsOfURL:encoding:error: instead"]
1193 #[method_id(@__retain_semantics Init initWithContentsOfURL:)]
1194 pub unsafe fn initWithContentsOfURL(this: Allocated<Self>, url: &NSURL)
1195 -> Option<Id<Self>>;
1196
1197 #[deprecated = "Use -initWithCString:encoding: instead"]
1198 #[method_id(@__retain_semantics Init initWithCStringNoCopy:length:freeWhenDone:)]
1199 pub unsafe fn initWithCStringNoCopy_length_freeWhenDone(
1200 this: Allocated<Self>,
1201 bytes: NonNull<c_char>,
1202 length: NSUInteger,
1203 free_buffer: bool,
1204 ) -> Option<Id<Self>>;
1205
1206 #[deprecated = "Use -initWithCString:encoding: instead"]
1207 #[method_id(@__retain_semantics Init initWithCString:length:)]
1208 pub unsafe fn initWithCString_length(
1209 this: Allocated<Self>,
1210 bytes: NonNull<c_char>,
1211 length: NSUInteger,
1212 ) -> Option<Id<Self>>;
1213
1214 #[deprecated = "Use -initWithCString:encoding: instead"]
1215 #[method_id(@__retain_semantics Init initWithCString:)]
1216 pub unsafe fn initWithCString(
1217 this: Allocated<Self>,
1218 bytes: NonNull<c_char>,
1219 ) -> Option<Id<Self>>;
1220 }
1221);
1222
1223extern_class!(
1224 #[derive(Debug, PartialEq, Eq, Hash)]
1225 #[cfg(feature = "Foundation_NSSimpleCString")]
1226 pub struct NSSimpleCString;
1227
1228 #[cfg(feature = "Foundation_NSSimpleCString")]
1229 unsafe impl ClassType for NSSimpleCString {
1230 #[inherits(NSObject)]
1231 type Super = NSString;
1232 type Mutability = Immutable;
1233 }
1234);
1235
1236#[cfg(feature = "Foundation_NSSimpleCString")]
1237unsafe impl NSCoding for NSSimpleCString {}
1238
1239#[cfg(feature = "Foundation_NSSimpleCString")]
1240unsafe impl NSObjectProtocol for NSSimpleCString {}
1241
1242#[cfg(feature = "Foundation_NSSimpleCString")]
1243unsafe impl NSSecureCoding for NSSimpleCString {}
1244
1245extern_methods!(
1246 #[cfg(feature = "Foundation_NSSimpleCString")]
1247 unsafe impl NSSimpleCString {}
1248);
1249
1250extern_methods!(
1251 #[cfg(feature = "Foundation_NSSimpleCString")]
1253 unsafe impl NSSimpleCString {
1254 #[method_id(@__retain_semantics Init init)]
1255 pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
1256
1257 #[cfg(feature = "Foundation_NSCoder")]
1258 #[method_id(@__retain_semantics Init initWithCoder:)]
1259 pub unsafe fn initWithCoder(this: Allocated<Self>, coder: &NSCoder) -> Option<Id<Self>>;
1260 }
1261);
1262
1263extern_methods!(
1264 #[cfg(feature = "Foundation_NSSimpleCString")]
1266 unsafe impl NSSimpleCString {
1267 #[method_id(@__retain_semantics New new)]
1268 pub unsafe fn new() -> Id<Self>;
1269 }
1270);
1271
1272extern_class!(
1273 #[derive(Debug, PartialEq, Eq, Hash)]
1274 #[cfg(feature = "Foundation_NSConstantString")]
1275 pub struct NSConstantString;
1276
1277 #[cfg(feature = "Foundation_NSConstantString")]
1278 unsafe impl ClassType for NSConstantString {
1279 #[inherits(NSString, NSObject)]
1280 type Super = NSSimpleCString;
1281 type Mutability = Immutable;
1282 }
1283);
1284
1285#[cfg(feature = "Foundation_NSConstantString")]
1286unsafe impl NSCoding for NSConstantString {}
1287
1288#[cfg(feature = "Foundation_NSConstantString")]
1289unsafe impl NSObjectProtocol for NSConstantString {}
1290
1291#[cfg(feature = "Foundation_NSConstantString")]
1292unsafe impl NSSecureCoding for NSConstantString {}
1293
1294extern_methods!(
1295 #[cfg(feature = "Foundation_NSConstantString")]
1296 unsafe impl NSConstantString {}
1297);
1298
1299extern_methods!(
1300 #[cfg(feature = "Foundation_NSConstantString")]
1302 unsafe impl NSConstantString {
1303 #[method_id(@__retain_semantics Init init)]
1304 pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
1305
1306 #[cfg(feature = "Foundation_NSCoder")]
1307 #[method_id(@__retain_semantics Init initWithCoder:)]
1308 pub unsafe fn initWithCoder(this: Allocated<Self>, coder: &NSCoder) -> Option<Id<Self>>;
1309 }
1310);
1311
1312extern_methods!(
1313 #[cfg(feature = "Foundation_NSConstantString")]
1315 unsafe impl NSConstantString {
1316 #[method_id(@__retain_semantics New new)]
1317 pub unsafe fn new() -> Id<Self>;
1318 }
1319);