use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct INRentalCar;
);
extern_conformance!(
unsafe impl NSCoding for INRentalCar {}
);
extern_conformance!(
unsafe impl NSCopying for INRentalCar {}
);
unsafe impl CopyingHelper for INRentalCar {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for INRentalCar {}
);
extern_conformance!(
unsafe impl NSSecureCoding for INRentalCar {}
);
impl INRentalCar {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(initWithRentalCompanyName:type:make:model:rentalCarDescription:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithRentalCompanyName_type_make_model_rentalCarDescription(
this: Allocated<Self>,
rental_company_name: &NSString,
r#type: Option<&NSString>,
make: Option<&NSString>,
model: Option<&NSString>,
rental_car_description: Option<&NSString>,
) -> Retained<Self>;
#[unsafe(method(rentalCompanyName))]
#[unsafe(method_family = none)]
pub unsafe fn rentalCompanyName(&self) -> Retained<NSString>;
#[unsafe(method(type))]
#[unsafe(method_family = none)]
pub unsafe fn r#type(&self) -> Option<Retained<NSString>>;
#[unsafe(method(make))]
#[unsafe(method_family = none)]
pub unsafe fn make(&self) -> Option<Retained<NSString>>;
#[unsafe(method(model))]
#[unsafe(method_family = none)]
pub unsafe fn model(&self) -> Option<Retained<NSString>>;
#[unsafe(method(rentalCarDescription))]
#[unsafe(method_family = none)]
pub unsafe fn rentalCarDescription(&self) -> Option<Retained<NSString>>;
);
}
impl INRentalCar {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}