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 unsafe 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 unsafe 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 unsafe 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        #[unsafe(method(initWithCoder:))]
146        #[unsafe(method_family = init)]
147        pub unsafe fn initWithCoder(
148            this: Allocated<Self>,
149            in_coder: &NSCoder,
150        ) -> Option<Retained<Self>>;
151
152        #[unsafe(method(childSpecifier))]
153        #[unsafe(method_family = none)]
154        pub unsafe fn childSpecifier(&self) -> Option<Retained<NSScriptObjectSpecifier>>;
155
156        /// Setter for [`childSpecifier`][Self::childSpecifier].
157        #[unsafe(method(setChildSpecifier:))]
158        #[unsafe(method_family = none)]
159        pub unsafe fn setChildSpecifier(&self, child_specifier: Option<&NSScriptObjectSpecifier>);
160
161        #[unsafe(method(containerSpecifier))]
162        #[unsafe(method_family = none)]
163        pub unsafe fn containerSpecifier(&self) -> Option<Retained<NSScriptObjectSpecifier>>;
164
165        /// Setter for [`containerSpecifier`][Self::containerSpecifier].
166        #[unsafe(method(setContainerSpecifier:))]
167        #[unsafe(method_family = none)]
168        pub unsafe fn setContainerSpecifier(
169            &self,
170            container_specifier: Option<&NSScriptObjectSpecifier>,
171        );
172
173        #[unsafe(method(containerIsObjectBeingTested))]
174        #[unsafe(method_family = none)]
175        pub unsafe fn containerIsObjectBeingTested(&self) -> bool;
176
177        /// Setter for [`containerIsObjectBeingTested`][Self::containerIsObjectBeingTested].
178        #[unsafe(method(setContainerIsObjectBeingTested:))]
179        #[unsafe(method_family = none)]
180        pub unsafe fn setContainerIsObjectBeingTested(
181            &self,
182            container_is_object_being_tested: bool,
183        );
184
185        #[unsafe(method(containerIsRangeContainerObject))]
186        #[unsafe(method_family = none)]
187        pub unsafe fn containerIsRangeContainerObject(&self) -> bool;
188
189        /// Setter for [`containerIsRangeContainerObject`][Self::containerIsRangeContainerObject].
190        #[unsafe(method(setContainerIsRangeContainerObject:))]
191        #[unsafe(method_family = none)]
192        pub unsafe fn setContainerIsRangeContainerObject(
193            &self,
194            container_is_range_container_object: bool,
195        );
196
197        #[cfg(feature = "NSString")]
198        #[unsafe(method(key))]
199        #[unsafe(method_family = none)]
200        pub unsafe fn key(&self) -> Retained<NSString>;
201
202        #[cfg(feature = "NSString")]
203        /// Setter for [`key`][Self::key].
204        #[unsafe(method(setKey:))]
205        #[unsafe(method_family = none)]
206        pub unsafe fn setKey(&self, key: &NSString);
207
208        #[cfg(all(feature = "NSClassDescription", feature = "NSScriptClassDescription"))]
209        #[unsafe(method(containerClassDescription))]
210        #[unsafe(method_family = none)]
211        pub unsafe fn containerClassDescription(
212            &self,
213        ) -> Option<Retained<NSScriptClassDescription>>;
214
215        #[cfg(all(feature = "NSClassDescription", feature = "NSScriptClassDescription"))]
216        /// Setter for [`containerClassDescription`][Self::containerClassDescription].
217        #[unsafe(method(setContainerClassDescription:))]
218        #[unsafe(method_family = none)]
219        pub unsafe fn setContainerClassDescription(
220            &self,
221            container_class_description: Option<&NSScriptClassDescription>,
222        );
223
224        #[cfg(all(feature = "NSClassDescription", feature = "NSScriptClassDescription"))]
225        #[unsafe(method(keyClassDescription))]
226        #[unsafe(method_family = none)]
227        pub unsafe fn keyClassDescription(&self) -> Option<Retained<NSScriptClassDescription>>;
228
229        #[unsafe(method(indicesOfObjectsByEvaluatingWithContainer:count:))]
230        #[unsafe(method_family = none)]
231        pub unsafe fn indicesOfObjectsByEvaluatingWithContainer_count(
232            &self,
233            container: &AnyObject,
234            count: NonNull<NSInteger>,
235        ) -> *mut NSInteger;
236
237        #[unsafe(method(objectsByEvaluatingWithContainers:))]
238        #[unsafe(method_family = none)]
239        pub unsafe fn objectsByEvaluatingWithContainers(
240            &self,
241            containers: &AnyObject,
242        ) -> Option<Retained<AnyObject>>;
243
244        #[unsafe(method(objectsByEvaluatingSpecifier))]
245        #[unsafe(method_family = none)]
246        pub unsafe fn objectsByEvaluatingSpecifier(&self) -> Option<Retained<AnyObject>>;
247
248        #[unsafe(method(evaluationErrorNumber))]
249        #[unsafe(method_family = none)]
250        pub unsafe fn evaluationErrorNumber(&self) -> NSInteger;
251
252        /// Setter for [`evaluationErrorNumber`][Self::evaluationErrorNumber].
253        #[unsafe(method(setEvaluationErrorNumber:))]
254        #[unsafe(method_family = none)]
255        pub unsafe fn setEvaluationErrorNumber(&self, evaluation_error_number: NSInteger);
256
257        #[unsafe(method(evaluationErrorSpecifier))]
258        #[unsafe(method_family = none)]
259        pub unsafe fn evaluationErrorSpecifier(&self) -> Option<Retained<NSScriptObjectSpecifier>>;
260
261        #[cfg(feature = "NSAppleEventDescriptor")]
262        #[unsafe(method(descriptor))]
263        #[unsafe(method_family = none)]
264        pub unsafe fn descriptor(&self) -> Option<Retained<NSAppleEventDescriptor>>;
265    );
266}
267
268/// Methods declared on superclass `NSObject`.
269impl NSScriptObjectSpecifier {
270    extern_methods!(
271        #[unsafe(method(init))]
272        #[unsafe(method_family = init)]
273        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
274
275        #[unsafe(method(new))]
276        #[unsafe(method_family = new)]
277        pub unsafe fn new() -> Retained<Self>;
278    );
279}
280
281mod private_NSObjectNSScriptObjectSpecifiers {
282    pub trait Sealed {}
283}
284
285/// Category "NSScriptObjectSpecifiers" on [`NSObject`].
286#[doc(alias = "NSScriptObjectSpecifiers")]
287pub unsafe trait NSObjectNSScriptObjectSpecifiers:
288    ClassType + Sized + private_NSObjectNSScriptObjectSpecifiers::Sealed
289{
290    extern_methods!(
291        #[unsafe(method(objectSpecifier))]
292        #[unsafe(method_family = none)]
293        unsafe fn objectSpecifier(&self) -> Option<Retained<NSScriptObjectSpecifier>>;
294
295        #[cfg(all(feature = "NSArray", feature = "NSValue"))]
296        #[unsafe(method(indicesOfObjectsByEvaluatingObjectSpecifier:))]
297        #[unsafe(method_family = none)]
298        unsafe fn indicesOfObjectsByEvaluatingObjectSpecifier(
299            &self,
300            specifier: &NSScriptObjectSpecifier,
301        ) -> Option<Retained<NSArray<NSNumber>>>;
302    );
303}
304
305impl private_NSObjectNSScriptObjectSpecifiers::Sealed for NSObject {}
306unsafe impl NSObjectNSScriptObjectSpecifiers for NSObject {}
307
308extern_class!(
309    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsindexspecifier?language=objc)
310    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
311    #[derive(Debug, PartialEq, Eq, Hash)]
312    pub struct NSIndexSpecifier;
313);
314
315#[cfg(feature = "NSObject")]
316extern_conformance!(
317    unsafe impl NSCoding for NSIndexSpecifier {}
318);
319
320extern_conformance!(
321    unsafe impl NSObjectProtocol for NSIndexSpecifier {}
322);
323
324impl NSIndexSpecifier {
325    extern_methods!(
326        #[cfg(all(
327            feature = "NSClassDescription",
328            feature = "NSScriptClassDescription",
329            feature = "NSString"
330        ))]
331        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:index:))]
332        #[unsafe(method_family = init)]
333        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key_index(
334            this: Allocated<Self>,
335            class_desc: &NSScriptClassDescription,
336            container: Option<&NSScriptObjectSpecifier>,
337            property: &NSString,
338            index: NSInteger,
339        ) -> Retained<Self>;
340
341        #[unsafe(method(index))]
342        #[unsafe(method_family = none)]
343        pub unsafe fn index(&self) -> NSInteger;
344
345        /// Setter for [`index`][Self::index].
346        #[unsafe(method(setIndex:))]
347        #[unsafe(method_family = none)]
348        pub unsafe fn setIndex(&self, index: NSInteger);
349    );
350}
351
352/// Methods declared on superclass `NSScriptObjectSpecifier`.
353impl NSIndexSpecifier {
354    extern_methods!(
355        #[cfg(feature = "NSString")]
356        #[unsafe(method(initWithContainerSpecifier:key:))]
357        #[unsafe(method_family = init)]
358        pub unsafe fn initWithContainerSpecifier_key(
359            this: Allocated<Self>,
360            container: &NSScriptObjectSpecifier,
361            property: &NSString,
362        ) -> Retained<Self>;
363
364        #[cfg(all(
365            feature = "NSClassDescription",
366            feature = "NSScriptClassDescription",
367            feature = "NSString"
368        ))]
369        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
370        #[unsafe(method_family = init)]
371        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key(
372            this: Allocated<Self>,
373            class_desc: &NSScriptClassDescription,
374            container: Option<&NSScriptObjectSpecifier>,
375            property: &NSString,
376        ) -> Retained<Self>;
377
378        #[cfg(feature = "NSCoder")]
379        #[unsafe(method(initWithCoder:))]
380        #[unsafe(method_family = init)]
381        pub unsafe fn initWithCoder(
382            this: Allocated<Self>,
383            in_coder: &NSCoder,
384        ) -> Option<Retained<Self>>;
385    );
386}
387
388/// Methods declared on superclass `NSObject`.
389impl NSIndexSpecifier {
390    extern_methods!(
391        #[unsafe(method(init))]
392        #[unsafe(method_family = init)]
393        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
394
395        #[unsafe(method(new))]
396        #[unsafe(method_family = new)]
397        pub unsafe fn new() -> Retained<Self>;
398    );
399}
400
401extern_class!(
402    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsmiddlespecifier?language=objc)
403    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
404    #[derive(Debug, PartialEq, Eq, Hash)]
405    pub struct NSMiddleSpecifier;
406);
407
408#[cfg(feature = "NSObject")]
409extern_conformance!(
410    unsafe impl NSCoding for NSMiddleSpecifier {}
411);
412
413extern_conformance!(
414    unsafe impl NSObjectProtocol for NSMiddleSpecifier {}
415);
416
417impl NSMiddleSpecifier {
418    extern_methods!();
419}
420
421/// Methods declared on superclass `NSScriptObjectSpecifier`.
422impl NSMiddleSpecifier {
423    extern_methods!(
424        #[cfg(feature = "NSString")]
425        #[unsafe(method(initWithContainerSpecifier:key:))]
426        #[unsafe(method_family = init)]
427        pub unsafe fn initWithContainerSpecifier_key(
428            this: Allocated<Self>,
429            container: &NSScriptObjectSpecifier,
430            property: &NSString,
431        ) -> Retained<Self>;
432
433        #[cfg(all(
434            feature = "NSClassDescription",
435            feature = "NSScriptClassDescription",
436            feature = "NSString"
437        ))]
438        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
439        #[unsafe(method_family = init)]
440        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key(
441            this: Allocated<Self>,
442            class_desc: &NSScriptClassDescription,
443            container: Option<&NSScriptObjectSpecifier>,
444            property: &NSString,
445        ) -> Retained<Self>;
446
447        #[cfg(feature = "NSCoder")]
448        #[unsafe(method(initWithCoder:))]
449        #[unsafe(method_family = init)]
450        pub unsafe fn initWithCoder(
451            this: Allocated<Self>,
452            in_coder: &NSCoder,
453        ) -> Option<Retained<Self>>;
454    );
455}
456
457/// Methods declared on superclass `NSObject`.
458impl NSMiddleSpecifier {
459    extern_methods!(
460        #[unsafe(method(init))]
461        #[unsafe(method_family = init)]
462        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
463
464        #[unsafe(method(new))]
465        #[unsafe(method_family = new)]
466        pub unsafe fn new() -> Retained<Self>;
467    );
468}
469
470extern_class!(
471    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsnamespecifier?language=objc)
472    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
473    #[derive(Debug, PartialEq, Eq, Hash)]
474    pub struct NSNameSpecifier;
475);
476
477#[cfg(feature = "NSObject")]
478extern_conformance!(
479    unsafe impl NSCoding for NSNameSpecifier {}
480);
481
482extern_conformance!(
483    unsafe impl NSObjectProtocol for NSNameSpecifier {}
484);
485
486impl NSNameSpecifier {
487    extern_methods!(
488        #[cfg(feature = "NSCoder")]
489        #[unsafe(method(initWithCoder:))]
490        #[unsafe(method_family = init)]
491        pub unsafe fn initWithCoder(
492            this: Allocated<Self>,
493            in_coder: &NSCoder,
494        ) -> Option<Retained<Self>>;
495
496        #[cfg(all(
497            feature = "NSClassDescription",
498            feature = "NSScriptClassDescription",
499            feature = "NSString"
500        ))]
501        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:name:))]
502        #[unsafe(method_family = init)]
503        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key_name(
504            this: Allocated<Self>,
505            class_desc: &NSScriptClassDescription,
506            container: Option<&NSScriptObjectSpecifier>,
507            property: &NSString,
508            name: &NSString,
509        ) -> Retained<Self>;
510
511        #[cfg(feature = "NSString")]
512        #[unsafe(method(name))]
513        #[unsafe(method_family = none)]
514        pub unsafe fn name(&self) -> Retained<NSString>;
515
516        #[cfg(feature = "NSString")]
517        /// Setter for [`name`][Self::name].
518        #[unsafe(method(setName:))]
519        #[unsafe(method_family = none)]
520        pub unsafe fn setName(&self, name: &NSString);
521    );
522}
523
524/// Methods declared on superclass `NSScriptObjectSpecifier`.
525impl NSNameSpecifier {
526    extern_methods!(
527        #[cfg(feature = "NSString")]
528        #[unsafe(method(initWithContainerSpecifier:key:))]
529        #[unsafe(method_family = init)]
530        pub unsafe fn initWithContainerSpecifier_key(
531            this: Allocated<Self>,
532            container: &NSScriptObjectSpecifier,
533            property: &NSString,
534        ) -> Retained<Self>;
535
536        #[cfg(all(
537            feature = "NSClassDescription",
538            feature = "NSScriptClassDescription",
539            feature = "NSString"
540        ))]
541        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
542        #[unsafe(method_family = init)]
543        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key(
544            this: Allocated<Self>,
545            class_desc: &NSScriptClassDescription,
546            container: Option<&NSScriptObjectSpecifier>,
547            property: &NSString,
548        ) -> Retained<Self>;
549    );
550}
551
552/// Methods declared on superclass `NSObject`.
553impl NSNameSpecifier {
554    extern_methods!(
555        #[unsafe(method(init))]
556        #[unsafe(method_family = init)]
557        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
558
559        #[unsafe(method(new))]
560        #[unsafe(method_family = new)]
561        pub unsafe fn new() -> Retained<Self>;
562    );
563}
564
565extern_class!(
566    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nspositionalspecifier?language=objc)
567    #[unsafe(super(NSObject))]
568    #[derive(Debug, PartialEq, Eq, Hash)]
569    pub struct NSPositionalSpecifier;
570);
571
572extern_conformance!(
573    unsafe impl NSObjectProtocol for NSPositionalSpecifier {}
574);
575
576impl NSPositionalSpecifier {
577    extern_methods!(
578        #[unsafe(method(initWithPosition:objectSpecifier:))]
579        #[unsafe(method_family = init)]
580        pub unsafe fn initWithPosition_objectSpecifier(
581            this: Allocated<Self>,
582            position: NSInsertionPosition,
583            specifier: &NSScriptObjectSpecifier,
584        ) -> Retained<Self>;
585
586        #[unsafe(method(position))]
587        #[unsafe(method_family = none)]
588        pub unsafe fn position(&self) -> NSInsertionPosition;
589
590        #[unsafe(method(objectSpecifier))]
591        #[unsafe(method_family = none)]
592        pub unsafe fn objectSpecifier(&self) -> Retained<NSScriptObjectSpecifier>;
593
594        #[cfg(all(feature = "NSClassDescription", feature = "NSScriptClassDescription"))]
595        #[unsafe(method(setInsertionClassDescription:))]
596        #[unsafe(method_family = none)]
597        pub unsafe fn setInsertionClassDescription(
598            &self,
599            class_description: &NSScriptClassDescription,
600        );
601
602        #[unsafe(method(evaluate))]
603        #[unsafe(method_family = none)]
604        pub unsafe fn evaluate(&self);
605
606        #[unsafe(method(insertionContainer))]
607        #[unsafe(method_family = none)]
608        pub unsafe fn insertionContainer(&self) -> Option<Retained<AnyObject>>;
609
610        #[cfg(feature = "NSString")]
611        #[unsafe(method(insertionKey))]
612        #[unsafe(method_family = none)]
613        pub unsafe fn insertionKey(&self) -> Option<Retained<NSString>>;
614
615        #[unsafe(method(insertionIndex))]
616        #[unsafe(method_family = none)]
617        pub unsafe fn insertionIndex(&self) -> NSInteger;
618
619        #[unsafe(method(insertionReplaces))]
620        #[unsafe(method_family = none)]
621        pub unsafe fn insertionReplaces(&self) -> bool;
622    );
623}
624
625/// Methods declared on superclass `NSObject`.
626impl NSPositionalSpecifier {
627    extern_methods!(
628        #[unsafe(method(init))]
629        #[unsafe(method_family = init)]
630        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
631
632        #[unsafe(method(new))]
633        #[unsafe(method_family = new)]
634        pub unsafe fn new() -> Retained<Self>;
635    );
636}
637
638extern_class!(
639    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nspropertyspecifier?language=objc)
640    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
641    #[derive(Debug, PartialEq, Eq, Hash)]
642    pub struct NSPropertySpecifier;
643);
644
645#[cfg(feature = "NSObject")]
646extern_conformance!(
647    unsafe impl NSCoding for NSPropertySpecifier {}
648);
649
650extern_conformance!(
651    unsafe impl NSObjectProtocol for NSPropertySpecifier {}
652);
653
654impl NSPropertySpecifier {
655    extern_methods!();
656}
657
658/// Methods declared on superclass `NSScriptObjectSpecifier`.
659impl NSPropertySpecifier {
660    extern_methods!(
661        #[cfg(feature = "NSString")]
662        #[unsafe(method(initWithContainerSpecifier:key:))]
663        #[unsafe(method_family = init)]
664        pub unsafe fn initWithContainerSpecifier_key(
665            this: Allocated<Self>,
666            container: &NSScriptObjectSpecifier,
667            property: &NSString,
668        ) -> Retained<Self>;
669
670        #[cfg(all(
671            feature = "NSClassDescription",
672            feature = "NSScriptClassDescription",
673            feature = "NSString"
674        ))]
675        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
676        #[unsafe(method_family = init)]
677        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key(
678            this: Allocated<Self>,
679            class_desc: &NSScriptClassDescription,
680            container: Option<&NSScriptObjectSpecifier>,
681            property: &NSString,
682        ) -> Retained<Self>;
683
684        #[cfg(feature = "NSCoder")]
685        #[unsafe(method(initWithCoder:))]
686        #[unsafe(method_family = init)]
687        pub unsafe fn initWithCoder(
688            this: Allocated<Self>,
689            in_coder: &NSCoder,
690        ) -> Option<Retained<Self>>;
691    );
692}
693
694/// Methods declared on superclass `NSObject`.
695impl NSPropertySpecifier {
696    extern_methods!(
697        #[unsafe(method(init))]
698        #[unsafe(method_family = init)]
699        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
700
701        #[unsafe(method(new))]
702        #[unsafe(method_family = new)]
703        pub unsafe fn new() -> Retained<Self>;
704    );
705}
706
707extern_class!(
708    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsrandomspecifier?language=objc)
709    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
710    #[derive(Debug, PartialEq, Eq, Hash)]
711    pub struct NSRandomSpecifier;
712);
713
714#[cfg(feature = "NSObject")]
715extern_conformance!(
716    unsafe impl NSCoding for NSRandomSpecifier {}
717);
718
719extern_conformance!(
720    unsafe impl NSObjectProtocol for NSRandomSpecifier {}
721);
722
723impl NSRandomSpecifier {
724    extern_methods!();
725}
726
727/// Methods declared on superclass `NSScriptObjectSpecifier`.
728impl NSRandomSpecifier {
729    extern_methods!(
730        #[cfg(feature = "NSString")]
731        #[unsafe(method(initWithContainerSpecifier:key:))]
732        #[unsafe(method_family = init)]
733        pub unsafe fn initWithContainerSpecifier_key(
734            this: Allocated<Self>,
735            container: &NSScriptObjectSpecifier,
736            property: &NSString,
737        ) -> Retained<Self>;
738
739        #[cfg(all(
740            feature = "NSClassDescription",
741            feature = "NSScriptClassDescription",
742            feature = "NSString"
743        ))]
744        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
745        #[unsafe(method_family = init)]
746        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key(
747            this: Allocated<Self>,
748            class_desc: &NSScriptClassDescription,
749            container: Option<&NSScriptObjectSpecifier>,
750            property: &NSString,
751        ) -> Retained<Self>;
752
753        #[cfg(feature = "NSCoder")]
754        #[unsafe(method(initWithCoder:))]
755        #[unsafe(method_family = init)]
756        pub unsafe fn initWithCoder(
757            this: Allocated<Self>,
758            in_coder: &NSCoder,
759        ) -> Option<Retained<Self>>;
760    );
761}
762
763/// Methods declared on superclass `NSObject`.
764impl NSRandomSpecifier {
765    extern_methods!(
766        #[unsafe(method(init))]
767        #[unsafe(method_family = init)]
768        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
769
770        #[unsafe(method(new))]
771        #[unsafe(method_family = new)]
772        pub unsafe fn new() -> Retained<Self>;
773    );
774}
775
776extern_class!(
777    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsrangespecifier?language=objc)
778    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
779    #[derive(Debug, PartialEq, Eq, Hash)]
780    pub struct NSRangeSpecifier;
781);
782
783#[cfg(feature = "NSObject")]
784extern_conformance!(
785    unsafe impl NSCoding for NSRangeSpecifier {}
786);
787
788extern_conformance!(
789    unsafe impl NSObjectProtocol for NSRangeSpecifier {}
790);
791
792impl NSRangeSpecifier {
793    extern_methods!(
794        #[cfg(feature = "NSCoder")]
795        #[unsafe(method(initWithCoder:))]
796        #[unsafe(method_family = init)]
797        pub unsafe fn initWithCoder(
798            this: Allocated<Self>,
799            in_coder: &NSCoder,
800        ) -> Option<Retained<Self>>;
801
802        #[cfg(all(
803            feature = "NSClassDescription",
804            feature = "NSScriptClassDescription",
805            feature = "NSString"
806        ))]
807        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:startSpecifier:endSpecifier:))]
808        #[unsafe(method_family = init)]
809        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key_startSpecifier_endSpecifier(
810            this: Allocated<Self>,
811            class_desc: &NSScriptClassDescription,
812            container: Option<&NSScriptObjectSpecifier>,
813            property: &NSString,
814            start_spec: Option<&NSScriptObjectSpecifier>,
815            end_spec: Option<&NSScriptObjectSpecifier>,
816        ) -> Retained<Self>;
817
818        #[unsafe(method(startSpecifier))]
819        #[unsafe(method_family = none)]
820        pub unsafe fn startSpecifier(&self) -> Option<Retained<NSScriptObjectSpecifier>>;
821
822        /// Setter for [`startSpecifier`][Self::startSpecifier].
823        #[unsafe(method(setStartSpecifier:))]
824        #[unsafe(method_family = none)]
825        pub unsafe fn setStartSpecifier(&self, start_specifier: Option<&NSScriptObjectSpecifier>);
826
827        #[unsafe(method(endSpecifier))]
828        #[unsafe(method_family = none)]
829        pub unsafe fn endSpecifier(&self) -> Option<Retained<NSScriptObjectSpecifier>>;
830
831        /// Setter for [`endSpecifier`][Self::endSpecifier].
832        #[unsafe(method(setEndSpecifier:))]
833        #[unsafe(method_family = none)]
834        pub unsafe fn setEndSpecifier(&self, end_specifier: Option<&NSScriptObjectSpecifier>);
835    );
836}
837
838/// Methods declared on superclass `NSScriptObjectSpecifier`.
839impl NSRangeSpecifier {
840    extern_methods!(
841        #[cfg(feature = "NSString")]
842        #[unsafe(method(initWithContainerSpecifier:key:))]
843        #[unsafe(method_family = init)]
844        pub unsafe fn initWithContainerSpecifier_key(
845            this: Allocated<Self>,
846            container: &NSScriptObjectSpecifier,
847            property: &NSString,
848        ) -> Retained<Self>;
849
850        #[cfg(all(
851            feature = "NSClassDescription",
852            feature = "NSScriptClassDescription",
853            feature = "NSString"
854        ))]
855        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
856        #[unsafe(method_family = init)]
857        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key(
858            this: Allocated<Self>,
859            class_desc: &NSScriptClassDescription,
860            container: Option<&NSScriptObjectSpecifier>,
861            property: &NSString,
862        ) -> Retained<Self>;
863    );
864}
865
866/// Methods declared on superclass `NSObject`.
867impl NSRangeSpecifier {
868    extern_methods!(
869        #[unsafe(method(init))]
870        #[unsafe(method_family = init)]
871        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
872
873        #[unsafe(method(new))]
874        #[unsafe(method_family = new)]
875        pub unsafe fn new() -> Retained<Self>;
876    );
877}
878
879extern_class!(
880    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsrelativespecifier?language=objc)
881    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
882    #[derive(Debug, PartialEq, Eq, Hash)]
883    pub struct NSRelativeSpecifier;
884);
885
886#[cfg(feature = "NSObject")]
887extern_conformance!(
888    unsafe impl NSCoding for NSRelativeSpecifier {}
889);
890
891extern_conformance!(
892    unsafe impl NSObjectProtocol for NSRelativeSpecifier {}
893);
894
895impl NSRelativeSpecifier {
896    extern_methods!(
897        #[cfg(feature = "NSCoder")]
898        #[unsafe(method(initWithCoder:))]
899        #[unsafe(method_family = init)]
900        pub unsafe fn initWithCoder(
901            this: Allocated<Self>,
902            in_coder: &NSCoder,
903        ) -> Option<Retained<Self>>;
904
905        #[cfg(all(
906            feature = "NSClassDescription",
907            feature = "NSScriptClassDescription",
908            feature = "NSString"
909        ))]
910        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:relativePosition:baseSpecifier:))]
911        #[unsafe(method_family = init)]
912        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key_relativePosition_baseSpecifier(
913            this: Allocated<Self>,
914            class_desc: &NSScriptClassDescription,
915            container: Option<&NSScriptObjectSpecifier>,
916            property: &NSString,
917            rel_pos: NSRelativePosition,
918            base_specifier: Option<&NSScriptObjectSpecifier>,
919        ) -> Retained<Self>;
920
921        #[unsafe(method(relativePosition))]
922        #[unsafe(method_family = none)]
923        pub unsafe fn relativePosition(&self) -> NSRelativePosition;
924
925        /// Setter for [`relativePosition`][Self::relativePosition].
926        #[unsafe(method(setRelativePosition:))]
927        #[unsafe(method_family = none)]
928        pub unsafe fn setRelativePosition(&self, relative_position: NSRelativePosition);
929
930        #[unsafe(method(baseSpecifier))]
931        #[unsafe(method_family = none)]
932        pub unsafe fn baseSpecifier(&self) -> Option<Retained<NSScriptObjectSpecifier>>;
933
934        /// Setter for [`baseSpecifier`][Self::baseSpecifier].
935        #[unsafe(method(setBaseSpecifier:))]
936        #[unsafe(method_family = none)]
937        pub unsafe fn setBaseSpecifier(&self, base_specifier: Option<&NSScriptObjectSpecifier>);
938    );
939}
940
941/// Methods declared on superclass `NSScriptObjectSpecifier`.
942impl NSRelativeSpecifier {
943    extern_methods!(
944        #[cfg(feature = "NSString")]
945        #[unsafe(method(initWithContainerSpecifier:key:))]
946        #[unsafe(method_family = init)]
947        pub unsafe fn initWithContainerSpecifier_key(
948            this: Allocated<Self>,
949            container: &NSScriptObjectSpecifier,
950            property: &NSString,
951        ) -> Retained<Self>;
952
953        #[cfg(all(
954            feature = "NSClassDescription",
955            feature = "NSScriptClassDescription",
956            feature = "NSString"
957        ))]
958        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
959        #[unsafe(method_family = init)]
960        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key(
961            this: Allocated<Self>,
962            class_desc: &NSScriptClassDescription,
963            container: Option<&NSScriptObjectSpecifier>,
964            property: &NSString,
965        ) -> Retained<Self>;
966    );
967}
968
969/// Methods declared on superclass `NSObject`.
970impl NSRelativeSpecifier {
971    extern_methods!(
972        #[unsafe(method(init))]
973        #[unsafe(method_family = init)]
974        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
975
976        #[unsafe(method(new))]
977        #[unsafe(method_family = new)]
978        pub unsafe fn new() -> Retained<Self>;
979    );
980}
981
982extern_class!(
983    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsuniqueidspecifier?language=objc)
984    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
985    #[derive(Debug, PartialEq, Eq, Hash)]
986    pub struct NSUniqueIDSpecifier;
987);
988
989#[cfg(feature = "NSObject")]
990extern_conformance!(
991    unsafe impl NSCoding for NSUniqueIDSpecifier {}
992);
993
994extern_conformance!(
995    unsafe impl NSObjectProtocol for NSUniqueIDSpecifier {}
996);
997
998impl NSUniqueIDSpecifier {
999    extern_methods!(
1000        #[cfg(feature = "NSCoder")]
1001        #[unsafe(method(initWithCoder:))]
1002        #[unsafe(method_family = init)]
1003        pub unsafe fn initWithCoder(
1004            this: Allocated<Self>,
1005            in_coder: &NSCoder,
1006        ) -> Option<Retained<Self>>;
1007
1008        #[cfg(all(
1009            feature = "NSClassDescription",
1010            feature = "NSScriptClassDescription",
1011            feature = "NSString"
1012        ))]
1013        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:uniqueID:))]
1014        #[unsafe(method_family = init)]
1015        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key_uniqueID(
1016            this: Allocated<Self>,
1017            class_desc: &NSScriptClassDescription,
1018            container: Option<&NSScriptObjectSpecifier>,
1019            property: &NSString,
1020            unique_id: &AnyObject,
1021        ) -> Retained<Self>;
1022
1023        #[unsafe(method(uniqueID))]
1024        #[unsafe(method_family = none)]
1025        pub unsafe fn uniqueID(&self) -> Retained<AnyObject>;
1026
1027        /// Setter for [`uniqueID`][Self::uniqueID].
1028        #[unsafe(method(setUniqueID:))]
1029        #[unsafe(method_family = none)]
1030        pub unsafe fn setUniqueID(&self, unique_id: &AnyObject);
1031    );
1032}
1033
1034/// Methods declared on superclass `NSScriptObjectSpecifier`.
1035impl NSUniqueIDSpecifier {
1036    extern_methods!(
1037        #[cfg(feature = "NSString")]
1038        #[unsafe(method(initWithContainerSpecifier:key:))]
1039        #[unsafe(method_family = init)]
1040        pub unsafe fn initWithContainerSpecifier_key(
1041            this: Allocated<Self>,
1042            container: &NSScriptObjectSpecifier,
1043            property: &NSString,
1044        ) -> Retained<Self>;
1045
1046        #[cfg(all(
1047            feature = "NSClassDescription",
1048            feature = "NSScriptClassDescription",
1049            feature = "NSString"
1050        ))]
1051        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
1052        #[unsafe(method_family = init)]
1053        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key(
1054            this: Allocated<Self>,
1055            class_desc: &NSScriptClassDescription,
1056            container: Option<&NSScriptObjectSpecifier>,
1057            property: &NSString,
1058        ) -> Retained<Self>;
1059    );
1060}
1061
1062/// Methods declared on superclass `NSObject`.
1063impl NSUniqueIDSpecifier {
1064    extern_methods!(
1065        #[unsafe(method(init))]
1066        #[unsafe(method_family = init)]
1067        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
1068
1069        #[unsafe(method(new))]
1070        #[unsafe(method_family = new)]
1071        pub unsafe fn new() -> Retained<Self>;
1072    );
1073}
1074
1075extern_class!(
1076    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nswhosespecifier?language=objc)
1077    #[unsafe(super(NSScriptObjectSpecifier, NSObject))]
1078    #[derive(Debug, PartialEq, Eq, Hash)]
1079    pub struct NSWhoseSpecifier;
1080);
1081
1082#[cfg(feature = "NSObject")]
1083extern_conformance!(
1084    unsafe impl NSCoding for NSWhoseSpecifier {}
1085);
1086
1087extern_conformance!(
1088    unsafe impl NSObjectProtocol for NSWhoseSpecifier {}
1089);
1090
1091impl NSWhoseSpecifier {
1092    extern_methods!(
1093        #[cfg(feature = "NSCoder")]
1094        #[unsafe(method(initWithCoder:))]
1095        #[unsafe(method_family = init)]
1096        pub unsafe fn initWithCoder(
1097            this: Allocated<Self>,
1098            in_coder: &NSCoder,
1099        ) -> Option<Retained<Self>>;
1100
1101        #[cfg(all(
1102            feature = "NSClassDescription",
1103            feature = "NSScriptClassDescription",
1104            feature = "NSScriptWhoseTests",
1105            feature = "NSString"
1106        ))]
1107        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:test:))]
1108        #[unsafe(method_family = init)]
1109        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key_test(
1110            this: Allocated<Self>,
1111            class_desc: &NSScriptClassDescription,
1112            container: Option<&NSScriptObjectSpecifier>,
1113            property: &NSString,
1114            test: &NSScriptWhoseTest,
1115        ) -> Retained<Self>;
1116
1117        #[cfg(feature = "NSScriptWhoseTests")]
1118        #[unsafe(method(test))]
1119        #[unsafe(method_family = none)]
1120        pub unsafe fn test(&self) -> Retained<NSScriptWhoseTest>;
1121
1122        #[cfg(feature = "NSScriptWhoseTests")]
1123        /// Setter for [`test`][Self::test].
1124        #[unsafe(method(setTest:))]
1125        #[unsafe(method_family = none)]
1126        pub unsafe fn setTest(&self, test: &NSScriptWhoseTest);
1127
1128        #[unsafe(method(startSubelementIdentifier))]
1129        #[unsafe(method_family = none)]
1130        pub unsafe fn startSubelementIdentifier(&self) -> NSWhoseSubelementIdentifier;
1131
1132        /// Setter for [`startSubelementIdentifier`][Self::startSubelementIdentifier].
1133        #[unsafe(method(setStartSubelementIdentifier:))]
1134        #[unsafe(method_family = none)]
1135        pub unsafe fn setStartSubelementIdentifier(
1136            &self,
1137            start_subelement_identifier: NSWhoseSubelementIdentifier,
1138        );
1139
1140        #[unsafe(method(startSubelementIndex))]
1141        #[unsafe(method_family = none)]
1142        pub unsafe fn startSubelementIndex(&self) -> NSInteger;
1143
1144        /// Setter for [`startSubelementIndex`][Self::startSubelementIndex].
1145        #[unsafe(method(setStartSubelementIndex:))]
1146        #[unsafe(method_family = none)]
1147        pub unsafe fn setStartSubelementIndex(&self, start_subelement_index: NSInteger);
1148
1149        #[unsafe(method(endSubelementIdentifier))]
1150        #[unsafe(method_family = none)]
1151        pub unsafe fn endSubelementIdentifier(&self) -> NSWhoseSubelementIdentifier;
1152
1153        /// Setter for [`endSubelementIdentifier`][Self::endSubelementIdentifier].
1154        #[unsafe(method(setEndSubelementIdentifier:))]
1155        #[unsafe(method_family = none)]
1156        pub unsafe fn setEndSubelementIdentifier(
1157            &self,
1158            end_subelement_identifier: NSWhoseSubelementIdentifier,
1159        );
1160
1161        #[unsafe(method(endSubelementIndex))]
1162        #[unsafe(method_family = none)]
1163        pub unsafe fn endSubelementIndex(&self) -> NSInteger;
1164
1165        /// Setter for [`endSubelementIndex`][Self::endSubelementIndex].
1166        #[unsafe(method(setEndSubelementIndex:))]
1167        #[unsafe(method_family = none)]
1168        pub unsafe fn setEndSubelementIndex(&self, end_subelement_index: NSInteger);
1169    );
1170}
1171
1172/// Methods declared on superclass `NSScriptObjectSpecifier`.
1173impl NSWhoseSpecifier {
1174    extern_methods!(
1175        #[cfg(feature = "NSString")]
1176        #[unsafe(method(initWithContainerSpecifier:key:))]
1177        #[unsafe(method_family = init)]
1178        pub unsafe fn initWithContainerSpecifier_key(
1179            this: Allocated<Self>,
1180            container: &NSScriptObjectSpecifier,
1181            property: &NSString,
1182        ) -> Retained<Self>;
1183
1184        #[cfg(all(
1185            feature = "NSClassDescription",
1186            feature = "NSScriptClassDescription",
1187            feature = "NSString"
1188        ))]
1189        #[unsafe(method(initWithContainerClassDescription:containerSpecifier:key:))]
1190        #[unsafe(method_family = init)]
1191        pub unsafe fn initWithContainerClassDescription_containerSpecifier_key(
1192            this: Allocated<Self>,
1193            class_desc: &NSScriptClassDescription,
1194            container: Option<&NSScriptObjectSpecifier>,
1195            property: &NSString,
1196        ) -> Retained<Self>;
1197    );
1198}
1199
1200/// Methods declared on superclass `NSObject`.
1201impl NSWhoseSpecifier {
1202    extern_methods!(
1203        #[unsafe(method(init))]
1204        #[unsafe(method_family = init)]
1205        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
1206
1207        #[unsafe(method(new))]
1208        #[unsafe(method_family = new)]
1209        pub unsafe fn new() -> Retained<Self>;
1210    );
1211}