pub struct CBIdentity { /* private fields */ }CBIdentity only.Expand description
A CBIdentity object is used for accessing the attributes of an
identity stored in an identity authority. You can use an identity object
for finding identities, and storing them in an access control list
(ACL). If you need to edit these attributes, take advantage of the
CSIdentity class in Core Services.
You can obtain a CBIdentity object from one of the following class
factory methods: CBIdentity/identityWithName:authority:,
CBIdentity/identityWithUUIDString:authority:,
CBIdentity/identityWithPersistentReference:, or
CBIdentity/identityWithCSIdentity:.
A CBIdentity object has methods to support for interoperability with
the Core Services Identity API. Send CBIdentity/CSIdentity to your
CBIdentity object to return an opaque object for use in the Core
Services Identity API. Similarly, call
CBIdentity/identityWithCSIdentity: to use an Core Services Identity
opaque object in the Collaboration framework.
There are two subclasses of CBIdentity: CBGroupIdentity and
CBUserIdentity. If you are working specifically with a group identity,
use CBGroupIdentity. Similarly, if you are working with a user
identity, use CBUserIdentity.
See also Apple’s documentation
Implementations§
Source§impl CBIdentity
impl CBIdentity
Available on crate feature CBIdentityAuthority only.
CBIdentityAuthority only.Returns the identity object with the given name from the specified identity authority.
The name is compared against all valid identity names, including full names, short names, email addresses, and aliases.
-
Parameters:
-
name: The name of the identity.
-
authority: The identity authority to search.
-
Returns: The identity object, or
nilif no identity is found with the specified name.
CBIdentityAuthority only.👎Deprecated: Use +identityWithUniqueIdentifier:authority: instead.Available on crate feature CBIdentityAuthority only.
CBIdentityAuthority only.Returns the identity object with the given UUID from the specified identity authority.
-
Parameters:
-
uuid: The UUID of the identity you are searching for.
-
authority: The identity authority to search.
-
Returns: The identity object, or
nilif no identity is found with the matching criteria.
Sourcepub unsafe fn identityWithPersistentReference(
data: &NSData,
) -> Option<Retained<CBIdentity>>
pub unsafe fn identityWithPersistentReference( data: &NSData, ) -> Option<Retained<CBIdentity>>
Returns the identity object matching the persistent reference data.
A persistent reference is an opaque data object suitable for persistent storage.
-
Parameters:
-
data: The persistent data object that refers to an identity.
-
Returns: The identity object matching the persistent data object, or
nilif the identity is not found.
Sourcepub unsafe fn identityWithCSIdentity(
cs_identity: &CSIdentity,
) -> Retained<CBIdentity>
Available on crate feature objc2-core-services only.
pub unsafe fn identityWithCSIdentity( cs_identity: &CSIdentity, ) -> Retained<CBIdentity>
objc2-core-services only.Returns an identity object created from the specified Core Services Identity opaque object.
This method is used for interoperability with the Core Services Identity API.
-
Parameters:
-
csIdentity: The Core Services Identity opaque object.
-
Returns: The identity object for use with the Collaboration framework.
Available on crate feature CBIdentityAuthority only.
CBIdentityAuthority only.Returns the identity authority where the identity is stored.
- Returns: The identity authority where the identity is stored.
pub unsafe fn uniqueIdentifier(&self) -> Retained<NSUUID>
Sourcepub unsafe fn UUIDString(&self) -> Retained<NSString>
👎Deprecated: Use the uniqueIdentifier property instead.
pub unsafe fn UUIDString(&self) -> Retained<NSString>
Returns the UUID of the identity as a string.
The UUID string is generated so it is unique across all identity
authorities. When storing ACLs, one method is to store the UUID of each
identity. However, it is recommended that you use a persistent data object
instead (see CBIdentity/persistentReference).
- Returns: The UUID string of the identity.
Sourcepub unsafe fn fullName(&self) -> Retained<NSString>
pub unsafe fn fullName(&self) -> Retained<NSString>
Returns the full name of the identity.
- Returns: The full name for the identity.
Sourcepub unsafe fn posixName(&self) -> Retained<NSString>
pub unsafe fn posixName(&self) -> Retained<NSString>
Returns the POSIX name of the identity.
The POSIX name is also referred to as the “short name” for an identity. It can only contain the characters A-Z, a-z, 0-9, -, _, ., and .
- Returns: The POSIX name of the identity.
Sourcepub unsafe fn aliases(&self) -> Retained<NSArray<NSString>>
pub unsafe fn aliases(&self) -> Retained<NSArray<NSString>>
Returns an array of aliases (alternate names) for the identity.
An identity can have zero or more aliases. Like the full and short names, two identities cannot share an alias.
- Returns: An array of
NSStringobjects containing the alternate names for the identity.
Sourcepub unsafe fn emailAddress(&self) -> Option<Retained<NSString>>
pub unsafe fn emailAddress(&self) -> Option<Retained<NSString>>
Returns the email address of an identity.
- Returns: The email address of an identity or
nilif none exists.
Sourcepub unsafe fn image(&self) -> Option<Retained<NSImage>>
Available on crate feature objc2-app-kit only.
pub unsafe fn image(&self) -> Option<Retained<NSImage>>
objc2-app-kit only.Returns the image associated with an identity.
- Returns: The image associated with an identity, or
nilif none exists.
Sourcepub unsafe fn persistentReference(&self) -> Option<Retained<NSData>>
pub unsafe fn persistentReference(&self) -> Option<Retained<NSData>>
Returns a persistent reference to store a reference to an identity.
A persistent reference data object is an object generated from an identity. Persistent data objects can be written to and read from a file, making them extremely useful for storing identities in an ACL.
- Returns: A data object that uniquely references an identity.
Sourcepub unsafe fn isHidden(&self) -> bool
pub unsafe fn isHidden(&self) -> bool
Returns a Boolean value indicating the state of the identity’s hidden property.
A hidden identity does not show up in the Identity Picker. A hidden identity refers
to system identities such as root, www, and wheel.
- Returns: <doc ://com.apple.documentation/documentation/objectivec/yes> if the identity is hidden; <doc ://com.apple.documentation/documentation/objectivec/no> if it is not.
Sourcepub unsafe fn isMemberOfGroup(&self, group: &CBGroupIdentity) -> bool
pub unsafe fn isMemberOfGroup(&self, group: &CBGroupIdentity) -> bool
Returns a Boolean value indicating whether the identity is a member of the specified group.
-
Parameters:
-
group: The group to check for membership.
-
Returns: <doc ://com.apple.documentation/documentation/objectivec/yes> if the identity is a member of the group; <doc ://com.apple.documentation/documentation/objectivec/no> if it is not.
Sourcepub unsafe fn CSIdentity(&self) -> Retained<CSIdentity>
Available on crate feature objc2-core-services only.
pub unsafe fn CSIdentity(&self) -> Retained<CSIdentity>
objc2-core-services only.Returns an opaque object for use with the Core Services Identity API.
This method, along with CBIdentity/identityWithCSIdentity:, is used for
interoperability with the Core Services Identity API.
- Returns: The opaque object for use with the Core Services Identity API.
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init/new methods).
§Example
Check that an instance of NSObject has the precise class NSObject.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load instead.Use Ivar::load instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T.
See Ivar::load_ptr for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T.
This is the reference-variant. Use Retained::downcast if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString to a NSMutableString,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass: for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject.
§Panics
This works internally by calling isKindOfClass:. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject and
NSProxy implement this method.
§Examples
Cast an NSString back and forth from NSObject.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();Try (and fail) to cast an NSObject to an NSString.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}Trait Implementations§
Source§impl AsRef<AnyObject> for CBIdentity
impl AsRef<AnyObject> for CBIdentity
Source§impl AsRef<CBIdentity> for CBGroupIdentity
impl AsRef<CBIdentity> for CBGroupIdentity
Source§fn as_ref(&self) -> &CBIdentity
fn as_ref(&self) -> &CBIdentity
Source§impl AsRef<CBIdentity> for CBIdentity
impl AsRef<CBIdentity> for CBIdentity
Source§impl AsRef<CBIdentity> for CBUserIdentity
impl AsRef<CBIdentity> for CBUserIdentity
Source§fn as_ref(&self) -> &CBIdentity
fn as_ref(&self) -> &CBIdentity
Source§impl AsRef<NSObject> for CBIdentity
impl AsRef<NSObject> for CBIdentity
Source§impl Borrow<AnyObject> for CBIdentity
impl Borrow<AnyObject> for CBIdentity
Source§impl Borrow<CBIdentity> for CBGroupIdentity
impl Borrow<CBIdentity> for CBGroupIdentity
Source§fn borrow(&self) -> &CBIdentity
fn borrow(&self) -> &CBIdentity
Source§impl Borrow<CBIdentity> for CBUserIdentity
impl Borrow<CBIdentity> for CBUserIdentity
Source§fn borrow(&self) -> &CBIdentity
fn borrow(&self) -> &CBIdentity
Source§impl Borrow<NSObject> for CBIdentity
impl Borrow<NSObject> for CBIdentity
Source§impl ClassType for CBIdentity
impl ClassType for CBIdentity
Source§const NAME: &'static str = "CBIdentity"
const NAME: &'static str = "CBIdentity"
Source§type ThreadKind = <<CBIdentity as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<CBIdentity as ClassType>::Super as ClassType>::ThreadKind
Source§impl CopyingHelper for CBIdentity
impl CopyingHelper for CBIdentity
Source§type Result = CBIdentity
type Result = CBIdentity
Self if the type has no
immutable counterpart. Read moreSource§impl Debug for CBIdentity
impl Debug for CBIdentity
Source§impl Deref for CBIdentity
impl Deref for CBIdentity
Source§impl Hash for CBIdentity
impl Hash for CBIdentity
Source§impl Message for CBIdentity
impl Message for CBIdentity
Source§impl NSCoding for CBIdentity
impl NSCoding for CBIdentity
Source§impl NSCopying for CBIdentity
impl NSCopying for CBIdentity
Source§impl NSObjectProtocol for CBIdentity
impl NSObjectProtocol for CBIdentity
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_ref