use objc::{msg_send, sel, sel_impl};
use crate::{
foundation::NSString,
object,
objective_c_runtime::{
macros::interface_impl,
traits::{FromId, PNSObject},
},
};
object! {
unsafe pub struct CNPostalAddress;
}
#[interface_impl(NSObject)]
impl CNPostalAddress {
#[property]
pub fn street(&self) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), street]) }
}
#[property]
pub fn city(&self) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), city]) }
}
#[property]
pub fn state(&self) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), state]) }
}
#[property]
pub fn postal_code(&self) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), postalCode]) }
}
#[property]
pub fn country(&self) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), country]) }
}
#[property]
pub fn iso_country_code(&self) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), ISOCountryCode]) }
}
#[property]
pub fn sub_administrative_area(&self) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), subAdministrativeArea]) }
}
#[property]
pub fn sub_locality(&self) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), subLocality]) }
}
pub fn localized_string_for_key(key: NSString) -> NSString {
unsafe { NSString::from_id(msg_send![self.m_self(), localizedStringForKey: key]) }
}
}