objc2_core_motion/generated/
CMAltimeter.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::*;
6use objc2_foundation::*;
7
8use crate::*;
9
10/// [Apple's documentation](https://developer.apple.com/documentation/coremotion/cmaltitudehandler?language=objc)
11#[cfg(all(feature = "CMAltitude", feature = "CMLogItem", feature = "block2"))]
12pub type CMAltitudeHandler = *mut block2::DynBlock<dyn Fn(*mut CMAltitudeData, *mut NSError)>;
13
14/// [Apple's documentation](https://developer.apple.com/documentation/coremotion/cmabsolutealtitudehandler?language=objc)
15#[cfg(all(
16    feature = "CMAbsoluteAltitude",
17    feature = "CMLogItem",
18    feature = "block2"
19))]
20pub type CMAbsoluteAltitudeHandler =
21    *mut block2::DynBlock<dyn Fn(*mut CMAbsoluteAltitudeData, *mut NSError)>;
22
23extern_class!(
24    /// [Apple's documentation](https://developer.apple.com/documentation/coremotion/cmaltimeter?language=objc)
25    #[unsafe(super(NSObject))]
26    #[derive(Debug, PartialEq, Eq, Hash)]
27    pub struct CMAltimeter;
28);
29
30extern_conformance!(
31    unsafe impl NSObjectProtocol for CMAltimeter {}
32);
33
34impl CMAltimeter {
35    extern_methods!(
36        #[unsafe(method(isRelativeAltitudeAvailable))]
37        #[unsafe(method_family = none)]
38        pub unsafe fn isRelativeAltitudeAvailable() -> bool;
39
40        #[cfg(feature = "CMAuthorization")]
41        #[unsafe(method(authorizationStatus))]
42        #[unsafe(method_family = none)]
43        pub unsafe fn authorizationStatus() -> CMAuthorizationStatus;
44
45        #[cfg(all(feature = "CMAltitude", feature = "CMLogItem", feature = "block2"))]
46        /// # Safety
47        ///
48        /// - `queue` possibly has additional threading requirements.
49        /// - `handler` must be a valid pointer.
50        #[unsafe(method(startRelativeAltitudeUpdatesToQueue:withHandler:))]
51        #[unsafe(method_family = none)]
52        pub unsafe fn startRelativeAltitudeUpdatesToQueue_withHandler(
53            &self,
54            queue: &NSOperationQueue,
55            handler: CMAltitudeHandler,
56        );
57
58        #[unsafe(method(stopRelativeAltitudeUpdates))]
59        #[unsafe(method_family = none)]
60        pub unsafe fn stopRelativeAltitudeUpdates(&self);
61
62        #[unsafe(method(isAbsoluteAltitudeAvailable))]
63        #[unsafe(method_family = none)]
64        pub unsafe fn isAbsoluteAltitudeAvailable() -> bool;
65
66        #[cfg(all(
67            feature = "CMAbsoluteAltitude",
68            feature = "CMLogItem",
69            feature = "block2"
70        ))]
71        /// # Safety
72        ///
73        /// - `queue` possibly has additional threading requirements.
74        /// - `handler` must be a valid pointer.
75        #[unsafe(method(startAbsoluteAltitudeUpdatesToQueue:withHandler:))]
76        #[unsafe(method_family = none)]
77        pub unsafe fn startAbsoluteAltitudeUpdatesToQueue_withHandler(
78            &self,
79            queue: &NSOperationQueue,
80            handler: CMAbsoluteAltitudeHandler,
81        );
82
83        #[unsafe(method(stopAbsoluteAltitudeUpdates))]
84        #[unsafe(method_family = none)]
85        pub unsafe fn stopAbsoluteAltitudeUpdates(&self);
86    );
87}
88
89/// Methods declared on superclass `NSObject`.
90impl CMAltimeter {
91    extern_methods!(
92        #[unsafe(method(init))]
93        #[unsafe(method_family = init)]
94        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
95
96        #[unsafe(method(new))]
97        #[unsafe(method_family = new)]
98        pub unsafe fn new() -> Retained<Self>;
99    );
100}