objc2_foundation/generated/
NSScriptObjectSpecifiers.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6
7use crate::*;
8
9/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsnospecifiererror?language=objc)
10pub const NSNoSpecifierError: NSInteger = 0;
11/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsnotoplevelcontainersspecifiererror?language=objc)
12pub const NSNoTopLevelContainersSpecifierError: NSInteger = 1;
13/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nscontainerspecifiererror?language=objc)
14pub const NSContainerSpecifierError: NSInteger = 2;
15/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsunknownkeyspecifiererror?language=objc)
16pub const NSUnknownKeySpecifierError: NSInteger = 3;
17/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsinvalidindexspecifiererror?language=objc)
18pub const NSInvalidIndexSpecifierError: NSInteger = 4;
19/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsinternalspecifiererror?language=objc)
20pub const NSInternalSpecifierError: NSInteger = 5;
21/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsoperationnotsupportedforkeyspecifiererror?language=objc)
22pub const NSOperationNotSupportedForKeySpecifierError: NSInteger = 6;
23
24/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsinsertionposition?language=objc)
25// NS_ENUM
26#[repr(transparent)]
27#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
28pub struct NSInsertionPosition(pub NSUInteger);
29impl NSInsertionPosition {
30    #[doc(alias = "NSPositionAfter")]
31    pub const PositionAfter: Self = Self(0);
32    #[doc(alias = "NSPositionBefore")]
33    pub const PositionBefore: Self = Self(1);
34    #[doc(alias = "NSPositionBeginning")]
35    pub const PositionBeginning: Self = Self(2);
36    #[doc(alias = "NSPositionEnd")]
37    pub const PositionEnd: Self = Self(3);
38    #[doc(alias = "NSPositionReplace")]
39    pub const PositionReplace: Self = Self(4);
40}
41
42unsafe impl Encode for NSInsertionPosition {
43    const ENCODING: Encoding = NSUInteger::ENCODING;
44}
45
46unsafe impl RefEncode for NSInsertionPosition {
47    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
48}
49
50/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsrelativeposition?language=objc)
51// NS_ENUM
52#[repr(transparent)]
53#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
54pub struct NSRelativePosition(pub NSUInteger);
55impl NSRelativePosition {
56    #[doc(alias = "NSRelativeAfter")]
57    pub const After: Self = Self(0);
58    #[doc(alias = "NSRelativeBefore")]
59    pub const Before: Self = Self(1);
60}
61
62unsafe impl Encode for NSRelativePosition {
63    const ENCODING: Encoding = NSUInteger::ENCODING;
64}
65
66unsafe impl RefEncode for NSRelativePosition {
67    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
68}
69
70/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nswhosesubelementidentifier?language=objc)
71// NS_ENUM
72#[repr(transparent)]
73#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
74pub struct NSWhoseSubelementIdentifier(pub NSUInteger);
75impl NSWhoseSubelementIdentifier {
76    #[doc(alias = "NSIndexSubelement")]
77    pub const IndexSubelement: Self = Self(0);
78    #[doc(alias = "NSEverySubelement")]
79    pub const EverySubelement: Self = Self(1);
80    #[doc(alias = "NSMiddleSubelement")]
81    pub const MiddleSubelement: Self = Self(2);
82    #[doc(alias = "NSRandomSubelement")]
83    pub const RandomSubelement: Self = Self(3);
84    #[doc(alias = "NSNoSubelement")]
85    pub const NoSubelement: Self = Self(4);
86}
87
88unsafe impl Encode for NSWhoseSubelementIdentifier {
89    const ENCODING: Encoding = NSUInteger::ENCODING;
90}
91
92unsafe impl RefEncode for NSWhoseSubelementIdentifier {
93    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
94}
95
96extern_class!(
97    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsscriptobjectspecifier?language=objc)
98    #[unsafe(super(NSObject))]
99    #[derive(Debug, PartialEq, Eq, Hash)]
100    pub struct NSScriptObjectSpecifier;
101);
102
103#[cfg(feature = "NSObject")]
104extern_conformance!(
105    unsafe impl NSCoding for NSScriptObjectSpecifier {}
106);
107
108extern_conformance!(
109    unsafe impl NSObjectProtocol for NSScriptObjectSpecifier {}
110);
111
112impl NSScriptObjectSpecifier {
113    extern_methods!(
114        #[cfg(feature = "NSAppleEventDescriptor")]
115        #[unsafe(method(objectSpecifierWithDescriptor:))]
116        #[unsafe(method_family = none)]
117        pub fn objectSpecifierWithDescriptor(
118            descriptor: &NSAppleEventDescriptor,
119        ) -> Option<Retained<NSScriptObjectSpecifier>>;
120
121        #[cfg(feature = "NSString")]
122        #[unsafe(method(initWithContainerSpecifier:key:))]
123        #[unsafe(method_family = init)]
124        pub fn initWithContainerSpecifier_key(
125            this: Allocated<Self>,
126            container: &NSScriptObjectSpecifier,
127            property: &NSString,
128        ) -> Retained<Self>;
129
130        #[cfg(all(
131            feature = "NSClassDescription",
132            feature = "NSScriptClassDescription",
133            feature = "NSString"
134        ))]
135        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
136        #[unsafe(method_family = init)]
137        pub fn initWithContainerClassDescription_containerSpecifier_key(
138            this: Allocated<Self>,
139            class_desc: &NSScriptClassDescription,
140            container: Option<&NSScriptObjectSpecifier>,
141            property: &NSString,
142        ) -> Retained<Self>;
143
144        #[cfg(feature = "NSCoder")]
145        /// # Safety
146        ///
147        /// `in_coder` possibly has further requirements.
148        #[unsafe(method(initWithCoder:))]
149        #[unsafe(method_family = init)]
150        pub unsafe fn initWithCoder(
151            this: Allocated<Self>,
152            in_coder: &NSCoder,
153        ) -> Option<Retained<Self>>;
154
155        /// # Safety
156        ///
157        /// This is not retained internally, you must ensure the object is still alive.
158        #[unsafe(method(childSpecifier))]
159        #[unsafe(method_family = none)]
160        pub unsafe fn childSpecifier(&self) -> Option<Retained<NSScriptObjectSpecifier>>;
161
162        /// Setter for [`childSpecifier`][Self::childSpecifier].
163        ///
164        /// # Safety
165        ///
166        /// This is unretained, you must ensure the object is kept alive while in use.
167        #[unsafe(method(setChildSpecifier:))]
168        #[unsafe(method_family = none)]
169        pub unsafe fn setChildSpecifier(&self, child_specifier: Option<&NSScriptObjectSpecifier>);
170
171        #[unsafe(method(containerSpecifier))]
172        #[unsafe(method_family = none)]
173        pub fn containerSpecifier(&self) -> Option<Retained<NSScriptObjectSpecifier>>;
174
175        /// Setter for [`containerSpecifier`][Self::containerSpecifier].
176        #[unsafe(method(setContainerSpecifier:))]
177        #[unsafe(method_family = none)]
178        pub fn setContainerSpecifier(&self, container_specifier: Option<&NSScriptObjectSpecifier>);
179
180        #[unsafe(method(containerIsObjectBeingTested))]
181        #[unsafe(method_family = none)]
182        pub fn containerIsObjectBeingTested(&self) -> bool;
183
184        /// Setter for [`containerIsObjectBeingTested`][Self::containerIsObjectBeingTested].
185        #[unsafe(method(setContainerIsObjectBeingTested:))]
186        #[unsafe(method_family = none)]
187        pub fn setContainerIsObjectBeingTested(&self, container_is_object_being_tested: bool);
188
189        #[unsafe(method(containerIsRangeContainerObject))]
190        #[unsafe(method_family = none)]
191        pub fn containerIsRangeContainerObject(&self) -> bool;
192
193        /// Setter for [`containerIsRangeContainerObject`][Self::containerIsRangeContainerObject].
194        #[unsafe(method(setContainerIsRangeContainerObject:))]
195        #[unsafe(method_family = none)]
196        pub fn setContainerIsRangeContainerObject(&self, container_is_range_container_object: bool);
197
198        #[cfg(feature = "NSString")]
199        #[unsafe(method(key))]
200        #[unsafe(method_family = none)]
201        pub fn key(&self) -> Retained<NSString>;
202
203        #[cfg(feature = "NSString")]
204        /// Setter for [`key`][Self::key].
205        ///
206        /// This is [copied][crate::NSCopying::copy] when set.
207        #[unsafe(method(setKey:))]
208        #[unsafe(method_family = none)]
209        pub fn setKey(&self, key: &NSString);
210
211        #[cfg(all(feature = "NSClassDescription", feature = "NSScriptClassDescription"))]
212        #[unsafe(method(containerClassDescription))]
213        #[unsafe(method_family = none)]
214        pub fn containerClassDescription(&self) -> Option<Retained<NSScriptClassDescription>>;
215
216        #[cfg(all(feature = "NSClassDescription", feature = "NSScriptClassDescription"))]
217        /// Setter for [`containerClassDescription`][Self::containerClassDescription].
218        #[unsafe(method(setContainerClassDescription:))]
219        #[unsafe(method_family = none)]
220        pub fn setContainerClassDescription(
221            &self,
222            container_class_description: Option<&NSScriptClassDescription>,
223        );
224
225        #[cfg(all(feature = "NSClassDescription", feature = "NSScriptClassDescription"))]
226        #[unsafe(method(keyClassDescription))]
227        #[unsafe(method_family = none)]
228        pub fn keyClassDescription(&self) -> Option<Retained<NSScriptClassDescription>>;
229
230        /// # Safety
231        ///
232        /// - `container` should be of the correct type.
233        /// - `count` must be a valid pointer.
234        #[unsafe(method(indicesOfObjectsByEvaluatingWithContainer:count:))]
235        #[unsafe(method_family = none)]
236        pub unsafe fn indicesOfObjectsByEvaluatingWithContainer_count(
237            &self,
238            container: &AnyObject,
239            count: NonNull<NSInteger>,
240        ) -> *mut NSInteger;
241
242        /// # Safety
243        ///
244        /// `containers` should be of the correct type.
245        #[unsafe(method(objectsByEvaluatingWithContainers:))]
246        #[unsafe(method_family = none)]
247        pub unsafe fn objectsByEvaluatingWithContainers(
248            &self,
249            containers: &AnyObject,
250        ) -> Option<Retained<AnyObject>>;
251
252        #[unsafe(method(objectsByEvaluatingSpecifier))]
253        #[unsafe(method_family = none)]
254        pub fn objectsByEvaluatingSpecifier(&self) -> Option<Retained<AnyObject>>;
255
256        #[unsafe(method(evaluationErrorNumber))]
257        #[unsafe(method_family = none)]
258        pub fn evaluationErrorNumber(&self) -> NSInteger;
259
260        /// Setter for [`evaluationErrorNumber`][Self::evaluationErrorNumber].
261        #[unsafe(method(setEvaluationErrorNumber:))]
262        #[unsafe(method_family = none)]
263        pub fn setEvaluationErrorNumber(&self, evaluation_error_number: NSInteger);
264
265        #[unsafe(method(evaluationErrorSpecifier))]
266        #[unsafe(method_family = none)]
267        pub fn evaluationErrorSpecifier(&self) -> Option<Retained<NSScriptObjectSpecifier>>;
268
269        #[cfg(feature = "NSAppleEventDescriptor")]
270        #[unsafe(method(descriptor))]
271        #[unsafe(method_family = none)]
272        pub fn descriptor(&self) -> Option<Retained<NSAppleEventDescriptor>>;
273    );
274}
275
276/// Methods declared on superclass `NSObject`.
277impl NSScriptObjectSpecifier {
278    extern_methods!(
279        #[unsafe(method(init))]
280        #[unsafe(method_family = init)]
281        pub fn init(this: Allocated<Self>) -> Retained<Self>;
282
283        #[unsafe(method(new))]
284        #[unsafe(method_family = new)]
285        pub fn new() -> Retained<Self>;
286    );
287}
288
289impl DefaultRetained for NSScriptObjectSpecifier {
290    #[inline]
291    fn default_retained() -> Retained<Self> {
292        Self::new()
293    }
294}
295
296mod private_NSObjectNSScriptObjectSpecifiers {
297    pub trait Sealed {}
298}
299
300/// Category "NSScriptObjectSpecifiers" on [`NSObject`].
301#[doc(alias = "NSScriptObjectSpecifiers")]
302pub unsafe trait NSObjectNSScriptObjectSpecifiers:
303    ClassType + Sized + private_NSObjectNSScriptObjectSpecifiers::Sealed
304{
305    extern_methods!(
306        #[unsafe(method(objectSpecifier))]
307        #[unsafe(method_family = none)]
308        fn objectSpecifier(&self) -> Option<Retained<NSScriptObjectSpecifier>>;
309
310        #[cfg(all(feature = "NSArray", feature = "NSValue"))]
311        #[unsafe(method(indicesOfObjectsByEvaluatingObjectSpecifier:))]
312        #[unsafe(method_family = none)]
313        fn indicesOfObjectsByEvaluatingObjectSpecifier(
314            &self,
315            specifier: &NSScriptObjectSpecifier,
316        ) -> Option<Retained<NSArray<NSNumber>>>;
317    );
318}
319
320impl private_NSObjectNSScriptObjectSpecifiers::Sealed for NSObject {}
321unsafe impl NSObjectNSScriptObjectSpecifiers for NSObject {}
322
323extern_class!(
324    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsindexspecifier?language=objc)
325    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
326    #[derive(Debug, PartialEq, Eq, Hash)]
327    pub struct NSIndexSpecifier;
328);
329
330#[cfg(feature = "NSObject")]
331extern_conformance!(
332    unsafe impl NSCoding for NSIndexSpecifier {}
333);
334
335extern_conformance!(
336    unsafe impl NSObjectProtocol for NSIndexSpecifier {}
337);
338
339impl NSIndexSpecifier {
340    extern_methods!(
341        #[cfg(all(
342            feature = "NSClassDescription",
343            feature = "NSScriptClassDescription",
344            feature = "NSString"
345        ))]
346        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:index:))]
347        #[unsafe(method_family = init)]
348        pub fn initWithContainerClassDescription_containerSpecifier_key_index(
349            this: Allocated<Self>,
350            class_desc: &NSScriptClassDescription,
351            container: Option<&NSScriptObjectSpecifier>,
352            property: &NSString,
353            index: NSInteger,
354        ) -> Retained<Self>;
355
356        #[unsafe(method(index))]
357        #[unsafe(method_family = none)]
358        pub fn index(&self) -> NSInteger;
359
360        /// Setter for [`index`][Self::index].
361        #[unsafe(method(setIndex:))]
362        #[unsafe(method_family = none)]
363        pub fn setIndex(&self, index: NSInteger);
364    );
365}
366
367/// Methods declared on superclass `NSScriptObjectSpecifier`.
368impl NSIndexSpecifier {
369    extern_methods!(
370        #[cfg(feature = "NSString")]
371        #[unsafe(method(initWithContainerSpecifier:key:))]
372        #[unsafe(method_family = init)]
373        pub fn initWithContainerSpecifier_key(
374            this: Allocated<Self>,
375            container: &NSScriptObjectSpecifier,
376            property: &NSString,
377        ) -> Retained<Self>;
378
379        #[cfg(all(
380            feature = "NSClassDescription",
381            feature = "NSScriptClassDescription",
382            feature = "NSString"
383        ))]
384        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
385        #[unsafe(method_family = init)]
386        pub fn initWithContainerClassDescription_containerSpecifier_key(
387            this: Allocated<Self>,
388            class_desc: &NSScriptClassDescription,
389            container: Option<&NSScriptObjectSpecifier>,
390            property: &NSString,
391        ) -> Retained<Self>;
392
393        #[cfg(feature = "NSCoder")]
394        /// # Safety
395        ///
396        /// `in_coder` possibly has further requirements.
397        #[unsafe(method(initWithCoder:))]
398        #[unsafe(method_family = init)]
399        pub unsafe fn initWithCoder(
400            this: Allocated<Self>,
401            in_coder: &NSCoder,
402        ) -> Option<Retained<Self>>;
403    );
404}
405
406/// Methods declared on superclass `NSObject`.
407impl NSIndexSpecifier {
408    extern_methods!(
409        #[unsafe(method(init))]
410        #[unsafe(method_family = init)]
411        pub fn init(this: Allocated<Self>) -> Retained<Self>;
412
413        #[unsafe(method(new))]
414        #[unsafe(method_family = new)]
415        pub fn new() -> Retained<Self>;
416    );
417}
418
419impl DefaultRetained for NSIndexSpecifier {
420    #[inline]
421    fn default_retained() -> Retained<Self> {
422        Self::new()
423    }
424}
425
426extern_class!(
427    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsmiddlespecifier?language=objc)
428    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
429    #[derive(Debug, PartialEq, Eq, Hash)]
430    pub struct NSMiddleSpecifier;
431);
432
433#[cfg(feature = "NSObject")]
434extern_conformance!(
435    unsafe impl NSCoding for NSMiddleSpecifier {}
436);
437
438extern_conformance!(
439    unsafe impl NSObjectProtocol for NSMiddleSpecifier {}
440);
441
442impl NSMiddleSpecifier {
443    extern_methods!();
444}
445
446/// Methods declared on superclass `NSScriptObjectSpecifier`.
447impl NSMiddleSpecifier {
448    extern_methods!(
449        #[cfg(feature = "NSString")]
450        #[unsafe(method(initWithContainerSpecifier:key:))]
451        #[unsafe(method_family = init)]
452        pub fn initWithContainerSpecifier_key(
453            this: Allocated<Self>,
454            container: &NSScriptObjectSpecifier,
455            property: &NSString,
456        ) -> Retained<Self>;
457
458        #[cfg(all(
459            feature = "NSClassDescription",
460            feature = "NSScriptClassDescription",
461            feature = "NSString"
462        ))]
463        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
464        #[unsafe(method_family = init)]
465        pub fn initWithContainerClassDescription_containerSpecifier_key(
466            this: Allocated<Self>,
467            class_desc: &NSScriptClassDescription,
468            container: Option<&NSScriptObjectSpecifier>,
469            property: &NSString,
470        ) -> Retained<Self>;
471
472        #[cfg(feature = "NSCoder")]
473        /// # Safety
474        ///
475        /// `in_coder` possibly has further requirements.
476        #[unsafe(method(initWithCoder:))]
477        #[unsafe(method_family = init)]
478        pub unsafe fn initWithCoder(
479            this: Allocated<Self>,
480            in_coder: &NSCoder,
481        ) -> Option<Retained<Self>>;
482    );
483}
484
485/// Methods declared on superclass `NSObject`.
486impl NSMiddleSpecifier {
487    extern_methods!(
488        #[unsafe(method(init))]
489        #[unsafe(method_family = init)]
490        pub fn init(this: Allocated<Self>) -> Retained<Self>;
491
492        #[unsafe(method(new))]
493        #[unsafe(method_family = new)]
494        pub fn new() -> Retained<Self>;
495    );
496}
497
498impl DefaultRetained for NSMiddleSpecifier {
499    #[inline]
500    fn default_retained() -> Retained<Self> {
501        Self::new()
502    }
503}
504
505extern_class!(
506    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsnamespecifier?language=objc)
507    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
508    #[derive(Debug, PartialEq, Eq, Hash)]
509    pub struct NSNameSpecifier;
510);
511
512#[cfg(feature = "NSObject")]
513extern_conformance!(
514    unsafe impl NSCoding for NSNameSpecifier {}
515);
516
517extern_conformance!(
518    unsafe impl NSObjectProtocol for NSNameSpecifier {}
519);
520
521impl NSNameSpecifier {
522    extern_methods!(
523        #[cfg(feature = "NSCoder")]
524        /// # Safety
525        ///
526        /// `in_coder` possibly has further requirements.
527        #[unsafe(method(initWithCoder:))]
528        #[unsafe(method_family = init)]
529        pub unsafe fn initWithCoder(
530            this: Allocated<Self>,
531            in_coder: &NSCoder,
532        ) -> Option<Retained<Self>>;
533
534        #[cfg(all(
535            feature = "NSClassDescription",
536            feature = "NSScriptClassDescription",
537            feature = "NSString"
538        ))]
539        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:name:))]
540        #[unsafe(method_family = init)]
541        pub fn initWithContainerClassDescription_containerSpecifier_key_name(
542            this: Allocated<Self>,
543            class_desc: &NSScriptClassDescription,
544            container: Option<&NSScriptObjectSpecifier>,
545            property: &NSString,
546            name: &NSString,
547        ) -> Retained<Self>;
548
549        #[cfg(feature = "NSString")]
550        #[unsafe(method(name))]
551        #[unsafe(method_family = none)]
552        pub fn name(&self) -> Retained<NSString>;
553
554        #[cfg(feature = "NSString")]
555        /// Setter for [`name`][Self::name].
556        ///
557        /// This is [copied][crate::NSCopying::copy] when set.
558        #[unsafe(method(setName:))]
559        #[unsafe(method_family = none)]
560        pub fn setName(&self, name: &NSString);
561    );
562}
563
564/// Methods declared on superclass `NSScriptObjectSpecifier`.
565impl NSNameSpecifier {
566    extern_methods!(
567        #[cfg(feature = "NSString")]
568        #[unsafe(method(initWithContainerSpecifier:key:))]
569        #[unsafe(method_family = init)]
570        pub fn initWithContainerSpecifier_key(
571            this: Allocated<Self>,
572            container: &NSScriptObjectSpecifier,
573            property: &NSString,
574        ) -> Retained<Self>;
575
576        #[cfg(all(
577            feature = "NSClassDescription",
578            feature = "NSScriptClassDescription",
579            feature = "NSString"
580        ))]
581        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
582        #[unsafe(method_family = init)]
583        pub fn initWithContainerClassDescription_containerSpecifier_key(
584            this: Allocated<Self>,
585            class_desc: &NSScriptClassDescription,
586            container: Option<&NSScriptObjectSpecifier>,
587            property: &NSString,
588        ) -> Retained<Self>;
589    );
590}
591
592/// Methods declared on superclass `NSObject`.
593impl NSNameSpecifier {
594    extern_methods!(
595        #[unsafe(method(init))]
596        #[unsafe(method_family = init)]
597        pub fn init(this: Allocated<Self>) -> Retained<Self>;
598
599        #[unsafe(method(new))]
600        #[unsafe(method_family = new)]
601        pub fn new() -> Retained<Self>;
602    );
603}
604
605impl DefaultRetained for NSNameSpecifier {
606    #[inline]
607    fn default_retained() -> Retained<Self> {
608        Self::new()
609    }
610}
611
612extern_class!(
613    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nspositionalspecifier?language=objc)
614    #[unsafe(super(NSObject))]
615    #[derive(Debug, PartialEq, Eq, Hash)]
616    pub struct NSPositionalSpecifier;
617);
618
619extern_conformance!(
620    unsafe impl NSObjectProtocol for NSPositionalSpecifier {}
621);
622
623impl NSPositionalSpecifier {
624    extern_methods!(
625        #[unsafe(method(initWithPosition:objectSpecifier:))]
626        #[unsafe(method_family = init)]
627        pub fn initWithPosition_objectSpecifier(
628            this: Allocated<Self>,
629            position: NSInsertionPosition,
630            specifier: &NSScriptObjectSpecifier,
631        ) -> Retained<Self>;
632
633        #[unsafe(method(position))]
634        #[unsafe(method_family = none)]
635        pub fn position(&self) -> NSInsertionPosition;
636
637        #[unsafe(method(objectSpecifier))]
638        #[unsafe(method_family = none)]
639        pub fn objectSpecifier(&self) -> Retained<NSScriptObjectSpecifier>;
640
641        #[cfg(all(feature = "NSClassDescription", feature = "NSScriptClassDescription"))]
642        #[unsafe(method(setInsertionClassDescription:))]
643        #[unsafe(method_family = none)]
644        pub fn setInsertionClassDescription(&self, class_description: &NSScriptClassDescription);
645
646        #[unsafe(method(evaluate))]
647        #[unsafe(method_family = none)]
648        pub fn evaluate(&self);
649
650        #[unsafe(method(insertionContainer))]
651        #[unsafe(method_family = none)]
652        pub fn insertionContainer(&self) -> Option<Retained<AnyObject>>;
653
654        #[cfg(feature = "NSString")]
655        #[unsafe(method(insertionKey))]
656        #[unsafe(method_family = none)]
657        pub fn insertionKey(&self) -> Option<Retained<NSString>>;
658
659        #[unsafe(method(insertionIndex))]
660        #[unsafe(method_family = none)]
661        pub fn insertionIndex(&self) -> NSInteger;
662
663        #[unsafe(method(insertionReplaces))]
664        #[unsafe(method_family = none)]
665        pub fn insertionReplaces(&self) -> bool;
666    );
667}
668
669/// Methods declared on superclass `NSObject`.
670impl NSPositionalSpecifier {
671    extern_methods!(
672        #[unsafe(method(init))]
673        #[unsafe(method_family = init)]
674        pub fn init(this: Allocated<Self>) -> Retained<Self>;
675
676        #[unsafe(method(new))]
677        #[unsafe(method_family = new)]
678        pub fn new() -> Retained<Self>;
679    );
680}
681
682impl DefaultRetained for NSPositionalSpecifier {
683    #[inline]
684    fn default_retained() -> Retained<Self> {
685        Self::new()
686    }
687}
688
689extern_class!(
690    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nspropertyspecifier?language=objc)
691    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
692    #[derive(Debug, PartialEq, Eq, Hash)]
693    pub struct NSPropertySpecifier;
694);
695
696#[cfg(feature = "NSObject")]
697extern_conformance!(
698    unsafe impl NSCoding for NSPropertySpecifier {}
699);
700
701extern_conformance!(
702    unsafe impl NSObjectProtocol for NSPropertySpecifier {}
703);
704
705impl NSPropertySpecifier {
706    extern_methods!();
707}
708
709/// Methods declared on superclass `NSScriptObjectSpecifier`.
710impl NSPropertySpecifier {
711    extern_methods!(
712        #[cfg(feature = "NSString")]
713        #[unsafe(method(initWithContainerSpecifier:key:))]
714        #[unsafe(method_family = init)]
715        pub fn initWithContainerSpecifier_key(
716            this: Allocated<Self>,
717            container: &NSScriptObjectSpecifier,
718            property: &NSString,
719        ) -> Retained<Self>;
720
721        #[cfg(all(
722            feature = "NSClassDescription",
723            feature = "NSScriptClassDescription",
724            feature = "NSString"
725        ))]
726        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
727        #[unsafe(method_family = init)]
728        pub fn initWithContainerClassDescription_containerSpecifier_key(
729            this: Allocated<Self>,
730            class_desc: &NSScriptClassDescription,
731            container: Option<&NSScriptObjectSpecifier>,
732            property: &NSString,
733        ) -> Retained<Self>;
734
735        #[cfg(feature = "NSCoder")]
736        /// # Safety
737        ///
738        /// `in_coder` possibly has further requirements.
739        #[unsafe(method(initWithCoder:))]
740        #[unsafe(method_family = init)]
741        pub unsafe fn initWithCoder(
742            this: Allocated<Self>,
743            in_coder: &NSCoder,
744        ) -> Option<Retained<Self>>;
745    );
746}
747
748/// Methods declared on superclass `NSObject`.
749impl NSPropertySpecifier {
750    extern_methods!(
751        #[unsafe(method(init))]
752        #[unsafe(method_family = init)]
753        pub fn init(this: Allocated<Self>) -> Retained<Self>;
754
755        #[unsafe(method(new))]
756        #[unsafe(method_family = new)]
757        pub fn new() -> Retained<Self>;
758    );
759}
760
761impl DefaultRetained for NSPropertySpecifier {
762    #[inline]
763    fn default_retained() -> Retained<Self> {
764        Self::new()
765    }
766}
767
768extern_class!(
769    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsrandomspecifier?language=objc)
770    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
771    #[derive(Debug, PartialEq, Eq, Hash)]
772    pub struct NSRandomSpecifier;
773);
774
775#[cfg(feature = "NSObject")]
776extern_conformance!(
777    unsafe impl NSCoding for NSRandomSpecifier {}
778);
779
780extern_conformance!(
781    unsafe impl NSObjectProtocol for NSRandomSpecifier {}
782);
783
784impl NSRandomSpecifier {
785    extern_methods!();
786}
787
788/// Methods declared on superclass `NSScriptObjectSpecifier`.
789impl NSRandomSpecifier {
790    extern_methods!(
791        #[cfg(feature = "NSString")]
792        #[unsafe(method(initWithContainerSpecifier:key:))]
793        #[unsafe(method_family = init)]
794        pub fn initWithContainerSpecifier_key(
795            this: Allocated<Self>,
796            container: &NSScriptObjectSpecifier,
797            property: &NSString,
798        ) -> Retained<Self>;
799
800        #[cfg(all(
801            feature = "NSClassDescription",
802            feature = "NSScriptClassDescription",
803            feature = "NSString"
804        ))]
805        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
806        #[unsafe(method_family = init)]
807        pub fn initWithContainerClassDescription_containerSpecifier_key(
808            this: Allocated<Self>,
809            class_desc: &NSScriptClassDescription,
810            container: Option<&NSScriptObjectSpecifier>,
811            property: &NSString,
812        ) -> Retained<Self>;
813
814        #[cfg(feature = "NSCoder")]
815        /// # Safety
816        ///
817        /// `in_coder` possibly has further requirements.
818        #[unsafe(method(initWithCoder:))]
819        #[unsafe(method_family = init)]
820        pub unsafe fn initWithCoder(
821            this: Allocated<Self>,
822            in_coder: &NSCoder,
823        ) -> Option<Retained<Self>>;
824    );
825}
826
827/// Methods declared on superclass `NSObject`.
828impl NSRandomSpecifier {
829    extern_methods!(
830        #[unsafe(method(init))]
831        #[unsafe(method_family = init)]
832        pub fn init(this: Allocated<Self>) -> Retained<Self>;
833
834        #[unsafe(method(new))]
835        #[unsafe(method_family = new)]
836        pub fn new() -> Retained<Self>;
837    );
838}
839
840impl DefaultRetained for NSRandomSpecifier {
841    #[inline]
842    fn default_retained() -> Retained<Self> {
843        Self::new()
844    }
845}
846
847extern_class!(
848    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsrangespecifier?language=objc)
849    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
850    #[derive(Debug, PartialEq, Eq, Hash)]
851    pub struct NSRangeSpecifier;
852);
853
854#[cfg(feature = "NSObject")]
855extern_conformance!(
856    unsafe impl NSCoding for NSRangeSpecifier {}
857);
858
859extern_conformance!(
860    unsafe impl NSObjectProtocol for NSRangeSpecifier {}
861);
862
863impl NSRangeSpecifier {
864    extern_methods!(
865        #[cfg(feature = "NSCoder")]
866        /// # Safety
867        ///
868        /// `in_coder` possibly has further requirements.
869        #[unsafe(method(initWithCoder:))]
870        #[unsafe(method_family = init)]
871        pub unsafe fn initWithCoder(
872            this: Allocated<Self>,
873            in_coder: &NSCoder,
874        ) -> Option<Retained<Self>>;
875
876        #[cfg(all(
877            feature = "NSClassDescription",
878            feature = "NSScriptClassDescription",
879            feature = "NSString"
880        ))]
881        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:startSpecifier:endSpecifier:))]
882        #[unsafe(method_family = init)]
883        pub fn initWithContainerClassDescription_containerSpecifier_key_startSpecifier_endSpecifier(
884            this: Allocated<Self>,
885            class_desc: &NSScriptClassDescription,
886            container: Option<&NSScriptObjectSpecifier>,
887            property: &NSString,
888            start_spec: Option<&NSScriptObjectSpecifier>,
889            end_spec: Option<&NSScriptObjectSpecifier>,
890        ) -> Retained<Self>;
891
892        #[unsafe(method(startSpecifier))]
893        #[unsafe(method_family = none)]
894        pub fn startSpecifier(&self) -> Option<Retained<NSScriptObjectSpecifier>>;
895
896        /// Setter for [`startSpecifier`][Self::startSpecifier].
897        #[unsafe(method(setStartSpecifier:))]
898        #[unsafe(method_family = none)]
899        pub fn setStartSpecifier(&self, start_specifier: Option<&NSScriptObjectSpecifier>);
900
901        #[unsafe(method(endSpecifier))]
902        #[unsafe(method_family = none)]
903        pub fn endSpecifier(&self) -> Option<Retained<NSScriptObjectSpecifier>>;
904
905        /// Setter for [`endSpecifier`][Self::endSpecifier].
906        #[unsafe(method(setEndSpecifier:))]
907        #[unsafe(method_family = none)]
908        pub fn setEndSpecifier(&self, end_specifier: Option<&NSScriptObjectSpecifier>);
909    );
910}
911
912/// Methods declared on superclass `NSScriptObjectSpecifier`.
913impl NSRangeSpecifier {
914    extern_methods!(
915        #[cfg(feature = "NSString")]
916        #[unsafe(method(initWithContainerSpecifier:key:))]
917        #[unsafe(method_family = init)]
918        pub fn initWithContainerSpecifier_key(
919            this: Allocated<Self>,
920            container: &NSScriptObjectSpecifier,
921            property: &NSString,
922        ) -> Retained<Self>;
923
924        #[cfg(all(
925            feature = "NSClassDescription",
926            feature = "NSScriptClassDescription",
927            feature = "NSString"
928        ))]
929        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
930        #[unsafe(method_family = init)]
931        pub fn initWithContainerClassDescription_containerSpecifier_key(
932            this: Allocated<Self>,
933            class_desc: &NSScriptClassDescription,
934            container: Option<&NSScriptObjectSpecifier>,
935            property: &NSString,
936        ) -> Retained<Self>;
937    );
938}
939
940/// Methods declared on superclass `NSObject`.
941impl NSRangeSpecifier {
942    extern_methods!(
943        #[unsafe(method(init))]
944        #[unsafe(method_family = init)]
945        pub fn init(this: Allocated<Self>) -> Retained<Self>;
946
947        #[unsafe(method(new))]
948        #[unsafe(method_family = new)]
949        pub fn new() -> Retained<Self>;
950    );
951}
952
953impl DefaultRetained for NSRangeSpecifier {
954    #[inline]
955    fn default_retained() -> Retained<Self> {
956        Self::new()
957    }
958}
959
960extern_class!(
961    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsrelativespecifier?language=objc)
962    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
963    #[derive(Debug, PartialEq, Eq, Hash)]
964    pub struct NSRelativeSpecifier;
965);
966
967#[cfg(feature = "NSObject")]
968extern_conformance!(
969    unsafe impl NSCoding for NSRelativeSpecifier {}
970);
971
972extern_conformance!(
973    unsafe impl NSObjectProtocol for NSRelativeSpecifier {}
974);
975
976impl NSRelativeSpecifier {
977    extern_methods!(
978        #[cfg(feature = "NSCoder")]
979        /// # Safety
980        ///
981        /// `in_coder` possibly has further requirements.
982        #[unsafe(method(initWithCoder:))]
983        #[unsafe(method_family = init)]
984        pub unsafe fn initWithCoder(
985            this: Allocated<Self>,
986            in_coder: &NSCoder,
987        ) -> Option<Retained<Self>>;
988
989        #[cfg(all(
990            feature = "NSClassDescription",
991            feature = "NSScriptClassDescription",
992            feature = "NSString"
993        ))]
994        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:relativePosition:baseSpecifier:))]
995        #[unsafe(method_family = init)]
996        pub fn initWithContainerClassDescription_containerSpecifier_key_relativePosition_baseSpecifier(
997            this: Allocated<Self>,
998            class_desc: &NSScriptClassDescription,
999            container: Option<&NSScriptObjectSpecifier>,
1000            property: &NSString,
1001            rel_pos: NSRelativePosition,
1002            base_specifier: Option<&NSScriptObjectSpecifier>,
1003        ) -> Retained<Self>;
1004
1005        #[unsafe(method(relativePosition))]
1006        #[unsafe(method_family = none)]
1007        pub fn relativePosition(&self) -> NSRelativePosition;
1008
1009        /// Setter for [`relativePosition`][Self::relativePosition].
1010        #[unsafe(method(setRelativePosition:))]
1011        #[unsafe(method_family = none)]
1012        pub fn setRelativePosition(&self, relative_position: NSRelativePosition);
1013
1014        #[unsafe(method(baseSpecifier))]
1015        #[unsafe(method_family = none)]
1016        pub fn baseSpecifier(&self) -> Option<Retained<NSScriptObjectSpecifier>>;
1017
1018        /// Setter for [`baseSpecifier`][Self::baseSpecifier].
1019        #[unsafe(method(setBaseSpecifier:))]
1020        #[unsafe(method_family = none)]
1021        pub fn setBaseSpecifier(&self, base_specifier: Option<&NSScriptObjectSpecifier>);
1022    );
1023}
1024
1025/// Methods declared on superclass `NSScriptObjectSpecifier`.
1026impl NSRelativeSpecifier {
1027    extern_methods!(
1028        #[cfg(feature = "NSString")]
1029        #[unsafe(method(initWithContainerSpecifier:key:))]
1030        #[unsafe(method_family = init)]
1031        pub fn initWithContainerSpecifier_key(
1032            this: Allocated<Self>,
1033            container: &NSScriptObjectSpecifier,
1034            property: &NSString,
1035        ) -> Retained<Self>;
1036
1037        #[cfg(all(
1038            feature = "NSClassDescription",
1039            feature = "NSScriptClassDescription",
1040            feature = "NSString"
1041        ))]
1042        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
1043        #[unsafe(method_family = init)]
1044        pub fn initWithContainerClassDescription_containerSpecifier_key(
1045            this: Allocated<Self>,
1046            class_desc: &NSScriptClassDescription,
1047            container: Option<&NSScriptObjectSpecifier>,
1048            property: &NSString,
1049        ) -> Retained<Self>;
1050    );
1051}
1052
1053/// Methods declared on superclass `NSObject`.
1054impl NSRelativeSpecifier {
1055    extern_methods!(
1056        #[unsafe(method(init))]
1057        #[unsafe(method_family = init)]
1058        pub fn init(this: Allocated<Self>) -> Retained<Self>;
1059
1060        #[unsafe(method(new))]
1061        #[unsafe(method_family = new)]
1062        pub fn new() -> Retained<Self>;
1063    );
1064}
1065
1066impl DefaultRetained for NSRelativeSpecifier {
1067    #[inline]
1068    fn default_retained() -> Retained<Self> {
1069        Self::new()
1070    }
1071}
1072
1073extern_class!(
1074    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsuniqueidspecifier?language=objc)
1075    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
1076    #[derive(Debug, PartialEq, Eq, Hash)]
1077    pub struct NSUniqueIDSpecifier;
1078);
1079
1080#[cfg(feature = "NSObject")]
1081extern_conformance!(
1082    unsafe impl NSCoding for NSUniqueIDSpecifier {}
1083);
1084
1085extern_conformance!(
1086    unsafe impl NSObjectProtocol for NSUniqueIDSpecifier {}
1087);
1088
1089impl NSUniqueIDSpecifier {
1090    extern_methods!(
1091        #[cfg(feature = "NSCoder")]
1092        /// # Safety
1093        ///
1094        /// `in_coder` possibly has further requirements.
1095        #[unsafe(method(initWithCoder:))]
1096        #[unsafe(method_family = init)]
1097        pub unsafe fn initWithCoder(
1098            this: Allocated<Self>,
1099            in_coder: &NSCoder,
1100        ) -> Option<Retained<Self>>;
1101
1102        #[cfg(all(
1103            feature = "NSClassDescription",
1104            feature = "NSScriptClassDescription",
1105            feature = "NSString"
1106        ))]
1107        /// # Safety
1108        ///
1109        /// `unique_id` should be of the correct type.
1110        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:uniqueID:))]
1111        #[unsafe(method_family = init)]
1112        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key_uniqueID(
1113            this: Allocated<Self>,
1114            class_desc: &NSScriptClassDescription,
1115            container: Option<&NSScriptObjectSpecifier>,
1116            property: &NSString,
1117            unique_id: &AnyObject,
1118        ) -> Retained<Self>;
1119
1120        #[unsafe(method(uniqueID))]
1121        #[unsafe(method_family = none)]
1122        pub fn uniqueID(&self) -> Retained<AnyObject>;
1123
1124        /// Setter for [`uniqueID`][Self::uniqueID].
1125        ///
1126        /// This is [copied][crate::NSCopying::copy] when set.
1127        ///
1128        /// # Safety
1129        ///
1130        /// `unique_id` should be of the correct type.
1131        #[unsafe(method(setUniqueID:))]
1132        #[unsafe(method_family = none)]
1133        pub unsafe fn setUniqueID(&self, unique_id: &AnyObject);
1134    );
1135}
1136
1137/// Methods declared on superclass `NSScriptObjectSpecifier`.
1138impl NSUniqueIDSpecifier {
1139    extern_methods!(
1140        #[cfg(feature = "NSString")]
1141        #[unsafe(method(initWithContainerSpecifier:key:))]
1142        #[unsafe(method_family = init)]
1143        pub fn initWithContainerSpecifier_key(
1144            this: Allocated<Self>,
1145            container: &NSScriptObjectSpecifier,
1146            property: &NSString,
1147        ) -> Retained<Self>;
1148
1149        #[cfg(all(
1150            feature = "NSClassDescription",
1151            feature = "NSScriptClassDescription",
1152            feature = "NSString"
1153        ))]
1154        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
1155        #[unsafe(method_family = init)]
1156        pub fn initWithContainerClassDescription_containerSpecifier_key(
1157            this: Allocated<Self>,
1158            class_desc: &NSScriptClassDescription,
1159            container: Option<&NSScriptObjectSpecifier>,
1160            property: &NSString,
1161        ) -> Retained<Self>;
1162    );
1163}
1164
1165/// Methods declared on superclass `NSObject`.
1166impl NSUniqueIDSpecifier {
1167    extern_methods!(
1168        #[unsafe(method(init))]
1169        #[unsafe(method_family = init)]
1170        pub fn init(this: Allocated<Self>) -> Retained<Self>;
1171
1172        #[unsafe(method(new))]
1173        #[unsafe(method_family = new)]
1174        pub fn new() -> Retained<Self>;
1175    );
1176}
1177
1178impl DefaultRetained for NSUniqueIDSpecifier {
1179    #[inline]
1180    fn default_retained() -> Retained<Self> {
1181        Self::new()
1182    }
1183}
1184
1185extern_class!(
1186    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nswhosespecifier?language=objc)
1187    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
1188    #[derive(Debug, PartialEq, Eq, Hash)]
1189    pub struct NSWhoseSpecifier;
1190);
1191
1192#[cfg(feature = "NSObject")]
1193extern_conformance!(
1194    unsafe impl NSCoding for NSWhoseSpecifier {}
1195);
1196
1197extern_conformance!(
1198    unsafe impl NSObjectProtocol for NSWhoseSpecifier {}
1199);
1200
1201impl NSWhoseSpecifier {
1202    extern_methods!(
1203        #[cfg(feature = "NSCoder")]
1204        /// # Safety
1205        ///
1206        /// `in_coder` possibly has further requirements.
1207        #[unsafe(method(initWithCoder:))]
1208        #[unsafe(method_family = init)]
1209        pub unsafe fn initWithCoder(
1210            this: Allocated<Self>,
1211            in_coder: &NSCoder,
1212        ) -> Option<Retained<Self>>;
1213
1214        #[cfg(all(
1215            feature = "NSClassDescription",
1216            feature = "NSScriptClassDescription",
1217            feature = "NSScriptWhoseTests",
1218            feature = "NSString"
1219        ))]
1220        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:test:))]
1221        #[unsafe(method_family = init)]
1222        pub fn initWithContainerClassDescription_containerSpecifier_key_test(
1223            this: Allocated<Self>,
1224            class_desc: &NSScriptClassDescription,
1225            container: Option<&NSScriptObjectSpecifier>,
1226            property: &NSString,
1227            test: &NSScriptWhoseTest,
1228        ) -> Retained<Self>;
1229
1230        #[cfg(feature = "NSScriptWhoseTests")]
1231        #[unsafe(method(test))]
1232        #[unsafe(method_family = none)]
1233        pub fn test(&self) -> Retained<NSScriptWhoseTest>;
1234
1235        #[cfg(feature = "NSScriptWhoseTests")]
1236        /// Setter for [`test`][Self::test].
1237        #[unsafe(method(setTest:))]
1238        #[unsafe(method_family = none)]
1239        pub fn setTest(&self, test: &NSScriptWhoseTest);
1240
1241        #[unsafe(method(startSubelementIdentifier))]
1242        #[unsafe(method_family = none)]
1243        pub fn startSubelementIdentifier(&self) -> NSWhoseSubelementIdentifier;
1244
1245        /// Setter for [`startSubelementIdentifier`][Self::startSubelementIdentifier].
1246        #[unsafe(method(setStartSubelementIdentifier:))]
1247        #[unsafe(method_family = none)]
1248        pub fn setStartSubelementIdentifier(
1249            &self,
1250            start_subelement_identifier: NSWhoseSubelementIdentifier,
1251        );
1252
1253        #[unsafe(method(startSubelementIndex))]
1254        #[unsafe(method_family = none)]
1255        pub fn startSubelementIndex(&self) -> NSInteger;
1256
1257        /// Setter for [`startSubelementIndex`][Self::startSubelementIndex].
1258        #[unsafe(method(setStartSubelementIndex:))]
1259        #[unsafe(method_family = none)]
1260        pub fn setStartSubelementIndex(&self, start_subelement_index: NSInteger);
1261
1262        #[unsafe(method(endSubelementIdentifier))]
1263        #[unsafe(method_family = none)]
1264        pub fn endSubelementIdentifier(&self) -> NSWhoseSubelementIdentifier;
1265
1266        /// Setter for [`endSubelementIdentifier`][Self::endSubelementIdentifier].
1267        #[unsafe(method(setEndSubelementIdentifier:))]
1268        #[unsafe(method_family = none)]
1269        pub fn setEndSubelementIdentifier(
1270            &self,
1271            end_subelement_identifier: NSWhoseSubelementIdentifier,
1272        );
1273
1274        #[unsafe(method(endSubelementIndex))]
1275        #[unsafe(method_family = none)]
1276        pub fn endSubelementIndex(&self) -> NSInteger;
1277
1278        /// Setter for [`endSubelementIndex`][Self::endSubelementIndex].
1279        #[unsafe(method(setEndSubelementIndex:))]
1280        #[unsafe(method_family = none)]
1281        pub fn setEndSubelementIndex(&self, end_subelement_index: NSInteger);
1282    );
1283}
1284
1285/// Methods declared on superclass `NSScriptObjectSpecifier`.
1286impl NSWhoseSpecifier {
1287    extern_methods!(
1288        #[cfg(feature = "NSString")]
1289        #[unsafe(method(initWithContainerSpecifier:key:))]
1290        #[unsafe(method_family = init)]
1291        pub fn initWithContainerSpecifier_key(
1292            this: Allocated<Self>,
1293            container: &NSScriptObjectSpecifier,
1294            property: &NSString,
1295        ) -> Retained<Self>;
1296
1297        #[cfg(all(
1298            feature = "NSClassDescription",
1299            feature = "NSScriptClassDescription",
1300            feature = "NSString"
1301        ))]
1302        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
1303        #[unsafe(method_family = init)]
1304        pub fn initWithContainerClassDescription_containerSpecifier_key(
1305            this: Allocated<Self>,
1306            class_desc: &NSScriptClassDescription,
1307            container: Option<&NSScriptObjectSpecifier>,
1308            property: &NSString,
1309        ) -> Retained<Self>;
1310    );
1311}
1312
1313/// Methods declared on superclass `NSObject`.
1314impl NSWhoseSpecifier {
1315    extern_methods!(
1316        #[unsafe(method(init))]
1317        #[unsafe(method_family = init)]
1318        pub fn init(this: Allocated<Self>) -> Retained<Self>;
1319
1320        #[unsafe(method(new))]
1321        #[unsafe(method_family = new)]
1322        pub fn new() -> Retained<Self>;
1323    );
1324}
1325
1326impl DefaultRetained for NSWhoseSpecifier {
1327    #[inline]
1328    fn default_retained() -> Retained<Self> {
1329        Self::new()
1330    }
1331}