icrate/generated/Foundation/
NSString.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use 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    /// Methods declared on superclass `NSObject`
107    #[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    /// NSStringExtensionMethods
176    #[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    /// Methods declared on superclass `NSString`
728    ///
729    /// NSStringExtensionMethods
730    #[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    /// NSStringEncodingDetection
910    #[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    /// NSItemProvider
925    #[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    /// Methods declared on superclass `NSString`
977    #[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    /// Methods declared on superclass `NSObject`
990    #[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    /// NSMutableStringExtensionMethods
1007    #[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    /// NSExtendedStringPropertyListParsing
1058    #[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    /// NSStringDeprecated
1071    #[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    /// Methods declared on superclass `NSString`
1180    ///
1181    /// NSStringDeprecated
1182    #[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    /// Methods declared on superclass `NSString`
1252    #[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    /// Methods declared on superclass `NSObject`
1265    #[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    /// Methods declared on superclass `NSString`
1301    #[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    /// Methods declared on superclass `NSObject`
1314    #[cfg(feature = "Foundation_NSConstantString")]
1315    unsafe impl NSConstantString {
1316        #[method_id(@__retain_semantics New new)]
1317        pub unsafe fn new() -> Id<Self>;
1318    }
1319);