use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
__inner_extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSDiffableDataSourceSnapshot<
SectionIdentifierType: ?Sized = AnyObject,
ItemIdentifierType: ?Sized = AnyObject,
> {
__superclass: NSObject,
_inner0: PhantomData<*mut SectionIdentifierType>,
_inner1: PhantomData<*mut ItemIdentifierType>,
notunwindsafe: PhantomData<&'static mut ()>,
}
unsafe impl<SectionIdentifierType: ?Sized + Message, ItemIdentifierType: ?Sized + Message>
ClassType for NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType>
{
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
}
}
);
unsafe impl<SectionIdentifierType: ?Sized + IsIdCloneable, ItemIdentifierType: ?Sized + IsIdCloneable>
NSCopying for NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType>
{
}
unsafe impl<SectionIdentifierType: ?Sized, ItemIdentifierType: ?Sized> NSObjectProtocol
for NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType>
{
}
extern_methods!(
unsafe impl<SectionIdentifierType: Message, ItemIdentifierType: Message>
NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType>
{
#[method(numberOfItems)]
pub unsafe fn numberOfItems(&self) -> NSInteger;
#[method(numberOfSections)]
pub unsafe fn numberOfSections(&self) -> NSInteger;
#[method_id(@__retain_semantics Other sectionIdentifiers)]
pub unsafe fn sectionIdentifiers(&self) -> Retained<NSArray<SectionIdentifierType>>;
#[method_id(@__retain_semantics Other itemIdentifiers)]
pub unsafe fn itemIdentifiers(&self) -> Retained<NSArray<ItemIdentifierType>>;
#[method(numberOfItemsInSection:)]
pub unsafe fn numberOfItemsInSection(
&self,
section_identifier: &SectionIdentifierType,
) -> NSInteger;
#[method_id(@__retain_semantics Other itemIdentifiersInSectionWithIdentifier:)]
pub unsafe fn itemIdentifiersInSectionWithIdentifier(
&self,
section_identifier: &SectionIdentifierType,
) -> Retained<NSArray<ItemIdentifierType>>;
#[method_id(@__retain_semantics Other sectionIdentifierForSectionContainingItemIdentifier:)]
pub unsafe fn sectionIdentifierForSectionContainingItemIdentifier(
&self,
item_identifier: &ItemIdentifierType,
) -> Option<Retained<SectionIdentifierType>>;
#[method(indexOfItemIdentifier:)]
pub unsafe fn indexOfItemIdentifier(
&self,
item_identifier: &ItemIdentifierType,
) -> NSInteger;
#[method(indexOfSectionIdentifier:)]
pub unsafe fn indexOfSectionIdentifier(
&self,
section_identifier: &SectionIdentifierType,
) -> NSInteger;
#[method(appendItemsWithIdentifiers:)]
pub unsafe fn appendItemsWithIdentifiers(&self, identifiers: &NSArray<ItemIdentifierType>);
#[method(appendItemsWithIdentifiers:intoSectionWithIdentifier:)]
pub unsafe fn appendItemsWithIdentifiers_intoSectionWithIdentifier(
&self,
identifiers: &NSArray<ItemIdentifierType>,
section_identifier: &SectionIdentifierType,
);
#[method(insertItemsWithIdentifiers:beforeItemWithIdentifier:)]
pub unsafe fn insertItemsWithIdentifiers_beforeItemWithIdentifier(
&self,
identifiers: &NSArray<ItemIdentifierType>,
item_identifier: &ItemIdentifierType,
);
#[method(insertItemsWithIdentifiers:afterItemWithIdentifier:)]
pub unsafe fn insertItemsWithIdentifiers_afterItemWithIdentifier(
&self,
identifiers: &NSArray<ItemIdentifierType>,
item_identifier: &ItemIdentifierType,
);
#[method(deleteItemsWithIdentifiers:)]
pub unsafe fn deleteItemsWithIdentifiers(&self, identifiers: &NSArray<ItemIdentifierType>);
#[method(deleteAllItems)]
pub unsafe fn deleteAllItems(&self);
#[method(moveItemWithIdentifier:beforeItemWithIdentifier:)]
pub unsafe fn moveItemWithIdentifier_beforeItemWithIdentifier(
&self,
from_identifier: &ItemIdentifierType,
to_identifier: &ItemIdentifierType,
);
#[method(moveItemWithIdentifier:afterItemWithIdentifier:)]
pub unsafe fn moveItemWithIdentifier_afterItemWithIdentifier(
&self,
from_identifier: &ItemIdentifierType,
to_identifier: &ItemIdentifierType,
);
#[method(reloadItemsWithIdentifiers:)]
pub unsafe fn reloadItemsWithIdentifiers(&self, identifiers: &NSArray<ItemIdentifierType>);
#[method(appendSectionsWithIdentifiers:)]
pub unsafe fn appendSectionsWithIdentifiers(
&self,
section_identifiers: &NSArray<SectionIdentifierType>,
);
#[method(insertSectionsWithIdentifiers:beforeSectionWithIdentifier:)]
pub unsafe fn insertSectionsWithIdentifiers_beforeSectionWithIdentifier(
&self,
section_identifiers: &NSArray<SectionIdentifierType>,
to_section_identifier: &SectionIdentifierType,
);
#[method(insertSectionsWithIdentifiers:afterSectionWithIdentifier:)]
pub unsafe fn insertSectionsWithIdentifiers_afterSectionWithIdentifier(
&self,
section_identifiers: &NSArray<SectionIdentifierType>,
to_section_identifier: &SectionIdentifierType,
);
#[method(deleteSectionsWithIdentifiers:)]
pub unsafe fn deleteSectionsWithIdentifiers(
&self,
section_identifiers: &NSArray<SectionIdentifierType>,
);
#[method(moveSectionWithIdentifier:beforeSectionWithIdentifier:)]
pub unsafe fn moveSectionWithIdentifier_beforeSectionWithIdentifier(
&self,
from_section_identifier: &SectionIdentifierType,
to_section_identifier: &SectionIdentifierType,
);
#[method(moveSectionWithIdentifier:afterSectionWithIdentifier:)]
pub unsafe fn moveSectionWithIdentifier_afterSectionWithIdentifier(
&self,
from_section_identifier: &SectionIdentifierType,
to_section_identifier: &SectionIdentifierType,
);
#[method(reloadSectionsWithIdentifiers:)]
pub unsafe fn reloadSectionsWithIdentifiers(
&self,
section_identifiers: &NSArray<SectionIdentifierType>,
);
}
);
extern_methods!(
unsafe impl<SectionIdentifierType: Message, ItemIdentifierType: Message>
NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType>
{
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
#[cfg(all(
feature = "NSCollectionView",
feature = "NSResponder",
feature = "NSView",
feature = "block2"
))]
pub type NSCollectionViewDiffableDataSourceSupplementaryViewProvider = *mut block2::Block<
dyn Fn(NonNull<NSCollectionView>, NonNull<NSString>, NonNull<NSIndexPath>) -> *mut NSView,
>;
__inner_extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSCollectionViewDiffableDataSource<
SectionIdentifierType: ?Sized = AnyObject,
ItemIdentifierType: ?Sized = AnyObject,
> {
__superclass: NSObject,
_inner0: PhantomData<*mut SectionIdentifierType>,
_inner1: PhantomData<*mut ItemIdentifierType>,
notunwindsafe: PhantomData<&'static mut ()>,
}
unsafe impl<SectionIdentifierType: ?Sized + Message, ItemIdentifierType: ?Sized + Message>
ClassType
for NSCollectionViewDiffableDataSource<SectionIdentifierType, ItemIdentifierType>
{
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
}
}
);
unsafe impl<SectionIdentifierType: ?Sized, ItemIdentifierType: ?Sized> NSObjectProtocol
for NSCollectionViewDiffableDataSource<SectionIdentifierType, ItemIdentifierType>
{
}
extern_methods!(
unsafe impl<SectionIdentifierType: Message, ItemIdentifierType: Message>
NSCollectionViewDiffableDataSource<SectionIdentifierType, ItemIdentifierType>
{
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
#[method_id(@__retain_semantics Other snapshot)]
pub unsafe fn snapshot(
&self,
) -> Retained<NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType>>;
#[method(applySnapshot:animatingDifferences:)]
pub unsafe fn applySnapshot_animatingDifferences(
&self,
snapshot: &NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType>,
animating_differences: bool,
);
#[method_id(@__retain_semantics Other itemIdentifierForIndexPath:)]
pub unsafe fn itemIdentifierForIndexPath(
&self,
index_path: &NSIndexPath,
) -> Option<Retained<ItemIdentifierType>>;
#[method_id(@__retain_semantics Other indexPathForItemIdentifier:)]
pub unsafe fn indexPathForItemIdentifier(
&self,
identifier: &ItemIdentifierType,
) -> Option<Retained<NSIndexPath>>;
#[cfg(all(
feature = "NSCollectionView",
feature = "NSResponder",
feature = "NSView",
feature = "block2"
))]
#[method(supplementaryViewProvider)]
pub unsafe fn supplementaryViewProvider(
&self,
mtm: MainThreadMarker,
) -> NSCollectionViewDiffableDataSourceSupplementaryViewProvider;
#[cfg(all(
feature = "NSCollectionView",
feature = "NSResponder",
feature = "NSView",
feature = "block2"
))]
#[method(setSupplementaryViewProvider:)]
pub unsafe fn setSupplementaryViewProvider(
&self,
supplementary_view_provider: NSCollectionViewDiffableDataSourceSupplementaryViewProvider,
);
}
);