objc2-foundation 0.3.0

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

use crate::*;

/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsappleeventsendoptions?language=objc)
// NS_OPTIONS
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSAppleEventSendOptions(pub NSUInteger);
bitflags::bitflags! {
    impl NSAppleEventSendOptions: NSUInteger {
        #[doc(alias = "NSAppleEventSendNoReply")]
        const NoReply = 1;
        #[doc(alias = "NSAppleEventSendQueueReply")]
        const QueueReply = 2;
        #[doc(alias = "NSAppleEventSendWaitForReply")]
        const WaitForReply = 3;
        #[doc(alias = "NSAppleEventSendNeverInteract")]
        const NeverInteract = 16;
        #[doc(alias = "NSAppleEventSendCanInteract")]
        const CanInteract = 32;
        #[doc(alias = "NSAppleEventSendAlwaysInteract")]
        const AlwaysInteract = 48;
        #[doc(alias = "NSAppleEventSendCanSwitchLayer")]
        const CanSwitchLayer = 64;
        #[doc(alias = "NSAppleEventSendDontRecord")]
        const DontRecord = 4096;
        #[doc(alias = "NSAppleEventSendDontExecute")]
        const DontExecute = 8192;
        #[doc(alias = "NSAppleEventSendDontAnnotate")]
        const DontAnnotate = 65536;
        #[doc(alias = "NSAppleEventSendDefaultOptions")]
        const DefaultOptions = 35;
    }
}

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

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

extern_class!(
    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsappleeventdescriptor?language=objc)
    #[unsafe(super(NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct NSAppleEventDescriptor;
);

#[cfg(feature = "NSObject")]
unsafe impl NSCoding for NSAppleEventDescriptor {}

#[cfg(feature = "NSObject")]
unsafe impl NSCopying for NSAppleEventDescriptor {}

#[cfg(feature = "NSObject")]
unsafe impl CopyingHelper for NSAppleEventDescriptor {
    type Result = Self;
}

unsafe impl NSObjectProtocol for NSAppleEventDescriptor {}

#[cfg(feature = "NSObject")]
unsafe impl NSSecureCoding for NSAppleEventDescriptor {}

impl NSAppleEventDescriptor {
    extern_methods!(
        #[unsafe(method(nullDescriptor))]
        #[unsafe(method_family = none)]
        pub unsafe fn nullDescriptor() -> Retained<NSAppleEventDescriptor>;

        #[unsafe(method(descriptorWithBoolean:))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptorWithBoolean(boolean: Boolean) -> Retained<NSAppleEventDescriptor>;

        #[unsafe(method(descriptorWithEnumCode:))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptorWithEnumCode(
            enumerator: OSType,
        ) -> Retained<NSAppleEventDescriptor>;

        #[unsafe(method(descriptorWithInt32:))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptorWithInt32(signed_int: i32) -> Retained<NSAppleEventDescriptor>;

        #[unsafe(method(descriptorWithDouble:))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptorWithDouble(
            double_value: c_double,
        ) -> Retained<NSAppleEventDescriptor>;

        #[unsafe(method(descriptorWithTypeCode:))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptorWithTypeCode(type_code: OSType)
            -> Retained<NSAppleEventDescriptor>;

        #[cfg(feature = "NSString")]
        #[unsafe(method(descriptorWithString:))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptorWithString(string: &NSString) -> Retained<NSAppleEventDescriptor>;

        #[cfg(feature = "NSDate")]
        #[unsafe(method(descriptorWithDate:))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptorWithDate(date: &NSDate) -> Retained<NSAppleEventDescriptor>;

        #[cfg(feature = "NSURL")]
        #[unsafe(method(descriptorWithFileURL:))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptorWithFileURL(file_url: &NSURL) -> Retained<NSAppleEventDescriptor>;

        #[unsafe(method(listDescriptor))]
        #[unsafe(method_family = none)]
        pub unsafe fn listDescriptor() -> Retained<NSAppleEventDescriptor>;

        #[unsafe(method(recordDescriptor))]
        #[unsafe(method_family = none)]
        pub unsafe fn recordDescriptor() -> Retained<NSAppleEventDescriptor>;

        #[unsafe(method(currentProcessDescriptor))]
        #[unsafe(method_family = none)]
        pub unsafe fn currentProcessDescriptor() -> Retained<NSAppleEventDescriptor>;

        #[cfg(feature = "libc")]
        #[unsafe(method(descriptorWithProcessIdentifier:))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptorWithProcessIdentifier(
            process_identifier: libc::pid_t,
        ) -> Retained<NSAppleEventDescriptor>;

        #[cfg(feature = "NSString")]
        #[unsafe(method(descriptorWithBundleIdentifier:))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptorWithBundleIdentifier(
            bundle_identifier: &NSString,
        ) -> Retained<NSAppleEventDescriptor>;

        #[cfg(feature = "NSURL")]
        #[unsafe(method(descriptorWithApplicationURL:))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptorWithApplicationURL(
            application_url: &NSURL,
        ) -> Retained<NSAppleEventDescriptor>;

        #[unsafe(method(initListDescriptor))]
        #[unsafe(method_family = init)]
        pub unsafe fn initListDescriptor(this: Allocated<Self>) -> Retained<Self>;

        #[unsafe(method(initRecordDescriptor))]
        #[unsafe(method_family = init)]
        pub unsafe fn initRecordDescriptor(this: Allocated<Self>) -> Retained<Self>;

        #[cfg(feature = "NSData")]
        #[unsafe(method(data))]
        #[unsafe(method_family = none)]
        pub unsafe fn data(&self) -> Retained<NSData>;

        #[unsafe(method(booleanValue))]
        #[unsafe(method_family = none)]
        pub unsafe fn booleanValue(&self) -> Boolean;

        #[unsafe(method(enumCodeValue))]
        #[unsafe(method_family = none)]
        pub unsafe fn enumCodeValue(&self) -> OSType;

        #[unsafe(method(int32Value))]
        #[unsafe(method_family = none)]
        pub unsafe fn int32Value(&self) -> i32;

        #[unsafe(method(doubleValue))]
        #[unsafe(method_family = none)]
        pub unsafe fn doubleValue(&self) -> c_double;

        #[unsafe(method(typeCodeValue))]
        #[unsafe(method_family = none)]
        pub unsafe fn typeCodeValue(&self) -> OSType;

        #[cfg(feature = "NSString")]
        #[unsafe(method(stringValue))]
        #[unsafe(method_family = none)]
        pub unsafe fn stringValue(&self) -> Option<Retained<NSString>>;

        #[cfg(feature = "NSDate")]
        #[unsafe(method(dateValue))]
        #[unsafe(method_family = none)]
        pub unsafe fn dateValue(&self) -> Option<Retained<NSDate>>;

        #[cfg(feature = "NSURL")]
        #[unsafe(method(fileURLValue))]
        #[unsafe(method_family = none)]
        pub unsafe fn fileURLValue(&self) -> Option<Retained<NSURL>>;

        #[unsafe(method(isRecordDescriptor))]
        #[unsafe(method_family = none)]
        pub unsafe fn isRecordDescriptor(&self) -> bool;

        #[unsafe(method(numberOfItems))]
        #[unsafe(method_family = none)]
        pub unsafe fn numberOfItems(&self) -> NSInteger;

        #[unsafe(method(insertDescriptor:atIndex:))]
        #[unsafe(method_family = none)]
        pub unsafe fn insertDescriptor_atIndex(
            &self,
            descriptor: &NSAppleEventDescriptor,
            index: NSInteger,
        );

        #[unsafe(method(descriptorAtIndex:))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptorAtIndex(
            &self,
            index: NSInteger,
        ) -> Option<Retained<NSAppleEventDescriptor>>;

        #[unsafe(method(removeDescriptorAtIndex:))]
        #[unsafe(method_family = none)]
        pub unsafe fn removeDescriptorAtIndex(&self, index: NSInteger);
    );
}

/// Methods declared on superclass `NSObject`.
impl NSAppleEventDescriptor {
    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>;
    );
}