objc2_foundation/generated/
NSDateComponentsFormatter.rs1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6
7use crate::*;
8
9#[repr(transparent)]
12#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
13pub struct NSDateComponentsFormatterUnitsStyle(pub NSInteger);
14impl NSDateComponentsFormatterUnitsStyle {
15 #[doc(alias = "NSDateComponentsFormatterUnitsStylePositional")]
16 pub const Positional: Self = Self(0);
17 #[doc(alias = "NSDateComponentsFormatterUnitsStyleAbbreviated")]
18 pub const Abbreviated: Self = Self(1);
19 #[doc(alias = "NSDateComponentsFormatterUnitsStyleShort")]
20 pub const Short: Self = Self(2);
21 #[doc(alias = "NSDateComponentsFormatterUnitsStyleFull")]
22 pub const Full: Self = Self(3);
23 #[doc(alias = "NSDateComponentsFormatterUnitsStyleSpellOut")]
24 pub const SpellOut: Self = Self(4);
25 #[doc(alias = "NSDateComponentsFormatterUnitsStyleBrief")]
26 pub const Brief: Self = Self(5);
27}
28
29unsafe impl Encode for NSDateComponentsFormatterUnitsStyle {
30 const ENCODING: Encoding = NSInteger::ENCODING;
31}
32
33unsafe impl RefEncode for NSDateComponentsFormatterUnitsStyle {
34 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
35}
36
37#[repr(transparent)]
40#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
41pub struct NSDateComponentsFormatterZeroFormattingBehavior(pub NSUInteger);
42bitflags::bitflags! {
43 impl NSDateComponentsFormatterZeroFormattingBehavior: NSUInteger {
44 #[doc(alias = "NSDateComponentsFormatterZeroFormattingBehaviorNone")]
45 const None = 0;
46 #[doc(alias = "NSDateComponentsFormatterZeroFormattingBehaviorDefault")]
47 const Default = 1<<0;
48 #[doc(alias = "NSDateComponentsFormatterZeroFormattingBehaviorDropLeading")]
49 const DropLeading = 1<<1;
50 #[doc(alias = "NSDateComponentsFormatterZeroFormattingBehaviorDropMiddle")]
51 const DropMiddle = 1<<2;
52 #[doc(alias = "NSDateComponentsFormatterZeroFormattingBehaviorDropTrailing")]
53 const DropTrailing = 1<<3;
54 #[doc(alias = "NSDateComponentsFormatterZeroFormattingBehaviorDropAll")]
55 const DropAll = NSDateComponentsFormatterZeroFormattingBehavior::DropLeading.0|NSDateComponentsFormatterZeroFormattingBehavior::DropMiddle.0|NSDateComponentsFormatterZeroFormattingBehavior::DropTrailing.0;
56 #[doc(alias = "NSDateComponentsFormatterZeroFormattingBehaviorPad")]
57 const Pad = 1<<16;
58 }
59}
60
61unsafe impl Encode for NSDateComponentsFormatterZeroFormattingBehavior {
62 const ENCODING: Encoding = NSUInteger::ENCODING;
63}
64
65unsafe impl RefEncode for NSDateComponentsFormatterZeroFormattingBehavior {
66 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
67}
68
69extern_class!(
70 #[unsafe(super(NSFormatter, NSObject))]
72 #[derive(Debug, PartialEq, Eq, Hash)]
73 #[cfg(feature = "NSFormatter")]
74 pub struct NSDateComponentsFormatter;
75);
76
77#[cfg(feature = "NSFormatter")]
78unsafe impl Send for NSDateComponentsFormatter {}
79
80#[cfg(feature = "NSFormatter")]
81unsafe impl Sync for NSDateComponentsFormatter {}
82
83#[cfg(all(feature = "NSFormatter", feature = "NSObject"))]
84extern_conformance!(
85 unsafe impl NSCoding for NSDateComponentsFormatter {}
86);
87
88#[cfg(all(feature = "NSFormatter", feature = "NSObject"))]
89extern_conformance!(
90 unsafe impl NSCopying for NSDateComponentsFormatter {}
91);
92
93#[cfg(all(feature = "NSFormatter", feature = "NSObject"))]
94unsafe impl CopyingHelper for NSDateComponentsFormatter {
95 type Result = Self;
96}
97
98#[cfg(feature = "NSFormatter")]
99extern_conformance!(
100 unsafe impl NSObjectProtocol for NSDateComponentsFormatter {}
101);
102
103#[cfg(feature = "NSFormatter")]
104impl NSDateComponentsFormatter {
105 extern_methods!(
106 #[cfg(feature = "NSString")]
107 #[unsafe(method(stringForObjectValue:))]
111 #[unsafe(method_family = none)]
112 pub unsafe fn stringForObjectValue(
113 &self,
114 obj: Option<&AnyObject>,
115 ) -> Option<Retained<NSString>>;
116
117 #[cfg(all(feature = "NSCalendar", feature = "NSString"))]
118 #[unsafe(method(stringFromDateComponents:))]
119 #[unsafe(method_family = none)]
120 pub fn stringFromDateComponents(
121 &self,
122 components: &NSDateComponents,
123 ) -> Option<Retained<NSString>>;
124
125 #[cfg(all(feature = "NSDate", feature = "NSString"))]
126 #[unsafe(method(stringFromDate:toDate:))]
127 #[unsafe(method_family = none)]
128 pub fn stringFromDate_toDate(
129 &self,
130 start_date: &NSDate,
131 end_date: &NSDate,
132 ) -> Option<Retained<NSString>>;
133
134 #[cfg(all(feature = "NSDate", feature = "NSString"))]
135 #[unsafe(method(stringFromTimeInterval:))]
136 #[unsafe(method_family = none)]
137 pub fn stringFromTimeInterval(&self, ti: NSTimeInterval) -> Option<Retained<NSString>>;
138
139 #[cfg(all(feature = "NSCalendar", feature = "NSString"))]
140 #[unsafe(method(localizedStringFromDateComponents:unitsStyle:))]
141 #[unsafe(method_family = none)]
142 pub fn localizedStringFromDateComponents_unitsStyle(
143 components: &NSDateComponents,
144 units_style: NSDateComponentsFormatterUnitsStyle,
145 ) -> Option<Retained<NSString>>;
146
147 #[unsafe(method(unitsStyle))]
148 #[unsafe(method_family = none)]
149 pub fn unitsStyle(&self) -> NSDateComponentsFormatterUnitsStyle;
150
151 #[unsafe(method(setUnitsStyle:))]
153 #[unsafe(method_family = none)]
154 pub fn setUnitsStyle(&self, units_style: NSDateComponentsFormatterUnitsStyle);
155
156 #[cfg(feature = "NSCalendar")]
157 #[unsafe(method(allowedUnits))]
158 #[unsafe(method_family = none)]
159 pub fn allowedUnits(&self) -> NSCalendarUnit;
160
161 #[cfg(feature = "NSCalendar")]
162 #[unsafe(method(setAllowedUnits:))]
164 #[unsafe(method_family = none)]
165 pub fn setAllowedUnits(&self, allowed_units: NSCalendarUnit);
166
167 #[unsafe(method(zeroFormattingBehavior))]
168 #[unsafe(method_family = none)]
169 pub fn zeroFormattingBehavior(&self) -> NSDateComponentsFormatterZeroFormattingBehavior;
170
171 #[unsafe(method(setZeroFormattingBehavior:))]
173 #[unsafe(method_family = none)]
174 pub fn setZeroFormattingBehavior(
175 &self,
176 zero_formatting_behavior: NSDateComponentsFormatterZeroFormattingBehavior,
177 );
178
179 #[cfg(feature = "NSCalendar")]
180 #[unsafe(method(calendar))]
181 #[unsafe(method_family = none)]
182 pub fn calendar(&self) -> Option<Retained<NSCalendar>>;
183
184 #[cfg(feature = "NSCalendar")]
185 #[unsafe(method(setCalendar:))]
189 #[unsafe(method_family = none)]
190 pub fn setCalendar(&self, calendar: Option<&NSCalendar>);
191
192 #[cfg(feature = "NSDate")]
193 #[unsafe(method(referenceDate))]
194 #[unsafe(method_family = none)]
195 pub fn referenceDate(&self) -> Option<Retained<NSDate>>;
196
197 #[cfg(feature = "NSDate")]
198 #[unsafe(method(setReferenceDate:))]
202 #[unsafe(method_family = none)]
203 pub fn setReferenceDate(&self, reference_date: Option<&NSDate>);
204
205 #[unsafe(method(allowsFractionalUnits))]
206 #[unsafe(method_family = none)]
207 pub fn allowsFractionalUnits(&self) -> bool;
208
209 #[unsafe(method(setAllowsFractionalUnits:))]
211 #[unsafe(method_family = none)]
212 pub fn setAllowsFractionalUnits(&self, allows_fractional_units: bool);
213
214 #[unsafe(method(maximumUnitCount))]
215 #[unsafe(method_family = none)]
216 pub fn maximumUnitCount(&self) -> NSInteger;
217
218 #[unsafe(method(setMaximumUnitCount:))]
220 #[unsafe(method_family = none)]
221 pub fn setMaximumUnitCount(&self, maximum_unit_count: NSInteger);
222
223 #[unsafe(method(collapsesLargestUnit))]
224 #[unsafe(method_family = none)]
225 pub fn collapsesLargestUnit(&self) -> bool;
226
227 #[unsafe(method(setCollapsesLargestUnit:))]
229 #[unsafe(method_family = none)]
230 pub fn setCollapsesLargestUnit(&self, collapses_largest_unit: bool);
231
232 #[unsafe(method(includesApproximationPhrase))]
233 #[unsafe(method_family = none)]
234 pub fn includesApproximationPhrase(&self) -> bool;
235
236 #[unsafe(method(setIncludesApproximationPhrase:))]
238 #[unsafe(method_family = none)]
239 pub fn setIncludesApproximationPhrase(&self, includes_approximation_phrase: bool);
240
241 #[unsafe(method(includesTimeRemainingPhrase))]
242 #[unsafe(method_family = none)]
243 pub fn includesTimeRemainingPhrase(&self) -> bool;
244
245 #[unsafe(method(setIncludesTimeRemainingPhrase:))]
247 #[unsafe(method_family = none)]
248 pub fn setIncludesTimeRemainingPhrase(&self, includes_time_remaining_phrase: bool);
249
250 #[unsafe(method(formattingContext))]
251 #[unsafe(method_family = none)]
252 pub fn formattingContext(&self) -> NSFormattingContext;
253
254 #[unsafe(method(setFormattingContext:))]
256 #[unsafe(method_family = none)]
257 pub fn setFormattingContext(&self, formatting_context: NSFormattingContext);
258
259 #[cfg(feature = "NSString")]
260 #[unsafe(method(getObjectValue:forString:errorDescription:))]
264 #[unsafe(method_family = none)]
265 pub unsafe fn getObjectValue_forString_errorDescription(
266 &self,
267 obj: Option<&mut Option<Retained<AnyObject>>>,
268 string: &NSString,
269 error: Option<&mut Option<Retained<NSString>>>,
270 ) -> bool;
271 );
272}
273
274#[cfg(feature = "NSFormatter")]
276impl NSDateComponentsFormatter {
277 extern_methods!(
278 #[unsafe(method(init))]
279 #[unsafe(method_family = init)]
280 pub fn init(this: Allocated<Self>) -> Retained<Self>;
281
282 #[unsafe(method(new))]
283 #[unsafe(method_family = new)]
284 pub fn new() -> Retained<Self>;
285 );
286}
287
288#[cfg(feature = "NSFormatter")]
289impl DefaultRetained for NSDateComponentsFormatter {
290 #[inline]
291 fn default_retained() -> Retained<Self> {
292 Self::new()
293 }
294}