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 fn initWithIdentifier(this: Allocated<Self>, identifier: &NSString) -> Retained<Self>;
51
52        #[cfg(feature = "NSString")]
53        #[unsafe(method(identifier))]
54        #[unsafe(method_family = none)]
55        pub fn identifier(&self) -> Retained<NSString>;
56
57        #[cfg(feature = "NSObjCRuntime")]
58        #[unsafe(method(qualityOfService))]
59        #[unsafe(method_family = none)]
60        pub fn qualityOfService(&self) -> NSQualityOfService;
61
62        #[cfg(feature = "NSObjCRuntime")]
63        /// Setter for [`qualityOfService`][Self::qualityOfService].
64        #[unsafe(method(setQualityOfService:))]
65        #[unsafe(method_family = none)]
66        pub fn setQualityOfService(&self, quality_of_service: NSQualityOfService);
67
68        #[unsafe(method(repeats))]
69        #[unsafe(method_family = none)]
70        pub fn repeats(&self) -> bool;
71
72        /// Setter for [`repeats`][Self::repeats].
73        #[unsafe(method(setRepeats:))]
74        #[unsafe(method_family = none)]
75        pub fn setRepeats(&self, repeats: bool);
76
77        #[cfg(feature = "NSDate")]
78        #[unsafe(method(interval))]
79        #[unsafe(method_family = none)]
80        pub fn interval(&self) -> NSTimeInterval;
81
82        #[cfg(feature = "NSDate")]
83        /// Setter for [`interval`][Self::interval].
84        #[unsafe(method(setInterval:))]
85        #[unsafe(method_family = none)]
86        pub fn setInterval(&self, interval: NSTimeInterval);
87
88        #[cfg(feature = "NSDate")]
89        #[unsafe(method(tolerance))]
90        #[unsafe(method_family = none)]
91        pub fn tolerance(&self) -> NSTimeInterval;
92
93        #[cfg(feature = "NSDate")]
94        /// Setter for [`tolerance`][Self::tolerance].
95        #[unsafe(method(setTolerance:))]
96        #[unsafe(method_family = none)]
97        pub fn setTolerance(&self, tolerance: NSTimeInterval);
98
99        #[cfg(feature = "block2")]
100        /// # Safety
101        ///
102        /// `block` block must be sendable.
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 fn invalidate(&self);
113
114        #[unsafe(method(shouldDefer))]
115        #[unsafe(method_family = none)]
116        pub 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 fn init(this: Allocated<Self>) -> Retained<Self>;
126
127        #[unsafe(method(new))]
128        #[unsafe(method_family = new)]
129        pub fn new() -> Retained<Self>;
130    );
131}
132
133impl DefaultRetained for NSBackgroundActivityScheduler {
134    #[inline]
135    fn default_retained() -> Retained<Self> {
136        Self::new()
137    }
138}