objc2_game_kit/generated/
GKChallenge.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#[cfg(feature = "objc2-app-kit")]
7#[cfg(target_os = "macos")]
8use objc2_app_kit::*;
9use objc2_foundation::*;
10
11use crate::*;
12
13/// [Apple's documentation](https://developer.apple.com/documentation/gamekit/gkchallengestate?language=objc)
14// NS_ENUM
15#[deprecated]
16#[repr(transparent)]
17#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
18pub struct GKChallengeState(pub NSInteger);
19impl GKChallengeState {
20    #[doc(alias = "GKChallengeStateInvalid")]
21    #[deprecated]
22    pub const Invalid: Self = Self(0);
23    #[doc(alias = "GKChallengeStatePending")]
24    #[deprecated]
25    pub const Pending: Self = Self(1);
26    #[doc(alias = "GKChallengeStateCompleted")]
27    #[deprecated]
28    pub const Completed: Self = Self(2);
29    #[doc(alias = "GKChallengeStateDeclined")]
30    #[deprecated]
31    pub const Declined: Self = Self(3);
32}
33
34unsafe impl Encode for GKChallengeState {
35    const ENCODING: Encoding = NSInteger::ENCODING;
36}
37
38unsafe impl RefEncode for GKChallengeState {
39    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
40}
41
42extern_class!(
43    /// [Apple's documentation](https://developer.apple.com/documentation/gamekit/gkchallenge?language=objc)
44    #[unsafe(super(NSObject))]
45    #[derive(Debug, PartialEq, Eq, Hash)]
46    #[deprecated]
47    pub struct GKChallenge;
48);
49
50extern_conformance!(
51    unsafe impl NSCoding for GKChallenge {}
52);
53
54extern_conformance!(
55    unsafe impl NSObjectProtocol for GKChallenge {}
56);
57
58extern_conformance!(
59    unsafe impl NSSecureCoding for GKChallenge {}
60);
61
62impl GKChallenge {
63    extern_methods!(
64        #[cfg(feature = "block2")]
65        /// Query challenges for the current game issued to the local player -- equivalent GKChallenge objects are not guaranteed to be pointer equivalent across calls, but equal GKChallenge objects will have equal hashes
66        #[deprecated]
67        #[unsafe(method(loadReceivedChallengesWithCompletionHandler:))]
68        #[unsafe(method_family = none)]
69        pub unsafe fn loadReceivedChallengesWithCompletionHandler(
70            completion_handler: Option<
71                &block2::DynBlock<dyn Fn(*mut NSArray<GKChallenge>, *mut NSError)>,
72            >,
73        );
74
75        /// Any GKChallenge object to be declined must be in a state of GKChallengeStatePending in order to be successfully cancelled
76        #[deprecated]
77        #[unsafe(method(decline))]
78        #[unsafe(method_family = none)]
79        pub unsafe fn decline(&self);
80
81        #[cfg(all(feature = "GKBasePlayer", feature = "GKPlayer"))]
82        /// The GKPlayer who issued the challenge
83        #[unsafe(method(issuingPlayer))]
84        #[unsafe(method_family = none)]
85        pub unsafe fn issuingPlayer(&self) -> Option<Retained<GKPlayer>>;
86
87        #[cfg(all(feature = "GKBasePlayer", feature = "GKPlayer"))]
88        /// The GKPlayer who has received the challenge
89        #[unsafe(method(receivingPlayer))]
90        #[unsafe(method_family = none)]
91        pub unsafe fn receivingPlayer(&self) -> Option<Retained<GKPlayer>>;
92
93        /// Current state of the challenge
94        #[deprecated]
95        #[unsafe(method(state))]
96        #[unsafe(method_family = none)]
97        pub unsafe fn state(&self) -> GKChallengeState;
98
99        /// Date the challenge was issued
100        #[deprecated]
101        #[unsafe(method(issueDate))]
102        #[unsafe(method_family = none)]
103        pub unsafe fn issueDate(&self) -> Retained<NSDate>;
104
105        /// Date the challenge was completed or aborted
106        #[deprecated]
107        #[unsafe(method(completionDate))]
108        #[unsafe(method_family = none)]
109        pub unsafe fn completionDate(&self) -> Option<Retained<NSDate>>;
110
111        /// The message sent to receivers of this challenge
112        #[deprecated]
113        #[unsafe(method(message))]
114        #[unsafe(method_family = none)]
115        pub unsafe fn message(&self) -> Option<Retained<NSString>>;
116    );
117}
118
119/// Methods declared on superclass `NSObject`.
120impl GKChallenge {
121    extern_methods!(
122        #[unsafe(method(init))]
123        #[unsafe(method_family = init)]
124        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
125
126        #[unsafe(method(new))]
127        #[unsafe(method_family = new)]
128        pub unsafe fn new() -> Retained<Self>;
129    );
130}
131
132/// Obsoleted.
133impl GKChallenge {
134    extern_methods!(
135        /// * This property is obsolete. **
136        #[deprecated]
137        #[unsafe(method(issuingPlayerID))]
138        #[unsafe(method_family = none)]
139        pub unsafe fn issuingPlayerID(&self) -> Option<Retained<NSString>>;
140
141        /// * This property is obsolete. **
142        #[deprecated]
143        #[unsafe(method(receivingPlayerID))]
144        #[unsafe(method_family = none)]
145        pub unsafe fn receivingPlayerID(&self) -> Option<Retained<NSString>>;
146    );
147}
148
149extern_class!(
150    /// [Apple's documentation](https://developer.apple.com/documentation/gamekit/gkscorechallenge?language=objc)
151    #[unsafe(super(GKChallenge, NSObject))]
152    #[derive(Debug, PartialEq, Eq, Hash)]
153    #[deprecated]
154    pub struct GKScoreChallenge;
155);
156
157extern_conformance!(
158    unsafe impl NSCoding for GKScoreChallenge {}
159);
160
161extern_conformance!(
162    unsafe impl NSObjectProtocol for GKScoreChallenge {}
163);
164
165extern_conformance!(
166    unsafe impl NSSecureCoding for GKScoreChallenge {}
167);
168
169impl GKScoreChallenge {
170    extern_methods!(
171        #[cfg(feature = "GKScore")]
172        /// The score to meet to satisfy this challenge
173        #[deprecated]
174        #[unsafe(method(score))]
175        #[unsafe(method_family = none)]
176        pub unsafe fn score(&self) -> Option<Retained<GKScore>>;
177
178        #[cfg(feature = "GKLeaderboardEntry")]
179        /// The leaderboard entry to meet to satisfy this challenge
180        #[unsafe(method(leaderboardEntry))]
181        #[unsafe(method_family = none)]
182        pub unsafe fn leaderboardEntry(&self) -> Option<Retained<GKLeaderboardEntry>>;
183    );
184}
185
186/// Methods declared on superclass `NSObject`.
187impl GKScoreChallenge {
188    extern_methods!(
189        #[unsafe(method(init))]
190        #[unsafe(method_family = init)]
191        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
192
193        #[unsafe(method(new))]
194        #[unsafe(method_family = new)]
195        pub unsafe fn new() -> Retained<Self>;
196    );
197}
198
199extern_class!(
200    /// [Apple's documentation](https://developer.apple.com/documentation/gamekit/gkachievementchallenge?language=objc)
201    #[unsafe(super(GKChallenge, NSObject))]
202    #[derive(Debug, PartialEq, Eq, Hash)]
203    #[deprecated]
204    pub struct GKAchievementChallenge;
205);
206
207extern_conformance!(
208    unsafe impl NSCoding for GKAchievementChallenge {}
209);
210
211extern_conformance!(
212    unsafe impl NSObjectProtocol for GKAchievementChallenge {}
213);
214
215extern_conformance!(
216    unsafe impl NSSecureCoding for GKAchievementChallenge {}
217);
218
219impl GKAchievementChallenge {
220    extern_methods!(
221        #[cfg(feature = "GKAchievement")]
222        /// The achievement to achieve to satisfy this challenge
223        #[deprecated]
224        #[unsafe(method(achievement))]
225        #[unsafe(method_family = none)]
226        pub unsafe fn achievement(&self) -> Option<Retained<GKAchievement>>;
227    );
228}
229
230/// Methods declared on superclass `NSObject`.
231impl GKAchievementChallenge {
232    extern_methods!(
233        #[unsafe(method(init))]
234        #[unsafe(method_family = init)]
235        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
236
237        #[unsafe(method(new))]
238        #[unsafe(method_family = new)]
239        pub unsafe fn new() -> Retained<Self>;
240    );
241}
242
243/// GKChallenge.
244///
245/// Use the following category methods to issue GKScoreChallenges and GKAchievementChallenges to an array of playerIDs. Players may not issue challenges to themselves nor to non-friends. Please see the GameKit reference documentation for further details on these methods.
246#[cfg(feature = "GKScore")]
247impl GKScore {
248    extern_methods!(
249        #[cfg(feature = "block2")]
250        /// Use this alternative to reportScores:withCompletionHandler: to allow only certain specific challenges to be completed. Pass nil to avoid completing any challenges.
251        #[deprecated]
252        #[unsafe(method(reportScores:withEligibleChallenges:withCompletionHandler:))]
253        #[unsafe(method_family = none)]
254        pub unsafe fn reportScores_withEligibleChallenges_withCompletionHandler(
255            scores: &NSArray<GKScore>,
256            challenges: &NSArray<GKChallenge>,
257            completion_handler: Option<&block2::DynBlock<dyn Fn(*mut NSError)>>,
258        );
259
260        #[cfg(all(feature = "GKLeaderboardScore", feature = "block2"))]
261        #[deprecated]
262        #[unsafe(method(reportLeaderboardScores:withEligibleChallenges:withCompletionHandler:))]
263        #[unsafe(method_family = none)]
264        pub unsafe fn reportLeaderboardScores_withEligibleChallenges_withCompletionHandler(
265            scores: &NSArray<GKLeaderboardScore>,
266            challenges: &NSArray<GKChallenge>,
267            completion_handler: Option<&block2::DynBlock<dyn Fn(*mut NSError)>>,
268        );
269    );
270}
271
272/// GKChallenge.
273#[cfg(feature = "GKAchievement")]
274impl GKAchievement {
275    extern_methods!(
276        #[cfg(all(feature = "GKBasePlayer", feature = "GKPlayer", feature = "block2"))]
277        /// Given a list of players, return a subset of that list containing only players that are eligible to receive a challenge for the achievement.
278        #[deprecated]
279        #[unsafe(method(selectChallengeablePlayers:withCompletionHandler:))]
280        #[unsafe(method_family = none)]
281        pub unsafe fn selectChallengeablePlayers_withCompletionHandler(
282            &self,
283            players: &NSArray<GKPlayer>,
284            completion_handler: Option<
285                &block2::DynBlock<dyn Fn(*mut NSArray<GKPlayer>, *mut NSError)>,
286            >,
287        );
288
289        #[cfg(feature = "block2")]
290        /// Use this alternative to reportAchievements:withCompletionHandler: to allow only certain specific challenges to be completed. Pass nil to avoid completing any challenges.
291        #[deprecated]
292        #[unsafe(method(reportAchievements:withEligibleChallenges:withCompletionHandler:))]
293        #[unsafe(method_family = none)]
294        pub unsafe fn reportAchievements_withEligibleChallenges_withCompletionHandler(
295            achievements: &NSArray<GKAchievement>,
296            challenges: &NSArray<GKChallenge>,
297            completion_handler: Option<&block2::DynBlock<dyn Fn(*mut NSError)>>,
298        );
299    );
300}
301
302/// GKChallengeObsoleted.
303#[cfg(feature = "GKScore")]
304impl GKScore {
305    extern_methods!(
306        /// * This method is obsolete. It will never be invoked and its implementation does nothing**
307        #[deprecated]
308        #[unsafe(method(issueChallengeToPlayers:message:))]
309        #[unsafe(method_family = none)]
310        pub unsafe fn issueChallengeToPlayers_message(
311            &self,
312            player_i_ds: Option<&NSArray<NSString>>,
313            message: Option<&NSString>,
314        );
315    );
316}
317
318/// GKChallengeObsoleted.
319#[cfg(feature = "GKAchievement")]
320impl GKAchievement {
321    extern_methods!(
322        /// * This method is obsolete. It will never be invoked and its implementation does nothing**
323        #[deprecated]
324        #[unsafe(method(issueChallengeToPlayers:message:))]
325        #[unsafe(method_family = none)]
326        pub unsafe fn issueChallengeToPlayers_message(
327            &self,
328            player_i_ds: Option<&NSArray<NSString>>,
329            message: Option<&NSString>,
330        );
331
332        #[cfg(feature = "block2")]
333        /// * This method is obsolete. It will never be invoked and its implementation does nothing**
334        #[deprecated = "This method is obsolete."]
335        #[unsafe(method(selectChallengeablePlayerIDs:withCompletionHandler:))]
336        #[unsafe(method_family = none)]
337        pub unsafe fn selectChallengeablePlayerIDs_withCompletionHandler(
338            &self,
339            player_i_ds: Option<&NSArray<NSString>>,
340            completion_handler: Option<
341                &block2::DynBlock<dyn Fn(*mut NSArray<NSString>, *mut NSError)>,
342            >,
343        );
344    );
345}
346
347/// [Apple's documentation](https://developer.apple.com/documentation/gamekit/gkchallengecomposecompletionblock?language=objc)
348#[deprecated]
349#[cfg(all(feature = "block2", feature = "objc2-app-kit"))]
350#[cfg(target_os = "macos")]
351pub type GKChallengeComposeCompletionBlock =
352    *mut block2::DynBlock<dyn Fn(NonNull<NSViewController>, Bool, *mut NSArray<NSString>)>;
353
354/// [Apple's documentation](https://developer.apple.com/documentation/gamekit/gkchallengecomposehandler?language=objc)
355#[deprecated]
356#[cfg(all(
357    feature = "GKBasePlayer",
358    feature = "GKPlayer",
359    feature = "block2",
360    feature = "objc2-app-kit"
361))]
362#[cfg(target_os = "macos")]
363pub type GKChallengeComposeHandler =
364    *mut block2::DynBlock<dyn Fn(NonNull<NSViewController>, Bool, *mut NSArray<GKPlayer>)>;
365
366/// GKChallengeUI.
367#[cfg(feature = "GKScore")]
368impl GKScore {
369    extern_methods!(
370        #[cfg(all(
371            feature = "GKBasePlayer",
372            feature = "GKPlayer",
373            feature = "block2",
374            feature = "objc2-app-kit"
375        ))]
376        #[cfg(target_os = "macos")]
377        /// # Safety
378        ///
379        /// `completion_handler` must be a valid pointer or null.
380        #[deprecated]
381        #[unsafe(method(challengeComposeControllerWithMessage:players:completionHandler:))]
382        #[unsafe(method_family = none)]
383        pub unsafe fn challengeComposeControllerWithMessage_players_completionHandler(
384            &self,
385            message: Option<&NSString>,
386            players: Option<&NSArray<GKPlayer>>,
387            completion_handler: GKChallengeComposeCompletionBlock,
388            mtm: MainThreadMarker,
389        ) -> Retained<NSViewController>;
390
391        #[cfg(all(
392            feature = "GKBasePlayer",
393            feature = "GKPlayer",
394            feature = "block2",
395            feature = "objc2-app-kit"
396        ))]
397        #[cfg(target_os = "macos")]
398        /// # Safety
399        ///
400        /// `completion_handler` must be a valid pointer or null.
401        #[deprecated]
402        #[unsafe(method(challengeComposeControllerWithMessage:players:completion:))]
403        #[unsafe(method_family = none)]
404        pub unsafe fn challengeComposeControllerWithMessage_players_completion(
405            &self,
406            message: Option<&NSString>,
407            players: Option<&NSArray<GKPlayer>>,
408            completion_handler: GKChallengeComposeHandler,
409            mtm: MainThreadMarker,
410        ) -> Retained<NSViewController>;
411    );
412}
413
414/// GKChallengeUI.
415#[cfg(feature = "GKLeaderboardEntry")]
416impl GKLeaderboardEntry {
417    extern_methods!(
418        #[cfg(all(
419            feature = "GKBasePlayer",
420            feature = "GKPlayer",
421            feature = "block2",
422            feature = "objc2-app-kit"
423        ))]
424        #[cfg(target_os = "macos")]
425        /// # Safety
426        ///
427        /// `completion_handler` must be a valid pointer or null.
428        #[deprecated]
429        #[unsafe(method(challengeComposeControllerWithMessage:players:completionHandler:))]
430        #[unsafe(method_family = none)]
431        pub unsafe fn challengeComposeControllerWithMessage_players_completionHandler(
432            &self,
433            message: Option<&NSString>,
434            players: Option<&NSArray<GKPlayer>>,
435            completion_handler: GKChallengeComposeCompletionBlock,
436            mtm: MainThreadMarker,
437        ) -> Retained<NSViewController>;
438
439        #[cfg(all(
440            feature = "GKBasePlayer",
441            feature = "GKPlayer",
442            feature = "block2",
443            feature = "objc2-app-kit"
444        ))]
445        #[cfg(target_os = "macos")]
446        /// # Safety
447        ///
448        /// `completion_handler` must be a valid pointer or null.
449        #[deprecated]
450        #[unsafe(method(challengeComposeControllerWithMessage:players:completion:))]
451        #[unsafe(method_family = none)]
452        pub unsafe fn challengeComposeControllerWithMessage_players_completion(
453            &self,
454            message: Option<&NSString>,
455            players: Option<&NSArray<GKPlayer>>,
456            completion_handler: GKChallengeComposeHandler,
457            mtm: MainThreadMarker,
458        ) -> Retained<NSViewController>;
459    );
460}
461
462/// GKChallengeUI.
463#[cfg(feature = "GKAchievement")]
464impl GKAchievement {
465    extern_methods!(
466        #[cfg(all(
467            feature = "GKBasePlayer",
468            feature = "GKPlayer",
469            feature = "block2",
470            feature = "objc2-app-kit"
471        ))]
472        #[cfg(target_os = "macos")]
473        /// # Safety
474        ///
475        /// `completion_handler` must be a valid pointer or null.
476        #[deprecated]
477        #[unsafe(method(challengeComposeControllerWithMessage:players:completionHandler:))]
478        #[unsafe(method_family = none)]
479        pub unsafe fn challengeComposeControllerWithMessage_players_completionHandler(
480            &self,
481            message: Option<&NSString>,
482            players: &NSArray<GKPlayer>,
483            completion_handler: GKChallengeComposeCompletionBlock,
484            mtm: MainThreadMarker,
485        ) -> Retained<NSViewController>;
486
487        #[cfg(all(
488            feature = "GKBasePlayer",
489            feature = "GKPlayer",
490            feature = "block2",
491            feature = "objc2-app-kit"
492        ))]
493        #[cfg(target_os = "macos")]
494        /// # Safety
495        ///
496        /// `completion_handler` must be a valid pointer or null.
497        #[deprecated]
498        #[unsafe(method(challengeComposeControllerWithMessage:players:completion:))]
499        #[unsafe(method_family = none)]
500        pub unsafe fn challengeComposeControllerWithMessage_players_completion(
501            &self,
502            message: Option<&NSString>,
503            players: &NSArray<GKPlayer>,
504            completion_handler: GKChallengeComposeHandler,
505            mtm: MainThreadMarker,
506        ) -> Retained<NSViewController>;
507    );
508}
509
510/// GKChallengeObsoletedUI.
511#[cfg(feature = "GKScore")]
512impl GKScore {
513    extern_methods!(
514        #[cfg(all(feature = "block2", feature = "objc2-app-kit"))]
515        #[cfg(target_os = "macos")]
516        /// * This method is obsolete. Calling this method does nothing and will return nil **
517        ///
518        /// # Safety
519        ///
520        /// `completion_handler` must be a valid pointer or null.
521        #[unsafe(method(challengeComposeControllerWithPlayers:message:completionHandler:))]
522        #[unsafe(method_family = none)]
523        pub unsafe fn challengeComposeControllerWithPlayers_message_completionHandler(
524            &self,
525            player_i_ds: Option<&NSArray<NSString>>,
526            message: Option<&NSString>,
527            completion_handler: GKChallengeComposeCompletionBlock,
528            mtm: MainThreadMarker,
529        ) -> Option<Retained<NSViewController>>;
530    );
531}
532
533/// GKChallengeObsoletedUI.
534#[cfg(feature = "GKAchievement")]
535impl GKAchievement {
536    extern_methods!(
537        #[cfg(all(feature = "block2", feature = "objc2-app-kit"))]
538        #[cfg(target_os = "macos")]
539        /// * This method is obsolete. Calling this method does nothing and will return nil **
540        ///
541        /// # Safety
542        ///
543        /// `completion_handler` must be a valid pointer or null.
544        #[unsafe(method(challengeComposeControllerWithPlayers:message:completionHandler:))]
545        #[unsafe(method_family = none)]
546        pub unsafe fn challengeComposeControllerWithPlayers_message_completionHandler(
547            &self,
548            player_i_ds: Option<&NSArray<NSString>>,
549            message: Option<&NSString>,
550            completion_handler: GKChallengeComposeCompletionBlock,
551            mtm: MainThreadMarker,
552        ) -> Option<Retained<NSViewController>>;
553    );
554}