use crate::common::*;
use crate::Foundation::*;
ns_enum!(
#[underlying(NSInteger)]
pub enum NSPersonNameComponentsFormatterStyle {
NSPersonNameComponentsFormatterStyleDefault = 0,
NSPersonNameComponentsFormatterStyleShort = 1,
NSPersonNameComponentsFormatterStyleMedium = 2,
NSPersonNameComponentsFormatterStyleLong = 3,
NSPersonNameComponentsFormatterStyleAbbreviated = 4,
}
);
ns_options!(
#[underlying(NSUInteger)]
pub enum NSPersonNameComponentsFormatterOptions {
NSPersonNameComponentsFormatterPhonetic = 1 << 1,
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSPersonNameComponentsFormatter;
unsafe impl ClassType for NSPersonNameComponentsFormatter {
#[inherits(NSObject)]
type Super = NSFormatter;
}
);
extern_methods!(
unsafe impl NSPersonNameComponentsFormatter {
#[method(style)]
pub unsafe fn style(&self) -> NSPersonNameComponentsFormatterStyle;
#[method(setStyle:)]
pub unsafe fn setStyle(&self, style: NSPersonNameComponentsFormatterStyle);
#[method(isPhonetic)]
pub unsafe fn isPhonetic(&self) -> bool;
#[method(setPhonetic:)]
pub unsafe fn setPhonetic(&self, phonetic: bool);
#[method_id(@__retain_semantics Other locale)]
pub unsafe fn locale(&self) -> Id<NSLocale, Shared>;
#[method(setLocale:)]
pub unsafe fn setLocale(&self, locale: Option<&NSLocale>);
#[method_id(@__retain_semantics Other localizedStringFromPersonNameComponents:style:options:)]
pub unsafe fn localizedStringFromPersonNameComponents_style_options(
components: &NSPersonNameComponents,
nameFormatStyle: NSPersonNameComponentsFormatterStyle,
nameOptions: NSPersonNameComponentsFormatterOptions,
) -> Id<NSString, Shared>;
#[method_id(@__retain_semantics Other stringFromPersonNameComponents:)]
pub unsafe fn stringFromPersonNameComponents(
&self,
components: &NSPersonNameComponents,
) -> Id<NSString, Shared>;
#[method_id(@__retain_semantics Other annotatedStringFromPersonNameComponents:)]
pub unsafe fn annotatedStringFromPersonNameComponents(
&self,
components: &NSPersonNameComponents,
) -> Id<NSAttributedString, Shared>;
#[method_id(@__retain_semantics Other personNameComponentsFromString:)]
pub unsafe fn personNameComponentsFromString(
&self,
string: &NSString,
) -> Option<Id<NSPersonNameComponents, Shared>>;
#[method(getObjectValue:forString:errorDescription:)]
pub unsafe fn getObjectValue_forString_errorDescription(
&self,
obj: *mut *mut Object,
string: &NSString,
error: *mut *mut NSString,
) -> bool;
}
);
extern_static!(NSPersonNameComponentKey: &'static NSString);
extern_static!(NSPersonNameComponentGivenName: &'static NSString);
extern_static!(NSPersonNameComponentFamilyName: &'static NSString);
extern_static!(NSPersonNameComponentMiddleName: &'static NSString);
extern_static!(NSPersonNameComponentPrefix: &'static NSString);
extern_static!(NSPersonNameComponentSuffix: &'static NSString);
extern_static!(NSPersonNameComponentNickname: &'static NSString);
extern_static!(NSPersonNameComponentDelimiter: &'static NSString);