#![allow(unused_imports)]
#![allow(deprecated)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#![allow(missing_docs)]
#![allow(clippy::too_many_arguments)]
#![allow(clippy::type_complexity)]
#![allow(clippy::upper_case_acronyms)]
#![allow(clippy::identity_op)]
#![allow(clippy::missing_safety_doc)]
#![allow(clippy::doc_lazy_continuation)]
#![allow(rustdoc::broken_intra_doc_links)]
#![allow(rustdoc::bare_urls)]
#![allow(rustdoc::invalid_html_tags)]
#[link(name = "AppTrackingTransparency", kind = "framework")]
extern "C" {}
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct ATTrackingManagerAuthorizationStatus(pub NSUInteger);
impl ATTrackingManagerAuthorizationStatus {
#[doc(alias = "ATTrackingManagerAuthorizationStatusNotDetermined")]
pub const NotDetermined: Self = Self(0);
#[doc(alias = "ATTrackingManagerAuthorizationStatusRestricted")]
pub const Restricted: Self = Self(1);
#[doc(alias = "ATTrackingManagerAuthorizationStatusDenied")]
pub const Denied: Self = Self(2);
#[doc(alias = "ATTrackingManagerAuthorizationStatusAuthorized")]
pub const Authorized: Self = Self(3);
}
unsafe impl Encode for ATTrackingManagerAuthorizationStatus {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for ATTrackingManagerAuthorizationStatus {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct ATTrackingManager;
);
extern_conformance!(
unsafe impl NSObjectProtocol for ATTrackingManager {}
);
impl ATTrackingManager {
extern_methods!(
#[unsafe(method(trackingAuthorizationStatus))]
#[unsafe(method_family = none)]
pub unsafe fn trackingAuthorizationStatus() -> ATTrackingManagerAuthorizationStatus;
#[cfg(feature = "block2")]
#[unsafe(method(requestTrackingAuthorizationWithCompletionHandler:))]
#[unsafe(method_family = none)]
pub unsafe fn requestTrackingAuthorizationWithCompletionHandler(
completion: &block2::DynBlock<dyn Fn(ATTrackingManagerAuthorizationStatus)>,
);
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
);
}
extern "C" {
pub static AppTrackingTransparencyVersionNumber: c_double;
}
extern "C" {
pub static AppTrackingTransparencyVersionString: *mut c_uchar;
}