//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

mod private_NSIndexPathUIKitAdditions {
    pub trait Sealed {}
}

/// Category "UIKitAdditions" on [`NSIndexPath`].
#[doc(alias = "UIKitAdditions")]
pub unsafe trait NSIndexPathUIKitAdditions:
    ClassType + Sized + private_NSIndexPathUIKitAdditions::Sealed
{
    extern_methods!(
        #[unsafe(method(indexPathForRow:inSection:))]
        #[unsafe(method_family = none)]
        fn indexPathForRow_inSection(row: NSInteger, section: NSInteger) -> Retained<Self>;

        #[unsafe(method(indexPathForItem:inSection:))]
        #[unsafe(method_family = none)]
        fn indexPathForItem_inSection(item: NSInteger, section: NSInteger) -> Retained<Self>;

        #[unsafe(method(section))]
        #[unsafe(method_family = none)]
        fn section(&self) -> NSInteger;

        #[unsafe(method(row))]
        #[unsafe(method_family = none)]
        fn row(&self) -> NSInteger;

        #[unsafe(method(item))]
        #[unsafe(method_family = none)]
        fn item(&self) -> NSInteger;
    );
}

impl private_NSIndexPathUIKitAdditions::Sealed for NSIndexPath {}
unsafe impl NSIndexPathUIKitAdditions for NSIndexPath {}
