objc2_foundation/generated/
NSDateIntervalFormatter.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6
7use crate::*;
8
9/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsdateintervalformatterstyle?language=objc)
10// NS_ENUM
11#[repr(transparent)]
12#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
13pub struct NSDateIntervalFormatterStyle(pub NSUInteger);
14impl NSDateIntervalFormatterStyle {
15    #[doc(alias = "NSDateIntervalFormatterNoStyle")]
16    pub const NoStyle: Self = Self(0);
17    #[doc(alias = "NSDateIntervalFormatterShortStyle")]
18    pub const ShortStyle: Self = Self(1);
19    #[doc(alias = "NSDateIntervalFormatterMediumStyle")]
20    pub const MediumStyle: Self = Self(2);
21    #[doc(alias = "NSDateIntervalFormatterLongStyle")]
22    pub const LongStyle: Self = Self(3);
23    #[doc(alias = "NSDateIntervalFormatterFullStyle")]
24    pub const FullStyle: Self = Self(4);
25}
26
27unsafe impl Encode for NSDateIntervalFormatterStyle {
28    const ENCODING: Encoding = NSUInteger::ENCODING;
29}
30
31unsafe impl RefEncode for NSDateIntervalFormatterStyle {
32    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
33}
34
35extern_class!(
36    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsdateintervalformatter?language=objc)
37    #[unsafe(super(NSFormatter, NSObject))]
38    #[derive(Debug, PartialEq, Eq, Hash)]
39    #[cfg(feature = "NSFormatter")]
40    pub struct NSDateIntervalFormatter;
41);
42
43#[cfg(feature = "NSFormatter")]
44unsafe impl Send for NSDateIntervalFormatter {}
45
46#[cfg(feature = "NSFormatter")]
47unsafe impl Sync for NSDateIntervalFormatter {}
48
49#[cfg(all(feature = "NSFormatter", feature = "NSObject"))]
50extern_conformance!(
51    unsafe impl NSCoding for NSDateIntervalFormatter {}
52);
53
54#[cfg(all(feature = "NSFormatter", feature = "NSObject"))]
55extern_conformance!(
56    unsafe impl NSCopying for NSDateIntervalFormatter {}
57);
58
59#[cfg(all(feature = "NSFormatter", feature = "NSObject"))]
60unsafe impl CopyingHelper for NSDateIntervalFormatter {
61    type Result = Self;
62}
63
64#[cfg(feature = "NSFormatter")]
65extern_conformance!(
66    unsafe impl NSObjectProtocol for NSDateIntervalFormatter {}
67);
68
69#[cfg(feature = "NSFormatter")]
70impl NSDateIntervalFormatter {
71    extern_methods!(
72        #[cfg(feature = "NSLocale")]
73        #[unsafe(method(locale))]
74        #[unsafe(method_family = none)]
75        pub fn locale(&self) -> Retained<NSLocale>;
76
77        #[cfg(feature = "NSLocale")]
78        /// Setter for [`locale`][Self::locale].
79        ///
80        /// This is [copied][crate::NSCopying::copy] when set.
81        #[unsafe(method(setLocale:))]
82        #[unsafe(method_family = none)]
83        pub fn setLocale(&self, locale: Option<&NSLocale>);
84
85        #[cfg(feature = "NSCalendar")]
86        #[unsafe(method(calendar))]
87        #[unsafe(method_family = none)]
88        pub fn calendar(&self) -> Retained<NSCalendar>;
89
90        #[cfg(feature = "NSCalendar")]
91        /// Setter for [`calendar`][Self::calendar].
92        ///
93        /// This is [copied][crate::NSCopying::copy] when set.
94        #[unsafe(method(setCalendar:))]
95        #[unsafe(method_family = none)]
96        pub fn setCalendar(&self, calendar: Option<&NSCalendar>);
97
98        #[cfg(feature = "NSTimeZone")]
99        #[unsafe(method(timeZone))]
100        #[unsafe(method_family = none)]
101        pub fn timeZone(&self) -> Retained<NSTimeZone>;
102
103        #[cfg(feature = "NSTimeZone")]
104        /// Setter for [`timeZone`][Self::timeZone].
105        ///
106        /// This is [copied][crate::NSCopying::copy] when set.
107        #[unsafe(method(setTimeZone:))]
108        #[unsafe(method_family = none)]
109        pub fn setTimeZone(&self, time_zone: Option<&NSTimeZone>);
110
111        #[cfg(feature = "NSString")]
112        #[unsafe(method(dateTemplate))]
113        #[unsafe(method_family = none)]
114        pub fn dateTemplate(&self) -> Retained<NSString>;
115
116        #[cfg(feature = "NSString")]
117        /// Setter for [`dateTemplate`][Self::dateTemplate].
118        ///
119        /// This is [copied][crate::NSCopying::copy] when set.
120        #[unsafe(method(setDateTemplate:))]
121        #[unsafe(method_family = none)]
122        pub fn setDateTemplate(&self, date_template: Option<&NSString>);
123
124        #[unsafe(method(dateStyle))]
125        #[unsafe(method_family = none)]
126        pub fn dateStyle(&self) -> NSDateIntervalFormatterStyle;
127
128        /// Setter for [`dateStyle`][Self::dateStyle].
129        #[unsafe(method(setDateStyle:))]
130        #[unsafe(method_family = none)]
131        pub fn setDateStyle(&self, date_style: NSDateIntervalFormatterStyle);
132
133        #[unsafe(method(timeStyle))]
134        #[unsafe(method_family = none)]
135        pub fn timeStyle(&self) -> NSDateIntervalFormatterStyle;
136
137        /// Setter for [`timeStyle`][Self::timeStyle].
138        #[unsafe(method(setTimeStyle:))]
139        #[unsafe(method_family = none)]
140        pub fn setTimeStyle(&self, time_style: NSDateIntervalFormatterStyle);
141
142        #[cfg(all(feature = "NSDate", feature = "NSString"))]
143        #[unsafe(method(stringFromDate:toDate:))]
144        #[unsafe(method_family = none)]
145        pub fn stringFromDate_toDate(
146            &self,
147            from_date: &NSDate,
148            to_date: &NSDate,
149        ) -> Retained<NSString>;
150
151        #[cfg(all(feature = "NSDateInterval", feature = "NSString"))]
152        #[unsafe(method(stringFromDateInterval:))]
153        #[unsafe(method_family = none)]
154        pub fn stringFromDateInterval(
155            &self,
156            date_interval: &NSDateInterval,
157        ) -> Option<Retained<NSString>>;
158    );
159}
160
161/// Methods declared on superclass `NSObject`.
162#[cfg(feature = "NSFormatter")]
163impl NSDateIntervalFormatter {
164    extern_methods!(
165        #[unsafe(method(init))]
166        #[unsafe(method_family = init)]
167        pub fn init(this: Allocated<Self>) -> Retained<Self>;
168
169        #[unsafe(method(new))]
170        #[unsafe(method_family = new)]
171        pub fn new() -> Retained<Self>;
172    );
173}
174
175#[cfg(feature = "NSFormatter")]
176impl DefaultRetained for NSDateIntervalFormatter {
177    #[inline]
178    fn default_retained() -> Retained<Self> {
179        Self::new()
180    }
181}