use objc2::__framework_prelude::*;
use crate::*;
#[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);
}
#[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!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "NSFormatter")]
pub struct NSDateComponentsFormatter;
#[cfg(feature = "NSFormatter")]
unsafe impl ClassType for NSDateComponentsFormatter {
#[inherits(NSObject)]
type Super = NSFormatter;
type Mutability = InteriorMutable;
}
);
#[cfg(feature = "NSFormatter")]
unsafe impl Send for NSDateComponentsFormatter {}
#[cfg(feature = "NSFormatter")]
unsafe impl Sync for NSDateComponentsFormatter {}
#[cfg(all(feature = "NSFormatter", feature = "NSObject"))]
unsafe impl NSCoding for NSDateComponentsFormatter {}
#[cfg(all(feature = "NSFormatter", feature = "NSObject"))]
unsafe impl NSCopying for NSDateComponentsFormatter {}
#[cfg(feature = "NSFormatter")]
unsafe impl NSObjectProtocol for NSDateComponentsFormatter {}
extern_methods!(
#[cfg(feature = "NSFormatter")]
unsafe impl NSDateComponentsFormatter {
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Other stringForObjectValue:)]
pub unsafe fn stringForObjectValue(
&self,
obj: Option<&AnyObject>,
) -> Option<Retained<NSString>>;
#[cfg(all(feature = "NSCalendar", feature = "NSString"))]
#[method_id(@__retain_semantics Other stringFromDateComponents:)]
pub unsafe fn stringFromDateComponents(
&self,
components: &NSDateComponents,
) -> Option<Retained<NSString>>;
#[cfg(all(feature = "NSDate", feature = "NSString"))]
#[method_id(@__retain_semantics Other stringFromDate:toDate:)]
pub unsafe fn stringFromDate_toDate(
&self,
start_date: &NSDate,
end_date: &NSDate,
) -> Option<Retained<NSString>>;
#[cfg(all(feature = "NSDate", feature = "NSString"))]
#[method_id(@__retain_semantics Other stringFromTimeInterval:)]
pub unsafe fn stringFromTimeInterval(
&self,
ti: NSTimeInterval,
) -> Option<Retained<NSString>>;
#[cfg(all(feature = "NSCalendar", feature = "NSString"))]
#[method_id(@__retain_semantics Other localizedStringFromDateComponents:unitsStyle:)]
pub unsafe fn localizedStringFromDateComponents_unitsStyle(
components: &NSDateComponents,
units_style: NSDateComponentsFormatterUnitsStyle,
) -> Option<Retained<NSString>>;
#[method(unitsStyle)]
pub unsafe fn unitsStyle(&self) -> NSDateComponentsFormatterUnitsStyle;
#[method(setUnitsStyle:)]
pub unsafe fn setUnitsStyle(&self, units_style: NSDateComponentsFormatterUnitsStyle);
#[cfg(feature = "NSCalendar")]
#[method(allowedUnits)]
pub unsafe fn allowedUnits(&self) -> NSCalendarUnit;
#[cfg(feature = "NSCalendar")]
#[method(setAllowedUnits:)]
pub unsafe fn setAllowedUnits(&self, allowed_units: NSCalendarUnit);
#[method(zeroFormattingBehavior)]
pub unsafe fn zeroFormattingBehavior(
&self,
) -> NSDateComponentsFormatterZeroFormattingBehavior;
#[method(setZeroFormattingBehavior:)]
pub unsafe fn setZeroFormattingBehavior(
&self,
zero_formatting_behavior: NSDateComponentsFormatterZeroFormattingBehavior,
);
#[cfg(feature = "NSCalendar")]
#[method_id(@__retain_semantics Other calendar)]
pub unsafe fn calendar(&self) -> Option<Retained<NSCalendar>>;
#[cfg(feature = "NSCalendar")]
#[method(setCalendar:)]
pub unsafe fn setCalendar(&self, calendar: Option<&NSCalendar>);
#[cfg(feature = "NSDate")]
#[method_id(@__retain_semantics Other referenceDate)]
pub unsafe fn referenceDate(&self) -> Option<Retained<NSDate>>;
#[cfg(feature = "NSDate")]
#[method(setReferenceDate:)]
pub unsafe fn setReferenceDate(&self, reference_date: Option<&NSDate>);
#[method(allowsFractionalUnits)]
pub unsafe fn allowsFractionalUnits(&self) -> bool;
#[method(setAllowsFractionalUnits:)]
pub unsafe fn setAllowsFractionalUnits(&self, allows_fractional_units: bool);
#[method(maximumUnitCount)]
pub unsafe fn maximumUnitCount(&self) -> NSInteger;
#[method(setMaximumUnitCount:)]
pub unsafe fn setMaximumUnitCount(&self, maximum_unit_count: NSInteger);
#[method(collapsesLargestUnit)]
pub unsafe fn collapsesLargestUnit(&self) -> bool;
#[method(setCollapsesLargestUnit:)]
pub unsafe fn setCollapsesLargestUnit(&self, collapses_largest_unit: bool);
#[method(includesApproximationPhrase)]
pub unsafe fn includesApproximationPhrase(&self) -> bool;
#[method(setIncludesApproximationPhrase:)]
pub unsafe fn setIncludesApproximationPhrase(&self, includes_approximation_phrase: bool);
#[method(includesTimeRemainingPhrase)]
pub unsafe fn includesTimeRemainingPhrase(&self) -> bool;
#[method(setIncludesTimeRemainingPhrase:)]
pub unsafe fn setIncludesTimeRemainingPhrase(&self, includes_time_remaining_phrase: bool);
#[method(formattingContext)]
pub unsafe fn formattingContext(&self) -> NSFormattingContext;
#[method(setFormattingContext:)]
pub unsafe fn setFormattingContext(&self, formatting_context: NSFormattingContext);
#[cfg(feature = "NSString")]
#[method(getObjectValue:forString:errorDescription:)]
pub unsafe fn getObjectValue_forString_errorDescription(
&self,
obj: Option<&mut Option<Retained<AnyObject>>>,
string: &NSString,
error: Option<&mut Option<Retained<NSString>>>,
) -> bool;
}
);
extern_methods!(
#[cfg(feature = "NSFormatter")]
unsafe impl NSDateComponentsFormatter {
#[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>;
}
);