//! This file has been automatically generated by `objc2`'s `header-translator`. //! DO NOT EDIT use core::ffi::*; use core::ptr::NonNull; use objc2::__framework_prelude::*; use crate::*; /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsdatecomponentsformatterunitsstyle?language=objc) // NS_ENUM #[repr(transparent)] #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct NSDateComponentsFormatterUnitsStyle(pub NSInteger); impl NSDateComponentsFormatterUnitsStyle { #[doc(alias = "NSDateComponentsFormatterUnitsStylePositional")] pub const Positional: Self = Self(0); #[doc(alias = "NSDateComponentsFormatterUnitsStyleAbbreviated")] pub const Abbreviated: Self = Self(1); #[doc(alias = "NSDateComponentsFormatterUnitsStyleShort")] pub const Short: Self = Self(2); #[doc(alias = "NSDateComponentsFormatterUnitsStyleFull")] pub const Full: Self = Self(3); #[doc(alias = "NSDateComponentsFormatterUnitsStyleSpellOut")] pub const SpellOut: Self = Self(4); #[doc(alias = "NSDateComponentsFormatterUnitsStyleBrief")] pub const Brief: Self = Self(5); } unsafe impl Encode for NSDateComponentsFormatterUnitsStyle { const ENCODING: Encoding = NSInteger::ENCODING; } unsafe impl RefEncode for NSDateComponentsFormatterUnitsStyle { const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING); } /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsdatecomponentsformatterzeroformattingbehavior?language=objc) // NS_OPTIONS #[repr(transparent)] #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct NSDateComponentsFormatterZeroFormattingBehavior(pub NSUInteger); bitflags::bitflags! { impl NSDateComponentsFormatterZeroFormattingBehavior: NSUInteger { #[doc(alias = "NSDateComponentsFormatterZeroFormattingBehaviorNone")] const None = 0; #[doc(alias = "NSDateComponentsFormatterZeroFormattingBehaviorDefault")] const Default = 1<<0; #[doc(alias = "NSDateComponentsFormatterZeroFormattingBehaviorDropLeading")] const DropLeading = 1<<1; #[doc(alias = "NSDateComponentsFormatterZeroFormattingBehaviorDropMiddle")] const DropMiddle = 1<<2; #[doc(alias = "NSDateComponentsFormatterZeroFormattingBehaviorDropTrailing")] const DropTrailing = 1<<3; #[doc(alias = "NSDateComponentsFormatterZeroFormattingBehaviorDropAll")] const DropAll = NSDateComponentsFormatterZeroFormattingBehavior::DropLeading.0|NSDateComponentsFormatterZeroFormattingBehavior::DropMiddle.0|NSDateComponentsFormatterZeroFormattingBehavior::DropTrailing.0; #[doc(alias = "NSDateComponentsFormatterZeroFormattingBehaviorPad")] const Pad = 1<<16; } } unsafe impl Encode for NSDateComponentsFormatterZeroFormattingBehavior { const ENCODING: Encoding = NSUInteger::ENCODING; } unsafe impl RefEncode for NSDateComponentsFormatterZeroFormattingBehavior { const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING); } extern_class!( /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsdatecomponentsformatter?language=objc) #[unsafe(super(NSFormatter, NSObject))] #[derive(Debug, PartialEq, Eq, Hash)] #[cfg(feature = "NSFormatter")] pub struct NSDateComponentsFormatter; ); #[cfg(feature = "NSFormatter")] unsafe impl Send for NSDateComponentsFormatter {} #[cfg(feature = "NSFormatter")] unsafe impl Sync for NSDateComponentsFormatter {} #[cfg(all(feature = "NSFormatter", feature = "NSObject"))] extern_conformance!( unsafe impl NSCoding for NSDateComponentsFormatter {} ); #[cfg(all(feature = "NSFormatter", feature = "NSObject"))] extern_conformance!( unsafe impl NSCopying for NSDateComponentsFormatter {} ); #[cfg(all(feature = "NSFormatter", feature = "NSObject"))] unsafe impl CopyingHelper for NSDateComponentsFormatter { type Result = Self; } #[cfg(feature = "NSFormatter")] extern_conformance!( unsafe impl NSObjectProtocol for NSDateComponentsFormatter {} ); #[cfg(feature = "NSFormatter")] impl NSDateComponentsFormatter { extern_methods!( #[cfg(feature = "NSString")] /// # Safety /// /// `obj` should be of the correct type. #[unsafe(method(stringForObjectValue:))] #[unsafe(method_family = none)] pub unsafe fn stringForObjectValue( &self, obj: Option<&AnyObject>, ) -> Option>; #[cfg(all(feature = "NSCalendar", feature = "NSString"))] #[unsafe(method(stringFromDateComponents:))] #[unsafe(method_family = none)] pub fn stringFromDateComponents( &self, components: &NSDateComponents, ) -> Option>; #[cfg(all(feature = "NSDate", feature = "NSString"))] #[unsafe(method(stringFromDate:toDate:))] #[unsafe(method_family = none)] pub fn stringFromDate_toDate( &self, start_date: &NSDate, end_date: &NSDate, ) -> Option>; #[cfg(all(feature = "NSDate", feature = "NSString"))] #[unsafe(method(stringFromTimeInterval:))] #[unsafe(method_family = none)] pub fn stringFromTimeInterval(&self, ti: NSTimeInterval) -> Option>; #[cfg(all(feature = "NSCalendar", feature = "NSString"))] #[unsafe(method(localizedStringFromDateComponents:unitsStyle:))] #[unsafe(method_family = none)] pub fn localizedStringFromDateComponents_unitsStyle( components: &NSDateComponents, units_style: NSDateComponentsFormatterUnitsStyle, ) -> Option>; #[unsafe(method(unitsStyle))] #[unsafe(method_family = none)] pub fn unitsStyle(&self) -> NSDateComponentsFormatterUnitsStyle; /// Setter for [`unitsStyle`][Self::unitsStyle]. #[unsafe(method(setUnitsStyle:))] #[unsafe(method_family = none)] pub fn setUnitsStyle(&self, units_style: NSDateComponentsFormatterUnitsStyle); #[cfg(feature = "NSCalendar")] #[unsafe(method(allowedUnits))] #[unsafe(method_family = none)] pub fn allowedUnits(&self) -> NSCalendarUnit; #[cfg(feature = "NSCalendar")] /// Setter for [`allowedUnits`][Self::allowedUnits]. #[unsafe(method(setAllowedUnits:))] #[unsafe(method_family = none)] pub fn setAllowedUnits(&self, allowed_units: NSCalendarUnit); #[unsafe(method(zeroFormattingBehavior))] #[unsafe(method_family = none)] pub fn zeroFormattingBehavior(&self) -> NSDateComponentsFormatterZeroFormattingBehavior; /// Setter for [`zeroFormattingBehavior`][Self::zeroFormattingBehavior]. #[unsafe(method(setZeroFormattingBehavior:))] #[unsafe(method_family = none)] pub fn setZeroFormattingBehavior( &self, zero_formatting_behavior: NSDateComponentsFormatterZeroFormattingBehavior, ); #[cfg(feature = "NSCalendar")] #[unsafe(method(calendar))] #[unsafe(method_family = none)] pub fn calendar(&self) -> Option>; #[cfg(feature = "NSCalendar")] /// Setter for [`calendar`][Self::calendar]. /// /// This is [copied][crate::NSCopying::copy] when set. #[unsafe(method(setCalendar:))] #[unsafe(method_family = none)] pub fn setCalendar(&self, calendar: Option<&NSCalendar>); #[cfg(feature = "NSDate")] #[unsafe(method(referenceDate))] #[unsafe(method_family = none)] pub fn referenceDate(&self) -> Option>; #[cfg(feature = "NSDate")] /// Setter for [`referenceDate`][Self::referenceDate]. /// /// This is [copied][crate::NSCopying::copy] when set. #[unsafe(method(setReferenceDate:))] #[unsafe(method_family = none)] pub fn setReferenceDate(&self, reference_date: Option<&NSDate>); #[unsafe(method(allowsFractionalUnits))] #[unsafe(method_family = none)] pub fn allowsFractionalUnits(&self) -> bool; /// Setter for [`allowsFractionalUnits`][Self::allowsFractionalUnits]. #[unsafe(method(setAllowsFractionalUnits:))] #[unsafe(method_family = none)] pub fn setAllowsFractionalUnits(&self, allows_fractional_units: bool); #[unsafe(method(maximumUnitCount))] #[unsafe(method_family = none)] pub fn maximumUnitCount(&self) -> NSInteger; /// Setter for [`maximumUnitCount`][Self::maximumUnitCount]. #[unsafe(method(setMaximumUnitCount:))] #[unsafe(method_family = none)] pub fn setMaximumUnitCount(&self, maximum_unit_count: NSInteger); #[unsafe(method(collapsesLargestUnit))] #[unsafe(method_family = none)] pub fn collapsesLargestUnit(&self) -> bool; /// Setter for [`collapsesLargestUnit`][Self::collapsesLargestUnit]. #[unsafe(method(setCollapsesLargestUnit:))] #[unsafe(method_family = none)] pub fn setCollapsesLargestUnit(&self, collapses_largest_unit: bool); #[unsafe(method(includesApproximationPhrase))] #[unsafe(method_family = none)] pub fn includesApproximationPhrase(&self) -> bool; /// Setter for [`includesApproximationPhrase`][Self::includesApproximationPhrase]. #[unsafe(method(setIncludesApproximationPhrase:))] #[unsafe(method_family = none)] pub fn setIncludesApproximationPhrase(&self, includes_approximation_phrase: bool); #[unsafe(method(includesTimeRemainingPhrase))] #[unsafe(method_family = none)] pub fn includesTimeRemainingPhrase(&self) -> bool; /// Setter for [`includesTimeRemainingPhrase`][Self::includesTimeRemainingPhrase]. #[unsafe(method(setIncludesTimeRemainingPhrase:))] #[unsafe(method_family = none)] pub fn setIncludesTimeRemainingPhrase(&self, includes_time_remaining_phrase: bool); #[unsafe(method(formattingContext))] #[unsafe(method_family = none)] pub fn formattingContext(&self) -> NSFormattingContext; /// Setter for [`formattingContext`][Self::formattingContext]. #[unsafe(method(setFormattingContext:))] #[unsafe(method_family = none)] pub fn setFormattingContext(&self, formatting_context: NSFormattingContext); #[cfg(feature = "NSString")] /// # Safety /// /// `obj` should be of the correct type. #[unsafe(method(getObjectValue:forString:errorDescription:))] #[unsafe(method_family = none)] pub unsafe fn getObjectValue_forString_errorDescription( &self, obj: Option<&mut Option>>, string: &NSString, error: Option<&mut Option>>, ) -> bool; ); } /// Methods declared on superclass `NSObject`. #[cfg(feature = "NSFormatter")] impl NSDateComponentsFormatter { extern_methods!( #[unsafe(method(init))] #[unsafe(method_family = init)] pub fn init(this: Allocated) -> Retained; #[unsafe(method(new))] #[unsafe(method_family = new)] pub fn new() -> Retained; ); } #[cfg(feature = "NSFormatter")] impl DefaultRetained for NSDateComponentsFormatter { #[inline] fn default_retained() -> Retained { Self::new() } }