ASAuthorizationProviderExtensionLoginConfiguration

Struct ASAuthorizationProviderExtensionLoginConfiguration 

Source
pub struct ASAuthorizationProviderExtensionLoginConfiguration { /* private fields */ }
Available on crate feature ASAuthorizationProviderExtensionLoginConfiguration only.
Expand description

Implementations§

Source§

impl ASAuthorizationProviderExtensionLoginConfiguration

Source

pub unsafe fn new() -> Retained<Self>

Source

pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>

Source

pub unsafe fn initWithClientID_issuer_tokenEndpointURL_jwksEndpointURL_audience( this: Allocated<Self>, client_id: &NSString, issuer: &NSString, token_endpoint_url: &NSURL, jwks_endpoint_url: &NSURL, audience: Option<&NSString>, ) -> Retained<Self>

Initializes an ASAuthorizationProviderExtensionLoginConfiguration class with the required values.

Parameter clientID: The client_id for the Apple platform SSO login at the identity provider.

Parameter issuer: The issuer for the requests, used to validate responses.

Parameter tokenEndpointURL: The token endpoint at the idP for login.

Parameter jwksEndpointURL: The JWKS URL at the idP for validating tokens.

Parameter audience: The audience used for signed assertions. This should be the tenent at the idP.

Returns: An instance of a ASAuthorizationProviderExtensionLoginConfiguration.

Source

pub unsafe fn configurationWithOpenIDConfigurationURL_clientID_issuer_completion( open_id_configuration_url: &NSURL, client_id: &NSString, issuer: Option<&NSString>, completion: &DynBlock<dyn Fn(*mut ASAuthorizationProviderExtensionLoginConfiguration, *mut NSError)>, )

Available on crate feature block2 only.

Creates a login configuration using the OpenID configuration.

Parameter openIDConfigurationURL: The base URL to load the .well-known/openid-configuration.

Parameter clientID: The client_id for the Apple platform SSO login at the identity provider.

Parameter issuer: The issuer for the requests, used to validate responses.

Parameter completion: The completion called when it is complete or the error.

Source

pub unsafe fn invalidCredentialPredicate(&self) -> Option<Retained<NSString>>

Predicate string used to identify invalid credential errors.

If there is an HTTP 400 or HTTP 401 error when authenticating, this predicate will be used on the response body JSON to determine if the error is due to an invalid password or something else. If nil, then only an HTTP 401 will be used for an invalid credential.

Source

pub unsafe fn setInvalidCredentialPredicate( &self, invalid_credential_predicate: Option<&NSString>, )

Setter for invalidCredentialPredicate.

This is copied when set.

Source

pub unsafe fn accountDisplayName(&self) -> Option<Retained<NSString>>

The display name for the account. Used for notifications and login prompts.

Source

pub unsafe fn setAccountDisplayName( &self, account_display_name: Option<&NSString>, )

Setter for accountDisplayName.

This is copied when set.

Source

pub unsafe fn clientID(&self) -> Retained<NSString>

The login client_id.

Source

pub unsafe fn issuer(&self) -> Retained<NSString>

The issuer for validation.

Source

pub unsafe fn audience(&self) -> Retained<NSString>

The audience for validation and requests.

Source

pub unsafe fn setAudience(&self, audience: &NSString)

Setter for audience.

This is copied when set.

Source

pub unsafe fn tokenEndpointURL(&self) -> Retained<NSURL>

Token Endpoint URL for login request.

Source

pub unsafe fn setTokenEndpointURL(&self, token_endpoint_url: &NSURL)

Setter for tokenEndpointURL.

This is copied when set.

Source

pub unsafe fn jwksEndpointURL(&self) -> Retained<NSURL>

JWKS Endpoint URL for keys.

Source

pub unsafe fn setJwksEndpointURL(&self, jwks_endpoint_url: &NSURL)

Setter for jwksEndpointURL.

This is copied when set.

Source

pub unsafe fn jwksTrustedRootCertificates(&self) -> Retained<NSArray>

The root certificates to use for trust evaluation of jwks keys.

if set, certificates will be required in jwks responses and evaluated using the supplied certificates. If the jwks certificates are missing or fail trust evaluation the login will fail.

Source

pub unsafe fn setJwksTrustedRootCertificates( &self, jwks_trusted_root_certificates: &NSArray, )

Setter for jwksTrustedRootCertificates.

This is copied when set.

§Safety

jwks_trusted_root_certificates generic should be of the correct type.

Source

pub unsafe fn deviceContext(&self) -> Option<Retained<NSData>>

The device context for storing device meta data.

Source

pub unsafe fn setDeviceContext(&self, device_context: Option<&NSData>)

Setter for deviceContext.

This is copied when set.

Source

pub unsafe fn userSecureEnclaveKeyBiometricPolicy( &self, ) -> ASAuthorizationProviderExtensionUserSecureEnclaveKeyBiometricPolicy

The biometric policy for User Secure Enclave Key authentication.

Source

pub unsafe fn setUserSecureEnclaveKeyBiometricPolicy( &self, user_secure_enclave_key_biometric_policy: ASAuthorizationProviderExtensionUserSecureEnclaveKeyBiometricPolicy, )

Source

pub unsafe fn nonceEndpointURL(&self) -> Retained<NSURL>

Nonce Endpoint URL, defaults to token tokenEndpointURL.

Source

pub unsafe fn setNonceEndpointURL(&self, nonce_endpoint_url: &NSURL)

Setter for nonceEndpointURL.

This is copied when set.

Source

pub unsafe fn nonceResponseKeypath(&self) -> Retained<NSString>

The keypath in the nonce response that contains the nonce value.

Source

pub unsafe fn setNonceResponseKeypath(&self, nonce_response_keypath: &NSString)

Setter for nonceResponseKeypath.

This is copied when set.

Source

pub unsafe fn serverNonceClaimName(&self) -> Retained<NSString>

The name of the server nonce claim when included in authentication requests.

Source

pub unsafe fn setServerNonceClaimName(&self, server_nonce_claim_name: &NSString)

Setter for serverNonceClaimName.

This is copied when set.

Source

pub unsafe fn customNonceRequestValues( &self, ) -> Retained<NSArray<NSURLQueryItem>>

Custom values added to the server nonce POST request body.

Source

pub unsafe fn setCustomNonceRequestValues( &self, custom_nonce_request_values: &NSArray<NSURLQueryItem>, )

Setter for customNonceRequestValues.

This is copied when set.

Source

pub unsafe fn setCustomAssertionRequestHeaderClaims_returningError( &self, claims: &NSDictionary<NSString, AnyObject>, ) -> Result<(), Retained<NSError>>

Sets custom claims to be added to the embedded assertion request header.

Parameter claims: The claims to be added. It must serialize as valid JSON to be accepted.

Parameter error: Nil or an NSError indicating why the claims were rejected.

Returns: YES when successful and NO when claims are rejected.

§Safety

claims generic should be of the correct type.

Source

pub unsafe fn setCustomAssertionRequestBodyClaims_returningError( &self, claims: &NSDictionary<NSString, AnyObject>, ) -> Result<(), Retained<NSError>>

Sets custom claims to be added to the embedded assertion request body.

Parameter claims: The claims to be added. It must serialize as valid JSON to be accepted.

Parameter error: Nil or an NSError indicating why the claims were rejected.

Returns: YES when successful and NO when claims are rejected.

§Safety

claims generic should be of the correct type.

Source

pub unsafe fn additionalScopes(&self) -> Retained<NSString>

Additional login scopes.

Source

pub unsafe fn setAdditionalScopes(&self, additional_scopes: &NSString)

Setter for additionalScopes.

This is copied when set.

Source

pub unsafe fn additionalAuthorizationScopes(&self) -> Option<Retained<NSString>>

Additional authorization scopes.

Source

pub unsafe fn setAdditionalAuthorizationScopes( &self, additional_authorization_scopes: Option<&NSString>, )

Setter for additionalAuthorizationScopes.

This is copied when set.

Source

pub unsafe fn includePreviousRefreshTokenInLoginRequest(&self) -> bool

If true and there is a refresh token for the user in the SSO tokens, it will be included in the login request.

Source

pub unsafe fn setIncludePreviousRefreshTokenInLoginRequest( &self, include_previous_refresh_token_in_login_request: bool, )

Source

pub unsafe fn previousRefreshTokenClaimName(&self) -> Retained<NSString>

The claim name for the previous SSO token value in the login request.

Source

pub unsafe fn setPreviousRefreshTokenClaimName( &self, previous_refresh_token_claim_name: &NSString, )

Setter for previousRefreshTokenClaimName.

This is copied when set.

Source

pub unsafe fn customRequestJWTParameterName(&self) -> Option<Retained<NSString>>

The request parameter name for the JWT. The default is “assertion”.

Source

pub unsafe fn setCustomRequestJWTParameterName( &self, custom_request_jwt_parameter_name: Option<&NSString>, )

Setter for customRequestJWTParameterName.

This is copied when set.

Source

pub unsafe fn customLoginRequestValues( &self, ) -> Retained<NSArray<NSURLQueryItem>>

Custom values added to the login POST request body.

Source

pub unsafe fn setCustomLoginRequestValues( &self, custom_login_request_values: &NSArray<NSURLQueryItem>, )

Setter for customLoginRequestValues.

This is copied when set.

Source

pub unsafe fn setCustomLoginRequestHeaderClaims_returningError( &self, claims: &NSDictionary<NSString, AnyObject>, ) -> Result<(), Retained<NSError>>

Sets custom claims to be added to the login request header.

Parameter claims: The claims to be added. It must serialize as valid JSON to be accepted.

Parameter error: Nil or an NSError indicating why the claims were rejected.

Returns: YES when successful and NO when claims are rejected.

§Safety

claims generic should be of the correct type.

Source

pub unsafe fn setCustomLoginRequestBodyClaims_returningError( &self, claims: &NSDictionary<NSString, AnyObject>, ) -> Result<(), Retained<NSError>>

Sets custom claims to be added to the login request body.

Parameter claims: The claims to be added. It must serialize as valid JSON to be accepted.

Parameter error: Nil or an NSError indicating why the claims were rejected.

Returns: YES when successful and NO when claims are rejected.

§Safety

claims generic should be of the correct type.

Source

pub unsafe fn uniqueIdentifierClaimName(&self) -> Option<Retained<NSString>>

The claim name for the user unique identifier in the id token. Defaults to “sub”.

Source

pub unsafe fn setUniqueIdentifierClaimName( &self, unique_identifier_claim_name: Option<&NSString>, )

Setter for uniqueIdentifierClaimName.

This is copied when set.

Source

pub unsafe fn groupRequestClaimName(&self) -> Option<Retained<NSString>>

The claim name for group membership request.

Source

pub unsafe fn setGroupRequestClaimName( &self, group_request_claim_name: Option<&NSString>, )

Setter for groupRequestClaimName.

This is copied when set.

Source

pub unsafe fn groupResponseClaimName(&self) -> Option<Retained<NSString>>

The claim name for group responses in the id_token.

Source

pub unsafe fn setGroupResponseClaimName( &self, group_response_claim_name: Option<&NSString>, )

Setter for groupResponseClaimName.

This is copied when set.

Source

pub unsafe fn kerberosTicketMappings( &self, ) -> Retained<NSArray<ASAuthorizationProviderExtensionKerberosMapping>>

The Kerberos ticket mappings to use.

Source

pub unsafe fn setKerberosTicketMappings( &self, kerberos_ticket_mappings: &NSArray<ASAuthorizationProviderExtensionKerberosMapping>, )

Setter for kerberosTicketMappings.

This is copied when set.

Source

pub unsafe fn refreshEndpointURL(&self) -> Option<Retained<NSURL>>

Token Refresh Endpoint URL for login request. Defaults to the tokenEndpointURL.

Source

pub unsafe fn setRefreshEndpointURL(&self, refresh_endpoint_url: Option<&NSURL>)

Setter for refreshEndpointURL.

This is copied when set.

Source

pub unsafe fn customRefreshRequestValues( &self, ) -> Retained<NSArray<NSURLQueryItem>>

Custom values added to the refresh POST request body.

Source

pub unsafe fn setCustomRefreshRequestValues( &self, custom_refresh_request_values: &NSArray<NSURLQueryItem>, )

Setter for customRefreshRequestValues.

This is copied when set.

Source

pub unsafe fn setCustomRefreshRequestHeaderClaims_returningError( &self, claims: &NSDictionary<NSString, AnyObject>, ) -> Result<(), Retained<NSError>>

Sets custom claims to be added to the refresh request header.

Parameter claims: The claims to be added. It must serialize as valid JSON to be accepted.

Parameter error: Nil or an NSError indicating why the claims were rejected.

Returns: YES when successful and NO when claims are rejected.

§Safety

claims generic should be of the correct type.

Source

pub unsafe fn setCustomRefreshRequestBodyClaims_returningError( &self, claims: &NSDictionary<NSString, AnyObject>, ) -> Result<(), Retained<NSError>>

Sets custom claims to be added to the refresh request bode.

Parameter claims: The claims to be added. It must serialize as valid JSON to be accepted.

Parameter error: Nil or an NSError indicating why the claims were rejected.

Returns: YES when successful and NO when claims are rejected.

§Safety

claims generic should be of the correct type.

Source

pub unsafe fn federationType( &self, ) -> ASAuthorizationProviderExtensionFederationType

The federation method to use.

Source

pub unsafe fn setFederationType( &self, federation_type: ASAuthorizationProviderExtensionFederationType, )

Setter for federationType.

Source

pub unsafe fn federationRequestURN(&self) -> Option<Retained<NSString>>

The URN to request when performing a federated login.

Source

pub unsafe fn setFederationRequestURN( &self, federation_request_urn: Option<&NSString>, )

Setter for federationRequestURN.

This is copied when set.

Source

pub unsafe fn federationMEXURL(&self) -> Option<Retained<NSURL>>

The federation MEX URL to use. This can be overwritten when using dynamic federation.

Source

pub unsafe fn setFederationMEXURL(&self, federation_mexurl: Option<&NSURL>)

Setter for federationMEXURL.

This is copied when set.

Source

pub unsafe fn federationUserPreauthenticationURL( &self, ) -> Option<Retained<NSURL>>

The URL to use when performing dynamic federation.

Source

pub unsafe fn setFederationUserPreauthenticationURL( &self, federation_user_preauthentication_url: Option<&NSURL>, )

Setter for federationUserPreauthenticationURL.

This is copied when set.

Source

pub unsafe fn federationMEXURLKeypath(&self) -> Option<Retained<NSString>>

The claim in the preauthentication response that contains the MEX URL.

Source

pub unsafe fn setFederationMEXURLKeypath( &self, federation_mexurl_keypath: Option<&NSString>, )

Setter for federationMEXURLKeypath.

This is copied when set.

Source

pub unsafe fn federationPredicate(&self) -> Option<Retained<NSString>>

The predicate to apply to the preauthentication response to perform federation or not.

Source

pub unsafe fn setFederationPredicate( &self, federation_predicate: Option<&NSString>, )

Setter for federationPredicate.

This is copied when set.

Source

pub unsafe fn customFederationUserPreauthenticationRequestValues( &self, ) -> Retained<NSArray<NSURLQueryItem>>

The custom query string values to add when making the preauthenticaion request.

Source

pub unsafe fn setCustomFederationUserPreauthenticationRequestValues( &self, custom_federation_user_preauthentication_request_values: &NSArray<NSURLQueryItem>, )

Source

pub unsafe fn loginRequestEncryptionPublicKey(&self) -> Option<Retained<SecKey>>

Available on crate feature objc2-security only.

The public key to use for encrypting the embedded login assertion.

Only applies to password authentication. If set, the password will encrypted in an embedded assertion instead of the login request itself.

§Safety

This is not retained internally, you must ensure the object is still alive.

Source

pub unsafe fn setLoginRequestEncryptionPublicKey( &self, login_request_encryption_public_key: Option<&SecKey>, )

Available on crate feature objc2-security only.

Setter for loginRequestEncryptionPublicKey.

§Safety

This is unretained, you must ensure the object is kept alive while in use.

Source

pub unsafe fn loginRequestEncryptionAPVPrefix(&self) -> Option<Retained<NSData>>

The APV prefix used for encrypted embedded login assertions.

Source

pub unsafe fn setLoginRequestEncryptionAPVPrefix( &self, login_request_encryption_apv_prefix: Option<&NSData>, )

Setter for loginRequestEncryptionAPVPrefix.

This is copied when set.

Source

pub unsafe fn loginRequestEncryptionAlgorithm( &self, ) -> Retained<ASAuthorizationProviderExtensionEncryptionAlgorithm>

The encryption algorithm to use for the embedded login assertion.

Source

pub unsafe fn setLoginRequestEncryptionAlgorithm( &self, login_request_encryption_algorithm: &ASAuthorizationProviderExtensionEncryptionAlgorithm, )

Setter for loginRequestEncryptionAlgorithm.

This is copied when set.

Source

pub unsafe fn loginRequestHPKEPreSharedKey(&self) -> Option<Retained<NSData>>

The PreSharedKey to be used for HKPE for embedded login assertions. Setting this value will change the mode to PSK if the loginRequestHPKEPreSharedKeyID is also set. Must be at least 32 bytes.

Source

pub unsafe fn setLoginRequestHPKEPreSharedKey( &self, login_request_hpke_pre_shared_key: Option<&NSData>, )

Setter for loginRequestHPKEPreSharedKey.

This is copied when set.

Source

pub unsafe fn loginRequestHPKEPreSharedKeyID(&self) -> Option<Retained<NSData>>

The PreSharedKey Id to be used for HPKE PSK for embedded login assertions. This is required if the loginRequestHPKEPreSharedKey is set.

Source

pub unsafe fn setLoginRequestHPKEPreSharedKeyID( &self, login_request_hpke_pre_shared_key_id: Option<&NSData>, )

Setter for loginRequestHPKEPreSharedKeyID.

This is copied when set.

Source

pub unsafe fn keyEndpointURL(&self) -> Option<Retained<NSURL>>

The url endpoint for key service, defaults to token tokenEndpointURL.

Source

pub unsafe fn setKeyEndpointURL(&self, key_endpoint_url: Option<&NSURL>)

Setter for keyEndpointURL.

This is copied when set.

Source

pub unsafe fn customKeyExchangeRequestValues( &self, ) -> Retained<NSArray<NSURLQueryItem>>

Custom values added to the key exchange POST request body.

Source

pub unsafe fn setCustomKeyExchangeRequestValues( &self, custom_key_exchange_request_values: &NSArray<NSURLQueryItem>, )

Setter for customKeyExchangeRequestValues.

This is copied when set.

Source

pub unsafe fn setCustomKeyExchangeRequestHeaderClaims_returningError( &self, claims: &NSDictionary<NSString, AnyObject>, ) -> Result<(), Retained<NSError>>

Sets custom claims to be added to the key exchange request header.

Parameter claims: The claims to be added. It must serialize as valid JSON to be accepted.

Parameter error: Nil or an NSError indicating why the claims were rejected.

Returns: YES when successful and NO when claims are rejected.

§Safety

claims generic should be of the correct type.

Source

pub unsafe fn setCustomKeyExchangeRequestBodyClaims_returningError( &self, claims: &NSDictionary<NSString, AnyObject>, ) -> Result<(), Retained<NSError>>

Sets custom claims to be added to the key exchange request body.

Parameter claims: The claims to be added. It must serialize as valid JSON to be accepted.

Parameter error: Nil or an NSError indicating why the claims were rejected.

Returns: YES when successful and NO when claims are rejected.

§Safety

claims generic should be of the correct type.

Source

pub unsafe fn customKeyRequestValues(&self) -> Retained<NSArray<NSURLQueryItem>>

Custom values added to the key request POST request body.

Source

pub unsafe fn setCustomKeyRequestValues( &self, custom_key_request_values: &NSArray<NSURLQueryItem>, )

Setter for customKeyRequestValues.

This is copied when set.

Source

pub unsafe fn setCustomKeyRequestHeaderClaims_returningError( &self, claims: &NSDictionary<NSString, AnyObject>, ) -> Result<(), Retained<NSError>>

Sets custom claims to be added to the key request header.

Parameter claims: The claims to be added. It must serialize as valid JSON to be accepted.

Parameter error: Nil or an NSError indicating why the claims were rejected.

Returns: YES when successful and NO when claims are rejected.

§Safety

claims generic should be of the correct type.

Source

pub unsafe fn setCustomKeyRequestBodyClaims_returningError( &self, claims: &NSDictionary<NSString, AnyObject>, ) -> Result<(), Retained<NSError>>

Sets custom claims to be added to the key request body.

Parameter claims: The claims to be added. It must serialize as valid JSON to be accepted.

Parameter error: Nil or an NSError indicating why the claims were rejected.

Returns: YES when successful and NO when claims are rejected.

§Safety

claims generic should be of the correct type.

Source

pub unsafe fn hpkePreSharedKey(&self) -> Option<Retained<NSData>>

The PreSharedKey to be used for HKPE. Setting this value will change the mode to PSK or AuthPSK if the hpkeAuthPublicKey is also set. Must be at least 32 bytes.

Source

pub unsafe fn setHpkePreSharedKey(&self, hpke_pre_shared_key: Option<&NSData>)

Setter for hpkePreSharedKey.

This is copied when set.

Source

pub unsafe fn hpkePreSharedKeyID(&self) -> Option<Retained<NSData>>

The PreSharedKey Id to be used for HPKE PSK or AuthPSK mode. This is requred if the hpkePreSharedKey is set.

Source

pub unsafe fn setHpkePreSharedKeyID( &self, hpke_pre_shared_key_id: Option<&NSData>, )

Setter for hpkePreSharedKeyID.

This is copied when set.

Source

pub unsafe fn hpkeAuthPublicKey(&self) -> Option<Retained<SecKey>>

Available on crate feature objc2-security only.

The Authentication public key to be used for HPKE. Setting this value with changet the mode to Auth or AuthPSK if the hpkePreSharedKey is also set. This public key is used to authenticate HPKE responses.

Source

pub unsafe fn setHpkeAuthPublicKey(&self, hpke_auth_public_key: Option<&SecKey>)

Available on crate feature objc2-security only.

Setter for hpkeAuthPublicKey.

Methods from Deref<Target = NSObject>§

Source

pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !

Handle messages the object doesn’t recognize.

See Apple’s documentation for details.

Methods from Deref<Target = AnyObject>§

Source

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());
Source

pub unsafe fn get_ivar<T>(&self, name: &str) -> &T
where T: Encode,

👎Deprecated: this is difficult to use correctly, use 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.

Source

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<ASAuthorizationProviderExtensionLoginConfiguration> for ASAuthorizationProviderExtensionLoginConfiguration

Source§

fn as_ref(&self) -> &Self

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<AnyObject> for ASAuthorizationProviderExtensionLoginConfiguration

Source§

fn as_ref(&self) -> &AnyObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<NSObject> for ASAuthorizationProviderExtensionLoginConfiguration

Source§

fn as_ref(&self) -> &NSObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Borrow<AnyObject> for ASAuthorizationProviderExtensionLoginConfiguration

Source§

fn borrow(&self) -> &AnyObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSObject> for ASAuthorizationProviderExtensionLoginConfiguration

Source§

fn borrow(&self) -> &NSObject

Immutably borrows from an owned value. Read more
Source§

impl ClassType for ASAuthorizationProviderExtensionLoginConfiguration

Source§

const NAME: &'static str = "ASAuthorizationProviderExtensionLoginConfiguration"

The name of the Objective-C class that this type represents. Read more
Source§

type Super = NSObject

The superclass of this class. Read more
Source§

type ThreadKind = <<ASAuthorizationProviderExtensionLoginConfiguration as ClassType>::Super as ClassType>::ThreadKind

Whether the type can be used from any thread, or from only the main thread. Read more
Source§

fn class() -> &'static AnyClass

Get a reference to the Objective-C class that this type represents. Read more
Source§

fn as_super(&self) -> &Self::Super

Get an immutable reference to the superclass.
Source§

impl Debug for ASAuthorizationProviderExtensionLoginConfiguration

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for ASAuthorizationProviderExtensionLoginConfiguration

Source§

type Target = NSObject

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Hash for ASAuthorizationProviderExtensionLoginConfiguration

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Message for ASAuthorizationProviderExtensionLoginConfiguration

Source§

fn retain(&self) -> Retained<Self>
where Self: Sized,

Increment the reference count of the receiver. Read more
Source§

impl NSObjectProtocol for ASAuthorizationProviderExtensionLoginConfiguration

Source§

fn isEqual(&self, other: Option<&AnyObject>) -> bool
where Self: Sized + Message,

Check whether the object is equal to an arbitrary other object. Read more
Source§

fn hash(&self) -> usize
where Self: Sized + Message,

An integer that can be used as a table address in a hash table structure. Read more
Source§

fn isKindOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of the class, or one of its subclasses. Read more
Source§

fn is_kind_of<T>(&self) -> bool
where T: ClassType, Self: Sized + Message,

👎Deprecated: use isKindOfClass directly, or cast your objects with AnyObject::downcast_ref
Check if the object is an instance of the class type, or one of its subclasses. Read more
Source§

fn isMemberOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of a specific class, without checking subclasses. Read more
Source§

fn respondsToSelector(&self, aSelector: Sel) -> bool
where Self: Sized + Message,

Check whether the object implements or inherits a method with the given selector. Read more
Source§

fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
where Self: Sized + Message,

Check whether the object conforms to a given protocol. Read more
Source§

fn description(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object. Read more
Source§

fn debugDescription(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object to use when debugging. Read more
Source§

fn isProxy(&self) -> bool
where Self: Sized + Message,

Check whether the receiver is a subclass of the NSProxy root class instead of the usual NSObject. Read more
Source§

fn retainCount(&self) -> usize
where Self: Sized + Message,

The reference count of the object. Read more
Source§

impl PartialEq for ASAuthorizationProviderExtensionLoginConfiguration

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RefEncode for ASAuthorizationProviderExtensionLoginConfiguration

Source§

const ENCODING_REF: Encoding = <NSObject as ::objc2::RefEncode>::ENCODING_REF

The Objective-C type-encoding for a reference of this type. Read more
Source§

impl DowncastTarget for ASAuthorizationProviderExtensionLoginConfiguration

Source§

impl Eq for ASAuthorizationProviderExtensionLoginConfiguration

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T> AnyThread for T
where T: ClassType<ThreadKind = dyn AnyThread + 'a> + ?Sized,

Source§

fn alloc() -> Allocated<Self>
where Self: Sized + ClassType,

Allocate a new instance of the class. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,