pub struct CBGroupIdentity { /* private fields */ }CBIdentity only.Expand description
An object of the CBGroupIdentity class represents a group identity and is
used for viewing the attributes of group identities from an identity
authority. The principal attributes of a CBGroupIdentity object are a
POSIX group identifier (GID) and a list of members.
See also Apple’s documentation
Implementations§
Source§impl CBGroupIdentity
impl CBGroupIdentity
Available on crate features CBIdentityAuthority and libc only.
CBIdentityAuthority and libc only.Returns the group identity with the given POSIX GID in the specified identity authority.
- Parameters:
- gid: The GID of the group identity you are searching for.
- authority: An identity authority in which to search for the group identity.
- Returns: The group identity object with the given GID in the specified
identity authority, or
nilif no identity exists with the specified GID.
§See Also
Sourcepub unsafe fn posixGID(&self) -> gid_t
Available on crate feature libc only.
pub unsafe fn posixGID(&self) -> gid_t
libc only.Returns the POSIX GID of the identity.
The POSIX GID is an integer that can identify a group within an identity authority. GIDs are not guaranteed to be unique within an identity authority.
- Returns: The POSIX GID of the group identity.
Sourcepub unsafe fn members(&self) -> Option<Retained<NSArray>>
👎Deprecated: Use the memberIdentities property instead.
pub unsafe fn members(&self) -> Option<Retained<NSArray>>
Returns the members of the group.
This method only returns direct members of a group, it does not return members of members. Both user and group identities can be members of a group, but a group cannot be a member of itself. You also cannot have “circular” membership, i.e. a group be a member of another group that is a member of the first group.
- Returns: An array of
CBIdentityobjects each representing a member of the group identity.
pub unsafe fn memberIdentities(&self) -> Retained<NSArray<CBIdentity>>
Methods from Deref<Target = CBIdentity>§
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 CBGroupIdentity
impl AsRef<AnyObject> for CBGroupIdentity
Source§impl AsRef<CBGroupIdentity> for CBGroupIdentity
impl AsRef<CBGroupIdentity> for CBGroupIdentity
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<NSObject> for CBGroupIdentity
impl AsRef<NSObject> for CBGroupIdentity
Source§impl Borrow<AnyObject> for CBGroupIdentity
impl Borrow<AnyObject> for CBGroupIdentity
Source§impl Borrow<CBIdentity> for CBGroupIdentity
impl Borrow<CBIdentity> for CBGroupIdentity
Source§fn borrow(&self) -> &CBIdentity
fn borrow(&self) -> &CBIdentity
Source§impl Borrow<NSObject> for CBGroupIdentity
impl Borrow<NSObject> for CBGroupIdentity
Source§impl ClassType for CBGroupIdentity
impl ClassType for CBGroupIdentity
Source§const NAME: &'static str = "CBGroupIdentity"
const NAME: &'static str = "CBGroupIdentity"
Source§type Super = CBIdentity
type Super = CBIdentity
Source§type ThreadKind = <<CBGroupIdentity as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<CBGroupIdentity as ClassType>::Super as ClassType>::ThreadKind
Source§impl CopyingHelper for CBGroupIdentity
impl CopyingHelper for CBGroupIdentity
Source§type Result = CBGroupIdentity
type Result = CBGroupIdentity
Self if the type has no
immutable counterpart. Read moreSource§impl Debug for CBGroupIdentity
impl Debug for CBGroupIdentity
Source§impl Deref for CBGroupIdentity
impl Deref for CBGroupIdentity
Source§impl Hash for CBGroupIdentity
impl Hash for CBGroupIdentity
Source§impl Message for CBGroupIdentity
impl Message for CBGroupIdentity
Source§impl NSCoding for CBGroupIdentity
impl NSCoding for CBGroupIdentity
Source§impl NSCopying for CBGroupIdentity
impl NSCopying for CBGroupIdentity
Source§impl NSObjectProtocol for CBGroupIdentity
impl NSObjectProtocol for CBGroupIdentity
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