//! 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/nspointerfunctionsoptions?language=objc) // NS_OPTIONS #[repr(transparent)] #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct NSPointerFunctionsOptions(pub NSUInteger); bitflags::bitflags! { impl NSPointerFunctionsOptions: NSUInteger { #[doc(alias = "NSPointerFunctionsStrongMemory")] const StrongMemory = 0<<0; #[doc(alias = "NSPointerFunctionsZeroingWeakMemory")] #[deprecated = "GC no longer supported"] const ZeroingWeakMemory = 1<<0; #[doc(alias = "NSPointerFunctionsOpaqueMemory")] const OpaqueMemory = 2<<0; #[doc(alias = "NSPointerFunctionsMallocMemory")] const MallocMemory = 3<<0; #[doc(alias = "NSPointerFunctionsMachVirtualMemory")] const MachVirtualMemory = 4<<0; #[doc(alias = "NSPointerFunctionsWeakMemory")] const WeakMemory = 5<<0; #[doc(alias = "NSPointerFunctionsObjectPersonality")] const ObjectPersonality = 0<<8; #[doc(alias = "NSPointerFunctionsOpaquePersonality")] const OpaquePersonality = 1<<8; #[doc(alias = "NSPointerFunctionsObjectPointerPersonality")] const ObjectPointerPersonality = 2<<8; #[doc(alias = "NSPointerFunctionsCStringPersonality")] const CStringPersonality = 3<<8; #[doc(alias = "NSPointerFunctionsStructPersonality")] const StructPersonality = 4<<8; #[doc(alias = "NSPointerFunctionsIntegerPersonality")] const IntegerPersonality = 5<<8; #[doc(alias = "NSPointerFunctionsCopyIn")] const CopyIn = 1<<16; } } unsafe impl Encode for NSPointerFunctionsOptions { const ENCODING: Encoding = NSUInteger::ENCODING; } unsafe impl RefEncode for NSPointerFunctionsOptions { const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING); } extern_class!( /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nspointerfunctions?language=objc) #[unsafe(super(NSObject))] #[derive(Debug, PartialEq, Eq, Hash)] pub struct NSPointerFunctions; ); #[cfg(feature = "NSObject")] extern_conformance!( unsafe impl NSCopying for NSPointerFunctions {} ); #[cfg(feature = "NSObject")] unsafe impl CopyingHelper for NSPointerFunctions { type Result = Self; } extern_conformance!( unsafe impl NSObjectProtocol for NSPointerFunctions {} ); impl NSPointerFunctions { extern_methods!( #[unsafe(method(initWithOptions:))] #[unsafe(method_family = init)] pub fn initWithOptions( this: Allocated, options: NSPointerFunctionsOptions, ) -> Retained; #[unsafe(method(pointerFunctionsWithOptions:))] #[unsafe(method_family = none)] pub fn pointerFunctionsWithOptions( options: NSPointerFunctionsOptions, ) -> Retained; #[unsafe(method(hashFunction))] #[unsafe(method_family = none)] pub fn hashFunction( &self, ) -> Option< unsafe extern "C-unwind" fn( NonNull, Option) -> NSUInteger>, ) -> NSUInteger, >; /// Setter for [`hashFunction`][Self::hashFunction]. /// /// # Safety /// /// `hash_function` must be implemented correctly. #[unsafe(method(setHashFunction:))] #[unsafe(method_family = none)] pub unsafe fn setHashFunction( &self, hash_function: Option< unsafe extern "C-unwind" fn( NonNull, Option) -> NSUInteger>, ) -> NSUInteger, >, ); #[unsafe(method(isEqualFunction))] #[unsafe(method_family = none)] pub fn isEqualFunction( &self, ) -> Option< unsafe extern "C-unwind" fn( NonNull, NonNull, Option) -> NSUInteger>, ) -> Bool, >; /// Setter for [`isEqualFunction`][Self::isEqualFunction]. /// /// # Safety /// /// `is_equal_function` must be implemented correctly. #[unsafe(method(setIsEqualFunction:))] #[unsafe(method_family = none)] pub unsafe fn setIsEqualFunction( &self, is_equal_function: Option< unsafe extern "C-unwind" fn( NonNull, NonNull, Option) -> NSUInteger>, ) -> Bool, >, ); #[unsafe(method(sizeFunction))] #[unsafe(method_family = none)] pub fn sizeFunction( &self, ) -> Option) -> NSUInteger>; /// Setter for [`sizeFunction`][Self::sizeFunction]. /// /// # Safety /// /// `size_function` must be implemented correctly. #[unsafe(method(setSizeFunction:))] #[unsafe(method_family = none)] pub unsafe fn setSizeFunction( &self, size_function: Option) -> NSUInteger>, ); #[cfg(feature = "NSString")] #[unsafe(method(descriptionFunction))] #[unsafe(method_family = none)] pub fn descriptionFunction( &self, ) -> Option) -> *mut NSString>; #[cfg(feature = "NSString")] /// Setter for [`descriptionFunction`][Self::descriptionFunction]. /// /// # Safety /// /// `description_function` must be implemented correctly. #[unsafe(method(setDescriptionFunction:))] #[unsafe(method_family = none)] pub unsafe fn setDescriptionFunction( &self, description_function: Option< unsafe extern "C-unwind" fn(NonNull) -> *mut NSString, >, ); #[unsafe(method(relinquishFunction))] #[unsafe(method_family = none)] pub fn relinquishFunction( &self, ) -> Option< unsafe extern "C-unwind" fn( NonNull, Option) -> NSUInteger>, ), >; /// Setter for [`relinquishFunction`][Self::relinquishFunction]. /// /// # Safety /// /// `relinquish_function` must be implemented correctly. #[unsafe(method(setRelinquishFunction:))] #[unsafe(method_family = none)] pub unsafe fn setRelinquishFunction( &self, relinquish_function: Option< unsafe extern "C-unwind" fn( NonNull, Option) -> NSUInteger>, ), >, ); #[unsafe(method(acquireFunction))] #[unsafe(method_family = none)] pub fn acquireFunction( &self, ) -> Option< unsafe extern "C-unwind" fn( NonNull, Option) -> NSUInteger>, Bool, ) -> NonNull, >; /// Setter for [`acquireFunction`][Self::acquireFunction]. /// /// # Safety /// /// `acquire_function` must be implemented correctly. #[unsafe(method(setAcquireFunction:))] #[unsafe(method_family = none)] pub unsafe fn setAcquireFunction( &self, acquire_function: Option< unsafe extern "C-unwind" fn( NonNull, Option) -> NSUInteger>, Bool, ) -> NonNull, >, ); #[deprecated = "Garbage collection no longer supported"] #[unsafe(method(usesStrongWriteBarrier))] #[unsafe(method_family = none)] pub fn usesStrongWriteBarrier(&self) -> bool; /// Setter for [`usesStrongWriteBarrier`][Self::usesStrongWriteBarrier]. #[deprecated = "Garbage collection no longer supported"] #[unsafe(method(setUsesStrongWriteBarrier:))] #[unsafe(method_family = none)] pub fn setUsesStrongWriteBarrier(&self, uses_strong_write_barrier: bool); #[deprecated = "Garbage collection no longer supported"] #[unsafe(method(usesWeakReadAndWriteBarriers))] #[unsafe(method_family = none)] pub fn usesWeakReadAndWriteBarriers(&self) -> bool; /// Setter for [`usesWeakReadAndWriteBarriers`][Self::usesWeakReadAndWriteBarriers]. #[deprecated = "Garbage collection no longer supported"] #[unsafe(method(setUsesWeakReadAndWriteBarriers:))] #[unsafe(method_family = none)] pub fn setUsesWeakReadAndWriteBarriers(&self, uses_weak_read_and_write_barriers: bool); ); } /// Methods declared on superclass `NSObject`. impl NSPointerFunctions { extern_methods!( #[unsafe(method(init))] #[unsafe(method_family = init)] pub fn init(this: Allocated) -> Retained; #[unsafe(method(new))] #[unsafe(method_family = new)] pub fn new() -> Retained; ); } impl DefaultRetained for NSPointerFunctions { #[inline] fn default_retained() -> Retained { Self::new() } }