objc2_foundation/generated/
NSBackgroundActivityScheduler.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/nsbackgroundactivityresult?language=objc)
10// NS_ENUM
11#[repr(transparent)]
12#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
13pub struct NSBackgroundActivityResult(pub NSInteger);
14impl NSBackgroundActivityResult {
15    #[doc(alias = "NSBackgroundActivityResultFinished")]
16    pub const Finished: Self = Self(1);
17    #[doc(alias = "NSBackgroundActivityResultDeferred")]
18    pub const Deferred: Self = Self(2);
19}
20
21unsafe impl Encode for NSBackgroundActivityResult {
22    const ENCODING: Encoding = NSInteger::ENCODING;
23}
24
25unsafe impl RefEncode for NSBackgroundActivityResult {
26    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
27}
28
29/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsbackgroundactivitycompletionhandler?language=objc)
30#[cfg(feature = "block2")]
31pub type NSBackgroundActivityCompletionHandler =
32    *mut block2::DynBlock<dyn Fn(NSBackgroundActivityResult)>;
33
34extern_class!(
35    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsbackgroundactivityscheduler?language=objc)
36    #[unsafe(super(NSObject))]
37    #[derive(Debug, PartialEq, Eq, Hash)]
38    pub struct NSBackgroundActivityScheduler;
39);
40
41extern_conformance!(
42    unsafe impl NSObjectProtocol for NSBackgroundActivityScheduler {}
43);
44
45impl NSBackgroundActivityScheduler {
46    extern_methods!(
47        #[cfg(feature = "NSString")]
48        #[unsafe(method(initWithIdentifier:))]
49        #[unsafe(method_family = init)]
50        pub unsafe fn initWithIdentifier(
51            this: Allocated<Self>,
52            identifier: &NSString,
53        ) -> Retained<Self>;
54
55        #[cfg(feature = "NSString")]
56        #[unsafe(method(identifier))]
57        #[unsafe(method_family = none)]
58        pub unsafe fn identifier(&self) -> Retained<NSString>;
59
60        #[cfg(feature = "NSObjCRuntime")]
61        #[unsafe(method(qualityOfService))]
62        #[unsafe(method_family = none)]
63        pub unsafe fn qualityOfService(&self) -> NSQualityOfService;
64
65        #[cfg(feature = "NSObjCRuntime")]
66        /// Setter for [`qualityOfService`][Self::qualityOfService].
67        #[unsafe(method(setQualityOfService:))]
68        #[unsafe(method_family = none)]
69        pub unsafe fn setQualityOfService(&self, quality_of_service: NSQualityOfService);
70
71        #[unsafe(method(repeats))]
72        #[unsafe(method_family = none)]
73        pub unsafe fn repeats(&self) -> bool;
74
75        /// Setter for [`repeats`][Self::repeats].
76        #[unsafe(method(setRepeats:))]
77        #[unsafe(method_family = none)]
78        pub unsafe fn setRepeats(&self, repeats: bool);
79
80        #[cfg(feature = "NSDate")]
81        #[unsafe(method(interval))]
82        #[unsafe(method_family = none)]
83        pub unsafe fn interval(&self) -> NSTimeInterval;
84
85        #[cfg(feature = "NSDate")]
86        /// Setter for [`interval`][Self::interval].
87        #[unsafe(method(setInterval:))]
88        #[unsafe(method_family = none)]
89        pub unsafe fn setInterval(&self, interval: NSTimeInterval);
90
91        #[cfg(feature = "NSDate")]
92        #[unsafe(method(tolerance))]
93        #[unsafe(method_family = none)]
94        pub unsafe fn tolerance(&self) -> NSTimeInterval;
95
96        #[cfg(feature = "NSDate")]
97        /// Setter for [`tolerance`][Self::tolerance].
98        #[unsafe(method(setTolerance:))]
99        #[unsafe(method_family = none)]
100        pub unsafe fn setTolerance(&self, tolerance: NSTimeInterval);
101
102        #[cfg(feature = "block2")]
103        #[unsafe(method(scheduleWithBlock:))]
104        #[unsafe(method_family = none)]
105        pub unsafe fn scheduleWithBlock(
106            &self,
107            block: &block2::DynBlock<dyn Fn(NSBackgroundActivityCompletionHandler)>,
108        );
109
110        #[unsafe(method(invalidate))]
111        #[unsafe(method_family = none)]
112        pub unsafe fn invalidate(&self);
113
114        #[unsafe(method(shouldDefer))]
115        #[unsafe(method_family = none)]
116        pub unsafe fn shouldDefer(&self) -> bool;
117    );
118}
119
120/// Methods declared on superclass `NSObject`.
121impl NSBackgroundActivityScheduler {
122    extern_methods!(
123        #[unsafe(method(init))]
124        #[unsafe(method_family = init)]
125        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
126
127        #[unsafe(method(new))]
128        #[unsafe(method_family = new)]
129        pub unsafe fn new() -> Retained<Self>;
130    );
131}