use objc2::__framework_prelude::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSTimeZone;
unsafe impl ClassType for NSTimeZone {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl Send for NSTimeZone {}
unsafe impl Sync for NSTimeZone {}
#[cfg(feature = "NSObject")]
unsafe impl NSCoding for NSTimeZone {}
#[cfg(feature = "NSObject")]
unsafe impl NSCopying for NSTimeZone {}
unsafe impl NSObjectProtocol for NSTimeZone {}
#[cfg(feature = "NSObject")]
unsafe impl NSSecureCoding for NSTimeZone {}
extern_methods!(
unsafe impl NSTimeZone {
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Other name)]
pub unsafe fn name(&self) -> Retained<NSString>;
#[cfg(feature = "NSData")]
#[method_id(@__retain_semantics Other data)]
pub unsafe fn data(&self) -> Retained<NSData>;
#[cfg(feature = "NSDate")]
#[method(secondsFromGMTForDate:)]
pub unsafe fn secondsFromGMTForDate(&self, a_date: &NSDate) -> NSInteger;
#[cfg(all(feature = "NSDate", feature = "NSString"))]
#[method_id(@__retain_semantics Other abbreviationForDate:)]
pub unsafe fn abbreviationForDate(&self, a_date: &NSDate) -> Option<Retained<NSString>>;
#[cfg(feature = "NSDate")]
#[method(isDaylightSavingTimeForDate:)]
pub unsafe fn isDaylightSavingTimeForDate(&self, a_date: &NSDate) -> bool;
#[cfg(feature = "NSDate")]
#[method(daylightSavingTimeOffsetForDate:)]
pub unsafe fn daylightSavingTimeOffsetForDate(&self, a_date: &NSDate) -> NSTimeInterval;
#[cfg(feature = "NSDate")]
#[method_id(@__retain_semantics Other nextDaylightSavingTimeTransitionAfterDate:)]
pub unsafe fn nextDaylightSavingTimeTransitionAfterDate(
&self,
a_date: &NSDate,
) -> Option<Retained<NSDate>>;
}
);
extern_methods!(
unsafe impl NSTimeZone {
#[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>;
}
);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSTimeZoneNameStyle(pub NSInteger);
impl NSTimeZoneNameStyle {
#[doc(alias = "NSTimeZoneNameStyleStandard")]
pub const Standard: Self = Self(0);
#[doc(alias = "NSTimeZoneNameStyleShortStandard")]
pub const ShortStandard: Self = Self(1);
#[doc(alias = "NSTimeZoneNameStyleDaylightSaving")]
pub const DaylightSaving: Self = Self(2);
#[doc(alias = "NSTimeZoneNameStyleShortDaylightSaving")]
pub const ShortDaylightSaving: Self = Self(3);
#[doc(alias = "NSTimeZoneNameStyleGeneric")]
pub const Generic: Self = Self(4);
#[doc(alias = "NSTimeZoneNameStyleShortGeneric")]
pub const ShortGeneric: Self = Self(5);
}
unsafe impl Encode for NSTimeZoneNameStyle {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for NSTimeZoneNameStyle {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_methods!(
unsafe impl NSTimeZone {
#[method_id(@__retain_semantics Other systemTimeZone)]
pub unsafe fn systemTimeZone() -> Retained<NSTimeZone>;
#[method(resetSystemTimeZone)]
pub unsafe fn resetSystemTimeZone();
#[method_id(@__retain_semantics Other defaultTimeZone)]
pub unsafe fn defaultTimeZone() -> Retained<NSTimeZone>;
#[method(setDefaultTimeZone:)]
pub unsafe fn setDefaultTimeZone(default_time_zone: &NSTimeZone);
#[method_id(@__retain_semantics Other localTimeZone)]
pub unsafe fn localTimeZone() -> Retained<NSTimeZone>;
#[cfg(all(feature = "NSArray", feature = "NSString"))]
#[method_id(@__retain_semantics Other knownTimeZoneNames)]
pub unsafe fn knownTimeZoneNames() -> Retained<NSArray<NSString>>;
#[cfg(all(feature = "NSDictionary", feature = "NSString"))]
#[method_id(@__retain_semantics Other abbreviationDictionary)]
pub unsafe fn abbreviationDictionary() -> Retained<NSDictionary<NSString, NSString>>;
#[cfg(all(feature = "NSDictionary", feature = "NSString"))]
#[method(setAbbreviationDictionary:)]
pub unsafe fn setAbbreviationDictionary(
abbreviation_dictionary: &NSDictionary<NSString, NSString>,
);
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Other timeZoneDataVersion)]
pub unsafe fn timeZoneDataVersion() -> Retained<NSString>;
#[method(secondsFromGMT)]
pub unsafe fn secondsFromGMT(&self) -> NSInteger;
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Other abbreviation)]
pub unsafe fn abbreviation(&self) -> Option<Retained<NSString>>;
#[method(isDaylightSavingTime)]
pub unsafe fn isDaylightSavingTime(&self) -> bool;
#[cfg(feature = "NSDate")]
#[method(daylightSavingTimeOffset)]
pub unsafe fn daylightSavingTimeOffset(&self) -> NSTimeInterval;
#[cfg(feature = "NSDate")]
#[method_id(@__retain_semantics Other nextDaylightSavingTimeTransition)]
pub unsafe fn nextDaylightSavingTimeTransition(&self) -> Option<Retained<NSDate>>;
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Other description)]
pub unsafe fn description(&self) -> Retained<NSString>;
#[method(isEqualToTimeZone:)]
pub unsafe fn isEqualToTimeZone(&self, a_time_zone: &NSTimeZone) -> bool;
#[cfg(all(feature = "NSLocale", feature = "NSString"))]
#[method_id(@__retain_semantics Other localizedName:locale:)]
pub unsafe fn localizedName_locale(
&self,
style: NSTimeZoneNameStyle,
locale: Option<&NSLocale>,
) -> Option<Retained<NSString>>;
}
);
extern_methods!(
unsafe impl NSTimeZone {
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Other timeZoneWithName:)]
pub unsafe fn timeZoneWithName(tz_name: &NSString) -> Option<Retained<Self>>;
#[cfg(all(feature = "NSData", feature = "NSString"))]
#[method_id(@__retain_semantics Other timeZoneWithName:data:)]
pub unsafe fn timeZoneWithName_data(
tz_name: &NSString,
a_data: Option<&NSData>,
) -> Option<Retained<Self>>;
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Init initWithName:)]
pub unsafe fn initWithName(
this: Allocated<Self>,
tz_name: &NSString,
) -> Option<Retained<Self>>;
#[cfg(all(feature = "NSData", feature = "NSString"))]
#[method_id(@__retain_semantics Init initWithName:data:)]
pub unsafe fn initWithName_data(
this: Allocated<Self>,
tz_name: &NSString,
a_data: Option<&NSData>,
) -> Option<Retained<Self>>;
#[method_id(@__retain_semantics Other timeZoneForSecondsFromGMT:)]
pub unsafe fn timeZoneForSecondsFromGMT(seconds: NSInteger) -> Retained<Self>;
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Other timeZoneWithAbbreviation:)]
pub unsafe fn timeZoneWithAbbreviation(abbreviation: &NSString) -> Option<Retained<Self>>;
}
);
extern "C" {
#[cfg(all(feature = "NSNotification", feature = "NSString"))]
pub static NSSystemTimeZoneDidChangeNotification: &'static NSNotificationName;
}