Source code

Revision control

Copy as Markdown

Other Tools

//! 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::*;
// 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);
}
// 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!(
#[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<Retained<NSString>>;
#[cfg(all(feature = "NSCalendar", feature = "NSString"))]
#[unsafe(method(stringFromDateComponents:))]
#[unsafe(method_family = none)]
pub fn stringFromDateComponents(
&self,
components: &NSDateComponents,
) -> Option<Retained<NSString>>;
#[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<Retained<NSString>>;
#[cfg(all(feature = "NSDate", feature = "NSString"))]
#[unsafe(method(stringFromTimeInterval:))]
#[unsafe(method_family = none)]
pub fn stringFromTimeInterval(&self, ti: NSTimeInterval) -> Option<Retained<NSString>>;
#[cfg(all(feature = "NSCalendar", feature = "NSString"))]
#[unsafe(method(localizedStringFromDateComponents:unitsStyle:))]
#[unsafe(method_family = none)]
pub fn localizedStringFromDateComponents_unitsStyle(
components: &NSDateComponents,
units_style: NSDateComponentsFormatterUnitsStyle,
) -> Option<Retained<NSString>>;
#[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<Retained<NSCalendar>>;
#[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<Retained<NSDate>>;
#[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<Retained<AnyObject>>>,
string: &NSString,
error: Option<&mut Option<Retained<NSString>>>,
) -> 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<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new() -> Retained<Self>;
);
}
#[cfg(feature = "NSFormatter")]
impl DefaultRetained for NSDateComponentsFormatter {
#[inline]
fn default_retained() -> Retained<Self> {
Self::new()
}
}