objc2_foundation/generated/
NSMeasurementFormatter.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/nsmeasurementformatterunitoptions?language=objc)
10// NS_OPTIONS
11#[repr(transparent)]
12#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
13pub struct NSMeasurementFormatterUnitOptions(pub NSUInteger);
14bitflags::bitflags! {
15    impl NSMeasurementFormatterUnitOptions: NSUInteger {
16        #[doc(alias = "NSMeasurementFormatterUnitOptionsProvidedUnit")]
17        const ProvidedUnit = 1<<0;
18        #[doc(alias = "NSMeasurementFormatterUnitOptionsNaturalScale")]
19        const NaturalScale = 1<<1;
20        #[doc(alias = "NSMeasurementFormatterUnitOptionsTemperatureWithoutUnit")]
21        const TemperatureWithoutUnit = 1<<2;
22    }
23}
24
25unsafe impl Encode for NSMeasurementFormatterUnitOptions {
26    const ENCODING: Encoding = NSUInteger::ENCODING;
27}
28
29unsafe impl RefEncode for NSMeasurementFormatterUnitOptions {
30    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
31}
32
33extern_class!(
34    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsmeasurementformatter?language=objc)
35    #[unsafe(super(NSFormatter, NSObject))]
36    #[derive(Debug, PartialEq, Eq, Hash)]
37    #[cfg(feature = "NSFormatter")]
38    pub struct NSMeasurementFormatter;
39);
40
41#[cfg(all(feature = "NSFormatter", feature = "NSObject"))]
42extern_conformance!(
43    unsafe impl NSCoding for NSMeasurementFormatter {}
44);
45
46#[cfg(all(feature = "NSFormatter", feature = "NSObject"))]
47extern_conformance!(
48    unsafe impl NSCopying for NSMeasurementFormatter {}
49);
50
51#[cfg(all(feature = "NSFormatter", feature = "NSObject"))]
52unsafe impl CopyingHelper for NSMeasurementFormatter {
53    type Result = Self;
54}
55
56#[cfg(feature = "NSFormatter")]
57extern_conformance!(
58    unsafe impl NSObjectProtocol for NSMeasurementFormatter {}
59);
60
61#[cfg(all(feature = "NSFormatter", feature = "NSObject"))]
62extern_conformance!(
63    unsafe impl NSSecureCoding for NSMeasurementFormatter {}
64);
65
66#[cfg(feature = "NSFormatter")]
67impl NSMeasurementFormatter {
68    extern_methods!(
69        #[unsafe(method(unitOptions))]
70        #[unsafe(method_family = none)]
71        pub fn unitOptions(&self) -> NSMeasurementFormatterUnitOptions;
72
73        /// Setter for [`unitOptions`][Self::unitOptions].
74        #[unsafe(method(setUnitOptions:))]
75        #[unsafe(method_family = none)]
76        pub fn setUnitOptions(&self, unit_options: NSMeasurementFormatterUnitOptions);
77
78        #[unsafe(method(unitStyle))]
79        #[unsafe(method_family = none)]
80        pub fn unitStyle(&self) -> NSFormattingUnitStyle;
81
82        /// Setter for [`unitStyle`][Self::unitStyle].
83        #[unsafe(method(setUnitStyle:))]
84        #[unsafe(method_family = none)]
85        pub fn setUnitStyle(&self, unit_style: NSFormattingUnitStyle);
86
87        #[cfg(feature = "NSLocale")]
88        #[unsafe(method(locale))]
89        #[unsafe(method_family = none)]
90        pub fn locale(&self) -> Retained<NSLocale>;
91
92        #[cfg(feature = "NSLocale")]
93        /// Setter for [`locale`][Self::locale].
94        ///
95        /// This is [copied][crate::NSCopying::copy] when set.
96        #[unsafe(method(setLocale:))]
97        #[unsafe(method_family = none)]
98        pub fn setLocale(&self, locale: Option<&NSLocale>);
99
100        #[cfg(feature = "NSNumberFormatter")]
101        #[unsafe(method(numberFormatter))]
102        #[unsafe(method_family = none)]
103        pub fn numberFormatter(&self) -> Retained<NSNumberFormatter>;
104
105        #[cfg(feature = "NSNumberFormatter")]
106        /// Setter for [`numberFormatter`][Self::numberFormatter].
107        ///
108        /// This is [copied][crate::NSCopying::copy] when set.
109        #[unsafe(method(setNumberFormatter:))]
110        #[unsafe(method_family = none)]
111        pub fn setNumberFormatter(&self, number_formatter: Option<&NSNumberFormatter>);
112
113        #[cfg(all(feature = "NSMeasurement", feature = "NSString", feature = "NSUnit"))]
114        /// # Safety
115        ///
116        /// `measurement` generic should be bound by `AsRef<NSUnit>`.
117        #[unsafe(method(stringFromMeasurement:))]
118        #[unsafe(method_family = none)]
119        pub unsafe fn stringFromMeasurement(
120            &self,
121            measurement: &NSMeasurement,
122        ) -> Retained<NSString>;
123
124        #[cfg(all(feature = "NSString", feature = "NSUnit"))]
125        #[unsafe(method(stringFromUnit:))]
126        #[unsafe(method_family = none)]
127        pub fn stringFromUnit(&self, unit: &NSUnit) -> Retained<NSString>;
128    );
129}
130
131/// Methods declared on superclass `NSObject`.
132#[cfg(feature = "NSFormatter")]
133impl NSMeasurementFormatter {
134    extern_methods!(
135        #[unsafe(method(init))]
136        #[unsafe(method_family = init)]
137        pub fn init(this: Allocated<Self>) -> Retained<Self>;
138
139        #[unsafe(method(new))]
140        #[unsafe(method_family = new)]
141        pub fn new() -> Retained<Self>;
142    );
143}
144
145#[cfg(feature = "NSFormatter")]
146impl DefaultRetained for NSMeasurementFormatter {
147    #[inline]
148    fn default_retained() -> Retained<Self> {
149        Self::new()
150    }
151}