objc2-accessibility 0.3.2

Bindings to the Accessibility framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

/// [Apple's documentation](https://developer.apple.com/documentation/accessibility/axhearingdeviceear?language=objc)
// NS_OPTIONS
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct AXHearingDeviceEar(pub NSUInteger);
bitflags::bitflags! {
    impl AXHearingDeviceEar: NSUInteger {
        #[doc(alias = "AXHearingDeviceEarNone")]
        const None = 0;
        #[doc(alias = "AXHearingDeviceEarLeft")]
        const Left = 1<<1;
        #[doc(alias = "AXHearingDeviceEarRight")]
        const Right = 1<<2;
        #[doc(alias = "AXHearingDeviceEarBoth")]
        const Both = AXHearingDeviceEar::Left.0|AXHearingDeviceEar::Right.0;
    }
}

unsafe impl Encode for AXHearingDeviceEar {
    const ENCODING: Encoding = NSUInteger::ENCODING;
}

unsafe impl RefEncode for AXHearingDeviceEar {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

extern "C-unwind" {
    pub fn AXMFiHearingDeviceStreamingEar() -> AXHearingDeviceEar;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/accessibility/axmfihearingdevicestreamingeardidchangenotification?language=objc)
    pub static AXMFiHearingDeviceStreamingEarDidChangeNotification: &'static NSNotificationName;
}

#[inline]
pub unsafe extern "C-unwind" fn AXSupportsBidirectionalAXMFiHearingDeviceStreaming() -> bool {
    extern "C-unwind" {
        fn AXSupportsBidirectionalAXMFiHearingDeviceStreaming() -> Bool;
    }
    unsafe { AXSupportsBidirectionalAXMFiHearingDeviceStreaming() }.as_bool()
}

#[inline]
pub unsafe extern "C-unwind" fn AXMFiHearingDevicePairedUUIDs() -> Retained<NSArray<NSUUID>> {
    extern "C-unwind" {
        fn AXMFiHearingDevicePairedUUIDs() -> *mut NSArray<NSUUID>;
    }
    let ret = unsafe { AXMFiHearingDevicePairedUUIDs() };
    unsafe { Retained::retain_autoreleased(ret) }
        .expect("function was marked as returning non-null, but actually returned NULL")
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/accessibility/axmfihearingdevicepaireduuidsdidchangenotification?language=objc)
    pub static AXMFiHearingDevicePairedUUIDsDidChangeNotification: &'static NSNotificationName;
}