use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(HMTimeEvent, HMEvent, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
pub struct HMSignificantTimeEvent;
);
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
unsafe impl Send for HMSignificantTimeEvent {}
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
unsafe impl Sync for HMSignificantTimeEvent {}
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
extern_conformance!(
unsafe impl NSCopying for HMSignificantTimeEvent {}
);
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
unsafe impl CopyingHelper for HMSignificantTimeEvent {
type Result = Self;
}
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
extern_conformance!(
unsafe impl NSMutableCopying for HMSignificantTimeEvent {}
);
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
unsafe impl MutableCopyingHelper for HMSignificantTimeEvent {
type Result = HMMutableSignificantTimeEvent;
}
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
extern_conformance!(
unsafe impl NSObjectProtocol for HMSignificantTimeEvent {}
);
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
impl HMSignificantTimeEvent {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[cfg(feature = "HMSignificantEvents")]
#[unsafe(method(initWithSignificantEvent:offset:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithSignificantEvent_offset(
this: Allocated<Self>,
significant_event: &HMSignificantEvent,
offset: Option<&NSDateComponents>,
) -> Retained<Self>;
#[cfg(feature = "HMSignificantEvents")]
#[unsafe(method(significantEvent))]
#[unsafe(method_family = none)]
pub unsafe fn significantEvent(&self) -> Retained<HMSignificantEvent>;
#[unsafe(method(offset))]
#[unsafe(method_family = none)]
pub unsafe fn offset(&self) -> Option<Retained<NSDateComponents>>;
);
}
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
impl HMSignificantTimeEvent {
extern_methods!(
#[deprecated = "HMEvent is abstract"]
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}
extern_class!(
#[unsafe(super(HMSignificantTimeEvent, HMTimeEvent, HMEvent, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
pub struct HMMutableSignificantTimeEvent;
);
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
unsafe impl Send for HMMutableSignificantTimeEvent {}
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
unsafe impl Sync for HMMutableSignificantTimeEvent {}
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
extern_conformance!(
unsafe impl NSCopying for HMMutableSignificantTimeEvent {}
);
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
unsafe impl CopyingHelper for HMMutableSignificantTimeEvent {
type Result = HMSignificantTimeEvent;
}
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
extern_conformance!(
unsafe impl NSMutableCopying for HMMutableSignificantTimeEvent {}
);
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
unsafe impl MutableCopyingHelper for HMMutableSignificantTimeEvent {
type Result = Self;
}
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
extern_conformance!(
unsafe impl NSObjectProtocol for HMMutableSignificantTimeEvent {}
);
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
impl HMMutableSignificantTimeEvent {
extern_methods!(
#[cfg(feature = "HMSignificantEvents")]
#[unsafe(method(significantEvent))]
#[unsafe(method_family = none)]
pub unsafe fn significantEvent(&self) -> Retained<HMSignificantEvent>;
#[cfg(feature = "HMSignificantEvents")]
#[unsafe(method(setSignificantEvent:))]
#[unsafe(method_family = none)]
pub unsafe fn setSignificantEvent(&self, significant_event: &HMSignificantEvent);
#[unsafe(method(offset))]
#[unsafe(method_family = none)]
pub unsafe fn offset(&self) -> Retained<NSDateComponents>;
#[unsafe(method(setOffset:))]
#[unsafe(method_family = none)]
pub unsafe fn setOffset(&self, offset: &NSDateComponents);
);
}
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
impl HMMutableSignificantTimeEvent {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[cfg(feature = "HMSignificantEvents")]
#[unsafe(method(initWithSignificantEvent:offset:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithSignificantEvent_offset(
this: Allocated<Self>,
significant_event: &HMSignificantEvent,
offset: Option<&NSDateComponents>,
) -> Retained<Self>;
);
}
#[cfg(all(feature = "HMEvent", feature = "HMTimeEvent"))]
impl HMMutableSignificantTimeEvent {
extern_methods!(
#[deprecated = "HMEvent is abstract"]
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}