use core::cell::UnsafeCell;
use core::ffi::*;
use core::marker::{PhantomData, PhantomPinned};
#[cfg(feature = "objc2")]
use objc2::__framework_prelude::*;
use crate::*;
pub type AEBuildErrorCode = u32;
pub const aeBuildSyntaxNoErr: c_uint = 0;
pub const aeBuildSyntaxBadToken: c_uint = 1;
pub const aeBuildSyntaxBadEOF: c_uint = 2;
pub const aeBuildSyntaxNoEOF: c_uint = 3;
pub const aeBuildSyntaxBadNegative: c_uint = 4;
pub const aeBuildSyntaxMissingQuote: c_uint = 5;
pub const aeBuildSyntaxBadHex: c_uint = 6;
pub const aeBuildSyntaxOddHex: c_uint = 7;
pub const aeBuildSyntaxNoCloseHex: c_uint = 8;
pub const aeBuildSyntaxUncoercedHex: c_uint = 9;
pub const aeBuildSyntaxNoCloseString: c_uint = 10;
pub const aeBuildSyntaxBadDesc: c_uint = 11;
pub const aeBuildSyntaxBadData: c_uint = 12;
pub const aeBuildSyntaxNoCloseParen: c_uint = 13;
pub const aeBuildSyntaxNoCloseBracket: c_uint = 14;
pub const aeBuildSyntaxNoCloseBrace: c_uint = 15;
pub const aeBuildSyntaxNoKey: c_uint = 16;
pub const aeBuildSyntaxNoColon: c_uint = 17;
pub const aeBuildSyntaxCoercedList: c_uint = 18;
pub const aeBuildSyntaxUncoercedDoubleAt: c_uint = 19;
#[repr(C, packed(2))]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct AEBuildError {
pub fError: AEBuildErrorCode,
pub fErrorPos: u32,
}
#[cfg(feature = "objc2")]
unsafe impl Encode for AEBuildError {
const ENCODING: Encoding = Encoding::Struct(
"AEBuildError",
&[<AEBuildErrorCode>::ENCODING, <u32>::ENCODING],
);
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for AEBuildError {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern "C-unwind" {
#[cfg(feature = "AEDataModel")]
pub fn AEPrintDescToHandle(desc: *const AEDesc, result: *mut Handle) -> OSStatus;
}
#[repr(C)]
#[derive(Debug)]
pub struct OpaqueAEStreamRef {
inner: [u8; 0],
_p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
}
#[cfg(feature = "objc2")]
unsafe impl RefEncode for OpaqueAEStreamRef {
const ENCODING_REF: Encoding = Encoding::Pointer(&Encoding::Struct("OpaqueAEStreamRef", &[]));
}
pub type AEStreamRef = *mut OpaqueAEStreamRef;
extern "C-unwind" {
pub fn AEStreamOpen() -> AEStreamRef;
}
extern "C-unwind" {
#[cfg(feature = "AEDataModel")]
pub fn AEStreamClose(r#ref: AEStreamRef, desc: *mut AEDesc) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AEDataModel")]
pub fn AEStreamOpenDesc(r#ref: AEStreamRef, new_type: DescType) -> OSStatus;
}
extern "C-unwind" {
pub fn AEStreamWriteData(r#ref: AEStreamRef, data: *const c_void, length: Size) -> OSStatus;
}
extern "C-unwind" {
pub fn AEStreamCloseDesc(r#ref: AEStreamRef) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AEDataModel")]
pub fn AEStreamWriteDesc(
r#ref: AEStreamRef,
new_type: DescType,
data: *const c_void,
length: Size,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AEDataModel")]
pub fn AEStreamWriteAEDesc(r#ref: AEStreamRef, desc: *const AEDesc) -> OSStatus;
}
extern "C-unwind" {
pub fn AEStreamOpenList(r#ref: AEStreamRef) -> OSStatus;
}
extern "C-unwind" {
pub fn AEStreamCloseList(r#ref: AEStreamRef) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AEDataModel")]
pub fn AEStreamOpenRecord(r#ref: AEStreamRef, new_type: DescType) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AEDataModel")]
pub fn AEStreamSetRecordType(r#ref: AEStreamRef, new_type: DescType) -> OSStatus;
}
extern "C-unwind" {
pub fn AEStreamCloseRecord(r#ref: AEStreamRef) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AEDataModel")]
pub fn AEStreamWriteKeyDesc(
r#ref: AEStreamRef,
key: AEKeyword,
new_type: DescType,
data: *const c_void,
length: Size,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AEDataModel")]
pub fn AEStreamOpenKeyDesc(r#ref: AEStreamRef, key: AEKeyword, new_type: DescType) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AEDataModel")]
pub fn AEStreamWriteKey(r#ref: AEStreamRef, key: AEKeyword) -> OSStatus;
}
extern "C-unwind" {
#[cfg(feature = "AEDataModel")]
pub fn AEStreamCreateEvent(
clazz: AEEventClass,
id: AEEventID,
target_type: DescType,
target_data: *const c_void,
target_length: Size,
return_id: i16,
transaction_id: i32,
) -> AEStreamRef;
}
extern "C-unwind" {
#[cfg(feature = "AEDataModel")]
pub fn AEStreamOpenEvent(event: *mut AppleEvent) -> AEStreamRef;
}
extern "C-unwind" {
#[cfg(feature = "AEDataModel")]
pub fn AEStreamOptionalParam(r#ref: AEStreamRef, key: AEKeyword) -> OSStatus;
}