use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use crate::*;
extern "C" {
pub static NSFoundationVersionNumber: c_double;
}
#[cfg(feature = "NSString")]
pub type NSExceptionName = NSString;
#[cfg(feature = "NSString")]
pub type NSRunLoopMode = NSString;
#[cfg(feature = "NSString")]
#[inline]
pub unsafe extern "C-unwind" fn NSStringFromSelector(a_selector: Sel) -> Retained<NSString> {
extern "C-unwind" {
fn NSStringFromSelector(a_selector: Sel) -> *mut NSString;
}
let ret = unsafe { NSStringFromSelector(a_selector) };
unsafe { Retained::retain_autoreleased(ret) }
.expect("function was marked as returning non-null, but actually returned NULL")
}
extern "C-unwind" {
#[cfg(feature = "NSString")]
pub fn NSSelectorFromString(a_selector_name: &NSString) -> Sel;
}
#[cfg(feature = "NSString")]
#[inline]
pub unsafe extern "C-unwind" fn NSStringFromClass(a_class: &AnyClass) -> Retained<NSString> {
extern "C-unwind" {
fn NSStringFromClass(a_class: &AnyClass) -> *mut NSString;
}
let ret = unsafe { NSStringFromClass(a_class) };
unsafe { Retained::retain_autoreleased(ret) }
.expect("function was marked as returning non-null, but actually returned NULL")
}
extern "C-unwind" {
#[cfg(feature = "NSString")]
pub fn NSClassFromString(a_class_name: &NSString) -> Option<&'static AnyClass>;
}
#[cfg(feature = "NSString")]
#[inline]
pub unsafe extern "C-unwind" fn NSStringFromProtocol(proto: &AnyProtocol) -> Retained<NSString> {
extern "C-unwind" {
fn NSStringFromProtocol(proto: &AnyProtocol) -> *mut NSString;
}
let ret = unsafe { NSStringFromProtocol(proto) };
unsafe { Retained::retain_autoreleased(ret) }
.expect("function was marked as returning non-null, but actually returned NULL")
}
#[cfg(feature = "NSString")]
#[inline]
pub unsafe extern "C-unwind" fn NSProtocolFromString(
namestr: &NSString,
) -> Option<Retained<AnyProtocol>> {
extern "C-unwind" {
fn NSProtocolFromString(namestr: &NSString) -> *mut AnyProtocol;
}
let ret = unsafe { NSProtocolFromString(namestr) };
unsafe { Retained::retain_autoreleased(ret) }
}
#[inline]
pub unsafe extern "C-unwind" fn NSGetSizeAndAlignment(
type_ptr: NonNull<c_char>,
sizep: *mut NSUInteger,
alignp: *mut NSUInteger,
) -> NonNull<c_char> {
extern "C-unwind" {
fn NSGetSizeAndAlignment(
type_ptr: NonNull<c_char>,
sizep: *mut NSUInteger,
alignp: *mut NSUInteger,
) -> Option<NonNull<c_char>>;
}
let ret = unsafe { NSGetSizeAndAlignment(type_ptr, sizep, alignp) };
ret.expect("function was marked as returning non-null, but actually returned NULL")
}
#[cfg(feature = "block2")]
pub type NSComparator =
*mut block2::Block<dyn Fn(NonNull<AnyObject>, NonNull<AnyObject>) -> NSComparisonResult>;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSEnumerationOptions(pub NSUInteger);
bitflags::bitflags! {
impl NSEnumerationOptions: NSUInteger {
#[doc(alias = "NSEnumerationConcurrent")]
const Concurrent = 1<<0;
#[doc(alias = "NSEnumerationReverse")]
const Reverse = 1<<1;
}
}
unsafe impl Encode for NSEnumerationOptions {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for NSEnumerationOptions {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSSortOptions(pub NSUInteger);
bitflags::bitflags! {
impl NSSortOptions: NSUInteger {
#[doc(alias = "NSSortConcurrent")]
const Concurrent = 1<<0;
#[doc(alias = "NSSortStable")]
const Stable = 1<<4;
}
}
unsafe impl Encode for NSSortOptions {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for NSSortOptions {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSQualityOfService(pub NSInteger);
impl NSQualityOfService {
#[doc(alias = "NSQualityOfServiceUserInteractive")]
pub const UserInteractive: Self = Self(0x21);
#[doc(alias = "NSQualityOfServiceUserInitiated")]
pub const UserInitiated: Self = Self(0x19);
#[doc(alias = "NSQualityOfServiceUtility")]
pub const Utility: Self = Self(0x11);
#[doc(alias = "NSQualityOfServiceBackground")]
pub const Background: Self = Self(0x09);
#[doc(alias = "NSQualityOfServiceDefault")]
pub const Default: Self = Self(-1);
}
unsafe impl Encode for NSQualityOfService {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for NSQualityOfService {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
pub static NSNotFound: NSInteger = NSIntegerMax as _;