objc2-external-accessory 0.3.2

Bindings to the ExternalAccessory 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::*;

/// EAWiFiUnconfiguredAccessoryProperties
///
///
/// Represents the properties of an EAWiFiUnconfiguredAccessory.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/externalaccessory/eawifiunconfiguredaccessoryproperties?language=objc)
// NS_OPTIONS
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct EAWiFiUnconfiguredAccessoryProperties(pub NSUInteger);
bitflags::bitflags! {
    impl EAWiFiUnconfiguredAccessoryProperties: NSUInteger {
        #[doc(alias = "EAWiFiUnconfiguredAccessoryPropertySupportsAirPlay")]
        const SupportsAirPlay = 1<<0;
        #[doc(alias = "EAWiFiUnconfiguredAccessoryPropertySupportsAirPrint")]
        const SupportsAirPrint = 1<<1;
        #[doc(alias = "EAWiFiUnconfiguredAccessoryPropertySupportsHomeKit")]
        const SupportsHomeKit = 1<<2;
    }
}

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

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

extern_class!(
    /// Object representing an unconfigured MFi Wireless Accessory Configuration (WAC) accessory.
    ///
    ///
    /// This class models an unconfigured MFi Wireless Accessory Configuration accessory
    /// discovered via a EAWiFiUnconfiguredAccessoryBrowser search.
    ///
    /// See also [Apple's documentation](https://developer.apple.com/documentation/externalaccessory/eawifiunconfiguredaccessory?language=objc)
    #[unsafe(super(NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct EAWiFiUnconfiguredAccessory;
);

extern_conformance!(
    unsafe impl NSObjectProtocol for EAWiFiUnconfiguredAccessory {}
);

impl EAWiFiUnconfiguredAccessory {
    extern_methods!(
        /// The name of the accessory.
        #[unsafe(method(name))]
        #[unsafe(method_family = none)]
        pub unsafe fn name(&self) -> Retained<NSString>;

        /// The name of the accessory's manufacturer.
        #[unsafe(method(manufacturer))]
        #[unsafe(method_family = none)]
        pub unsafe fn manufacturer(&self) -> Retained<NSString>;

        /// The model name of accessory.
        #[unsafe(method(model))]
        #[unsafe(method_family = none)]
        pub unsafe fn model(&self) -> Retained<NSString>;

        /// The Wi-Fi SSID of the accessory.
        #[unsafe(method(ssid))]
        #[unsafe(method_family = none)]
        pub unsafe fn ssid(&self) -> Retained<NSString>;

        /// The primary MAC address of the accessory.
        #[unsafe(method(macAddress))]
        #[unsafe(method_family = none)]
        pub unsafe fn macAddress(&self) -> Retained<NSString>;

        /// The properties the accessory supports.
        #[unsafe(method(properties))]
        #[unsafe(method_family = none)]
        pub unsafe fn properties(&self) -> EAWiFiUnconfiguredAccessoryProperties;
    );
}

/// Methods declared on superclass `NSObject`.
impl EAWiFiUnconfiguredAccessory {
    extern_methods!(
        #[unsafe(method(init))]
        #[unsafe(method_family = init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[unsafe(method(new))]
        #[unsafe(method_family = new)]
        pub unsafe fn new() -> Retained<Self>;
    );
}