icrate 0.1.2

Bindings to Apple's frameworks
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use crate::common::*;
use crate::Foundation::*;

extern_static!(NSHashTableStrongMemory: NSPointerFunctionsOptions = NSPointerFunctionsStrongMemory);

extern_static!(NSHashTableZeroingWeakMemory: NSPointerFunctionsOptions = NSPointerFunctionsZeroingWeakMemory);

extern_static!(NSHashTableCopyIn: NSPointerFunctionsOptions = NSPointerFunctionsCopyIn);

extern_static!(NSHashTableObjectPointerPersonality: NSPointerFunctionsOptions = NSPointerFunctionsObjectPointerPersonality);

extern_static!(NSHashTableWeakMemory: NSPointerFunctionsOptions = NSPointerFunctionsWeakMemory);

pub type NSHashTableOptions = NSUInteger;

__inner_extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[cfg(feature = "Foundation_NSHashTable")]
    pub struct NSHashTable<ObjectType: ?Sized = AnyObject> {
        __superclass: NSObject,
        _inner0: PhantomData<*mut ObjectType>,
        notunwindsafe: PhantomData<&'static mut ()>,
    }

    #[cfg(feature = "Foundation_NSHashTable")]
    unsafe impl<ObjectType: ?Sized + Message> ClassType for NSHashTable<ObjectType> {
        type Super = NSObject;
        type Mutability = InteriorMutable;

        fn as_super(&self) -> &Self::Super {
            &self.__superclass
        }

        fn as_super_mut(&mut self) -> &mut Self::Super {
            &mut self.__superclass
        }
    }
);

#[cfg(feature = "Foundation_NSHashTable")]
unsafe impl<ObjectType: ?Sized + NSCoding> NSCoding for NSHashTable<ObjectType> {}

#[cfg(feature = "Foundation_NSHashTable")]
unsafe impl<ObjectType: ?Sized + IsIdCloneable> NSCopying for NSHashTable<ObjectType> {}

#[cfg(feature = "Foundation_NSHashTable")]
unsafe impl<ObjectType: ?Sized> NSFastEnumeration for NSHashTable<ObjectType> {}

#[cfg(feature = "Foundation_NSHashTable")]
unsafe impl<ObjectType: ?Sized> NSObjectProtocol for NSHashTable<ObjectType> {}

#[cfg(feature = "Foundation_NSHashTable")]
unsafe impl<ObjectType: ?Sized + NSSecureCoding> NSSecureCoding for NSHashTable<ObjectType> {}

extern_methods!(
    #[cfg(feature = "Foundation_NSHashTable")]
    unsafe impl<ObjectType: Message> NSHashTable<ObjectType> {
        #[method_id(@__retain_semantics Init initWithOptions:capacity:)]
        pub unsafe fn initWithOptions_capacity(
            this: Allocated<Self>,
            options: NSPointerFunctionsOptions,
            initial_capacity: NSUInteger,
        ) -> Id<Self>;

        #[cfg(feature = "Foundation_NSPointerFunctions")]
        #[method_id(@__retain_semantics Init initWithPointerFunctions:capacity:)]
        pub unsafe fn initWithPointerFunctions_capacity(
            this: Allocated<Self>,
            functions: &NSPointerFunctions,
            initial_capacity: NSUInteger,
        ) -> Id<Self>;

        #[method_id(@__retain_semantics Other hashTableWithOptions:)]
        pub unsafe fn hashTableWithOptions(
            options: NSPointerFunctionsOptions,
        ) -> Id<NSHashTable<ObjectType>>;

        #[deprecated = "GC no longer supported"]
        #[method_id(@__retain_semantics Other hashTableWithWeakObjects)]
        pub unsafe fn hashTableWithWeakObjects() -> Id<AnyObject>;

        #[method_id(@__retain_semantics Other weakObjectsHashTable)]
        pub unsafe fn weakObjectsHashTable() -> Id<NSHashTable<ObjectType>>;

        #[cfg(feature = "Foundation_NSPointerFunctions")]
        #[method_id(@__retain_semantics Other pointerFunctions)]
        pub unsafe fn pointerFunctions(&self) -> Id<NSPointerFunctions>;

        #[method(count)]
        pub unsafe fn count(&self) -> NSUInteger;

        #[method_id(@__retain_semantics Other member:)]
        pub unsafe fn member(&self, object: Option<&ObjectType>) -> Option<Id<ObjectType>>;

        #[cfg(feature = "Foundation_NSEnumerator")]
        #[method_id(@__retain_semantics Other objectEnumerator)]
        pub unsafe fn objectEnumerator(&self) -> Id<NSEnumerator<ObjectType>>;

        #[method(addObject:)]
        pub unsafe fn addObject(&self, object: Option<&ObjectType>);

        #[method(removeObject:)]
        pub unsafe fn removeObject(&self, object: Option<&ObjectType>);

        #[method(removeAllObjects)]
        pub unsafe fn removeAllObjects(&self);

        #[cfg(feature = "Foundation_NSArray")]
        #[method_id(@__retain_semantics Other allObjects)]
        pub unsafe fn allObjects(&self) -> Id<NSArray<ObjectType>>;

        #[method_id(@__retain_semantics Other anyObject)]
        pub unsafe fn anyObject(&self) -> Option<Id<ObjectType>>;

        #[method(containsObject:)]
        pub unsafe fn containsObject(&self, an_object: Option<&ObjectType>) -> bool;

        #[method(intersectsHashTable:)]
        pub unsafe fn intersectsHashTable(&self, other: &NSHashTable<ObjectType>) -> bool;

        #[method(isEqualToHashTable:)]
        pub unsafe fn isEqualToHashTable(&self, other: &NSHashTable<ObjectType>) -> bool;

        #[method(isSubsetOfHashTable:)]
        pub unsafe fn isSubsetOfHashTable(&self, other: &NSHashTable<ObjectType>) -> bool;

        #[method(intersectHashTable:)]
        pub unsafe fn intersectHashTable(&self, other: &NSHashTable<ObjectType>);

        #[method(unionHashTable:)]
        pub unsafe fn unionHashTable(&self, other: &NSHashTable<ObjectType>);

        #[method(minusHashTable:)]
        pub unsafe fn minusHashTable(&self, other: &NSHashTable<ObjectType>);

        #[cfg(feature = "Foundation_NSSet")]
        #[method_id(@__retain_semantics Other setRepresentation)]
        pub unsafe fn setRepresentation(&self) -> Id<NSSet<ObjectType>>;
    }
);

extern_methods!(
    /// Methods declared on superclass `NSObject`
    #[cfg(feature = "Foundation_NSHashTable")]
    unsafe impl<ObjectType: Message> NSHashTable<ObjectType> {
        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new() -> Id<Self>;
    }
);

extern_struct!(
    #[encoding_name("?")]
    pub struct NSHashEnumerator {
        _pi: NSUInteger,
        _si: NSUInteger,
        _bs: *mut c_void,
    }
);

extern_fn!(
    #[cfg(feature = "Foundation_NSHashTable")]
    pub unsafe fn NSFreeHashTable(table: &NSHashTable);
);

extern_fn!(
    #[cfg(feature = "Foundation_NSHashTable")]
    pub unsafe fn NSResetHashTable(table: &NSHashTable);
);

extern_fn!(
    #[cfg(feature = "Foundation_NSHashTable")]
    pub unsafe fn NSCompareHashTables(table1: &NSHashTable, table2: &NSHashTable) -> Bool;
);

extern_fn!(
    #[cfg(feature = "Foundation_NSHashTable")]
    pub unsafe fn NSCopyHashTableWithZone(
        table: &NSHashTable,
        zone: *mut NSZone,
    ) -> NonNull<NSHashTable>;
);

extern_fn!(
    #[cfg(feature = "Foundation_NSHashTable")]
    pub unsafe fn NSHashGet(table: &NSHashTable, pointer: *mut c_void) -> NonNull<c_void>;
);

extern_fn!(
    #[cfg(feature = "Foundation_NSHashTable")]
    pub unsafe fn NSHashInsert(table: &NSHashTable, pointer: *mut c_void);
);

extern_fn!(
    #[cfg(feature = "Foundation_NSHashTable")]
    pub unsafe fn NSHashInsertKnownAbsent(table: &NSHashTable, pointer: *mut c_void);
);

extern_fn!(
    #[cfg(feature = "Foundation_NSHashTable")]
    pub unsafe fn NSHashInsertIfAbsent(table: &NSHashTable, pointer: *mut c_void) -> *mut c_void;
);

extern_fn!(
    #[cfg(feature = "Foundation_NSHashTable")]
    pub unsafe fn NSHashRemove(table: &NSHashTable, pointer: *mut c_void);
);

extern_fn!(
    #[cfg(feature = "Foundation_NSHashTable")]
    pub unsafe fn NSEnumerateHashTable(table: &NSHashTable) -> NSHashEnumerator;
);

extern_fn!(
    pub unsafe fn NSNextHashEnumeratorItem(enumerator: NonNull<NSHashEnumerator>) -> *mut c_void;
);

extern_fn!(
    pub unsafe fn NSEndHashTableEnumeration(enumerator: NonNull<NSHashEnumerator>);
);

extern_fn!(
    #[cfg(feature = "Foundation_NSHashTable")]
    pub unsafe fn NSCountHashTable(table: &NSHashTable) -> NSUInteger;
);

extern_fn!(
    #[cfg(all(feature = "Foundation_NSHashTable", feature = "Foundation_NSString"))]
    pub unsafe fn NSStringFromHashTable(table: &NSHashTable) -> NonNull<NSString>;
);

extern_fn!(
    #[cfg(all(feature = "Foundation_NSArray", feature = "Foundation_NSHashTable"))]
    pub unsafe fn NSAllHashTableObjects(table: &NSHashTable) -> NonNull<NSArray>;
);

extern_struct!(
    #[encoding_name("?")]
    pub struct NSHashTableCallBacks {
        pub hash: Option<unsafe extern "C" fn(NonNull<NSHashTable>, NonNull<c_void>) -> NSUInteger>,
        pub isEqual: Option<
            unsafe extern "C" fn(NonNull<NSHashTable>, NonNull<c_void>, NonNull<c_void>) -> Bool,
        >,
        pub retain: Option<unsafe extern "C" fn(NonNull<NSHashTable>, NonNull<c_void>)>,
        pub release: Option<unsafe extern "C" fn(NonNull<NSHashTable>, NonNull<c_void>)>,
        pub describe:
            Option<unsafe extern "C" fn(NonNull<NSHashTable>, NonNull<c_void>) -> *mut NSString>,
    }
);

extern_fn!(
    #[cfg(feature = "Foundation_NSHashTable")]
    pub unsafe fn NSCreateHashTableWithZone(
        call_backs: NSHashTableCallBacks,
        capacity: NSUInteger,
        zone: *mut NSZone,
    ) -> NonNull<NSHashTable>;
);

extern_fn!(
    #[cfg(feature = "Foundation_NSHashTable")]
    pub unsafe fn NSCreateHashTable(
        call_backs: NSHashTableCallBacks,
        capacity: NSUInteger,
    ) -> NonNull<NSHashTable>;
);

extern_static!(NSIntegerHashCallBacks: NSHashTableCallBacks);

extern_static!(NSNonOwnedPointerHashCallBacks: NSHashTableCallBacks);

extern_static!(NSNonRetainedObjectHashCallBacks: NSHashTableCallBacks);

extern_static!(NSObjectHashCallBacks: NSHashTableCallBacks);

extern_static!(NSOwnedObjectIdentityHashCallBacks: NSHashTableCallBacks);

extern_static!(NSOwnedPointerHashCallBacks: NSHashTableCallBacks);

extern_static!(NSPointerToStructHashCallBacks: NSHashTableCallBacks);

extern_static!(NSIntHashCallBacks: NSHashTableCallBacks);