[−][src]Struct openidconnect::registration::ClientRegistrationResponse
Response to a dynamic client registration request.
Methods
impl<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> ClientRegistrationResponse<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> where
AC: AdditionalClientMetadata,
AR: AdditionalClientRegistrationResponse,
AT: ApplicationType,
CA: ClientAuthMethod,
G: GrantType,
JE: JweContentEncryptionAlgorithm<JT>,
JK: JweKeyManagementAlgorithm,
JS: JwsSigningAlgorithm<JT>,
JT: JsonWebKeyType,
JU: JsonWebKeyUse,
K: JsonWebKey<JS, JT, JU>,
RT: ResponseType,
S: SubjectIdentifierType,
[src]
AC: AdditionalClientMetadata,
AR: AdditionalClientRegistrationResponse,
AT: ApplicationType,
CA: ClientAuthMethod,
G: GrantType,
JE: JweContentEncryptionAlgorithm<JT>,
JK: JweKeyManagementAlgorithm,
JS: JwsSigningAlgorithm<JT>,
JT: JsonWebKeyType,
JU: JsonWebKeyUse,
K: JsonWebKey<JS, JT, JU>,
RT: ResponseType,
S: SubjectIdentifierType,
pub fn new(
client_id: ClientId,
redirect_uris: Vec<RedirectUrl>,
additional_metadata: AC,
additional_response: AR
) -> Self
[src]
client_id: ClientId,
redirect_uris: Vec<RedirectUrl>,
additional_metadata: AC,
additional_response: AR
) -> Self
Instantiates a new dynamic client registration response.
pub fn from_client_metadata(
client_id: ClientId,
client_metadata: ClientMetadata<AC, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S>,
additional_response: AR
) -> Self
[src]
client_id: ClientId,
client_metadata: ClientMetadata<AC, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S>,
additional_response: AR
) -> Self
Instantiates a new dynamic client registration response using the specified client metadata.
pub fn client_id(&self) -> &ClientId
[src]
Returns the client_id
response field.
pub fn set_client_id(self, client_id: ClientId) -> Self
[src]
Sets the client_id
response field.
pub fn client_secret(&self) -> Option<&ClientSecret>
[src]
Returns the client_secret
response field.
pub fn set_client_secret(self, client_secret: Option<ClientSecret>) -> Self
[src]
Sets the client_secret
response field.
pub fn registration_access_token(&self) -> Option<&RegistrationAccessToken>
[src]
Returns the registration_access_token
response field.
pub fn set_registration_access_token(
self,
registration_access_token: Option<RegistrationAccessToken>
) -> Self
[src]
self,
registration_access_token: Option<RegistrationAccessToken>
) -> Self
Sets the registration_access_token
response field.
pub fn registration_client_uri(&self) -> Option<&ClientConfigUrl>
[src]
Returns the registration_client_uri
response field.
pub fn set_registration_client_uri(
self,
registration_client_uri: Option<ClientConfigUrl>
) -> Self
[src]
self,
registration_client_uri: Option<ClientConfigUrl>
) -> Self
Sets the registration_client_uri
response field.
pub fn client_id_issued_at(&self) -> Option<&DateTime<Utc>>
[src]
Returns the client_id_issued_at
response field.
pub fn set_client_id_issued_at(
self,
client_id_issued_at: Option<DateTime<Utc>>
) -> Self
[src]
self,
client_id_issued_at: Option<DateTime<Utc>>
) -> Self
Sets the client_id_issued_at
response field.
pub fn client_secret_expires_at(&self) -> Option<&DateTime<Utc>>
[src]
Returns the client_secret_expires_at
response field.
pub fn set_client_secret_expires_at(
self,
client_secret_expires_at: Option<DateTime<Utc>>
) -> Self
[src]
self,
client_secret_expires_at: Option<DateTime<Utc>>
) -> Self
Sets the client_secret_expires_at
response field.
pub fn redirect_uris(&self) -> &Vec<RedirectUrl>
[src]
Returns the redirect_uris
client metadata value.
pub fn set_redirect_uris(self, redirect_uris: Vec<RedirectUrl>) -> Self
[src]
Sets the redirect_uris
client metadata value.
pub fn response_types(&self) -> Option<&Vec<ResponseTypes<RT>>>
[src]
Returns the response_types
client metadata value.
pub fn set_response_types(
self,
response_types: Option<Vec<ResponseTypes<RT>>>
) -> Self
[src]
self,
response_types: Option<Vec<ResponseTypes<RT>>>
) -> Self
Sets the response_types
client metadata value.
pub fn grant_types(&self) -> Option<&Vec<G>>
[src]
Returns the grant_types
client metadata value.
pub fn set_grant_types(self, grant_types: Option<Vec<G>>) -> Self
[src]
Sets the grant_types
client metadata value.
pub fn application_type(&self) -> Option<&AT>
[src]
Returns the application_type
client metadata value.
pub fn set_application_type(self, application_type: Option<AT>) -> Self
[src]
Sets the application_type
client metadata value.
pub fn contacts(&self) -> Option<&Vec<ClientContactEmail>>
[src]
Returns the contacts
client metadata value.
pub fn set_contacts(self, contacts: Option<Vec<ClientContactEmail>>) -> Self
[src]
Sets the contacts
client metadata value.
pub fn client_name(&self) -> Option<&LocalizedClaim<ClientName>>
[src]
Returns the client_name
client metadata value.
pub fn set_client_name(
self,
client_name: Option<LocalizedClaim<ClientName>>
) -> Self
[src]
self,
client_name: Option<LocalizedClaim<ClientName>>
) -> Self
Sets the client_name
client metadata value.
pub fn logo_uri(&self) -> Option<&LocalizedClaim<LogoUrl>>
[src]
Returns the logo_uri
client metadata value.
pub fn set_logo_uri(self, logo_uri: Option<LocalizedClaim<LogoUrl>>) -> Self
[src]
Sets the logo_uri
client metadata value.
pub fn client_uri(&self) -> Option<&LocalizedClaim<ClientUrl>>
[src]
Returns the client_uri
client metadata value.
pub fn set_client_uri(
self,
client_uri: Option<LocalizedClaim<ClientUrl>>
) -> Self
[src]
self,
client_uri: Option<LocalizedClaim<ClientUrl>>
) -> Self
Sets the client_uri
client metadata value.
pub fn policy_uri(&self) -> Option<&LocalizedClaim<PolicyUrl>>
[src]
Returns the policy_uri
client metadata value.
pub fn set_policy_uri(
self,
policy_uri: Option<LocalizedClaim<PolicyUrl>>
) -> Self
[src]
self,
policy_uri: Option<LocalizedClaim<PolicyUrl>>
) -> Self
Sets the policy_uri
client metadata value.
pub fn tos_uri(&self) -> Option<&LocalizedClaim<ToSUrl>>
[src]
Returns the tos_uri
client metadata value.
pub fn set_tos_uri(self, tos_uri: Option<LocalizedClaim<ToSUrl>>) -> Self
[src]
Sets the tos_uri
client metadata value.
pub fn jwks_uri(&self) -> Option<&JsonWebKeySetUrl>
[src]
Returns the jwks_uri
client metadata value.
pub fn set_jwks_uri(self, jwks_uri: Option<JsonWebKeySetUrl>) -> Self
[src]
Sets the jwks_uri
client metadata value.
pub fn jwks(&self) -> Option<&JsonWebKeySet<JS, JT, JU, K>>
[src]
Returns the jwks
client metadata value.
pub fn set_jwks(self, jwks: Option<JsonWebKeySet<JS, JT, JU, K>>) -> Self
[src]
Sets the jwks
client metadata value.
pub fn sector_identifier_uri(&self) -> Option<&SectorIdentifierUrl>
[src]
Returns the sector_identifier_uri
client metadata value.
pub fn set_sector_identifier_uri(
self,
sector_identifier_uri: Option<SectorIdentifierUrl>
) -> Self
[src]
self,
sector_identifier_uri: Option<SectorIdentifierUrl>
) -> Self
Sets the sector_identifier_uri
client metadata value.
pub fn subject_type(&self) -> Option<&S>
[src]
Returns the subject_type
client metadata value.
pub fn set_subject_type(self, subject_type: Option<S>) -> Self
[src]
Sets the subject_type
client metadata value.
pub fn id_token_signed_response_alg(&self) -> Option<&JS>
[src]
Returns the id_token_signed_response_alg
client metadata value.
pub fn set_id_token_signed_response_alg(
self,
id_token_signed_response_alg: Option<JS>
) -> Self
[src]
self,
id_token_signed_response_alg: Option<JS>
) -> Self
Sets the id_token_signed_response_alg
client metadata value.
pub fn id_token_encrypted_response_alg(&self) -> Option<&JK>
[src]
Returns the id_token_encrypted_response_alg
client metadata value.
pub fn set_id_token_encrypted_response_alg(
self,
id_token_encrypted_response_alg: Option<JK>
) -> Self
[src]
self,
id_token_encrypted_response_alg: Option<JK>
) -> Self
Sets the id_token_encrypted_response_alg
client metadata value.
pub fn id_token_encrypted_response_enc(&self) -> Option<&JE>
[src]
Returns the id_token_encrypted_response_enc
client metadata value.
pub fn set_id_token_encrypted_response_enc(
self,
id_token_encrypted_response_enc: Option<JE>
) -> Self
[src]
self,
id_token_encrypted_response_enc: Option<JE>
) -> Self
Sets the id_token_encrypted_response_enc
client metadata value.
pub fn userinfo_signed_response_alg(&self) -> Option<&JS>
[src]
Returns the userinfo_signed_response_alg
client metadata value.
pub fn set_userinfo_signed_response_alg(
self,
userinfo_signed_response_alg: Option<JS>
) -> Self
[src]
self,
userinfo_signed_response_alg: Option<JS>
) -> Self
Sets the userinfo_signed_response_alg
client metadata value.
pub fn userinfo_encrypted_response_alg(&self) -> Option<&JK>
[src]
Returns the userinfo_encrypted_response_alg
client metadata value.
pub fn set_userinfo_encrypted_response_alg(
self,
userinfo_encrypted_response_alg: Option<JK>
) -> Self
[src]
self,
userinfo_encrypted_response_alg: Option<JK>
) -> Self
Sets the userinfo_encrypted_response_alg
client metadata value.
pub fn userinfo_encrypted_response_enc(&self) -> Option<&JE>
[src]
Returns the userinfo_encrypted_response_enc
client metadata value.
pub fn set_userinfo_encrypted_response_enc(
self,
userinfo_encrypted_response_enc: Option<JE>
) -> Self
[src]
self,
userinfo_encrypted_response_enc: Option<JE>
) -> Self
Sets the userinfo_encrypted_response_enc
client metadata value.
pub fn request_object_signing_alg(&self) -> Option<&JS>
[src]
Returns the request_object_signing_alg
client metadata value.
pub fn set_request_object_signing_alg(
self,
request_object_signing_alg: Option<JS>
) -> Self
[src]
self,
request_object_signing_alg: Option<JS>
) -> Self
Sets the request_object_signing_alg
client metadata value.
pub fn request_object_encryption_alg(&self) -> Option<&JK>
[src]
Returns the request_object_encryption_alg
client metadata value.
pub fn set_request_object_encryption_alg(
self,
request_object_encryption_alg: Option<JK>
) -> Self
[src]
self,
request_object_encryption_alg: Option<JK>
) -> Self
Sets the request_object_encryption_alg
client metadata value.
pub fn request_object_encryption_enc(&self) -> Option<&JE>
[src]
Returns the request_object_encryption_enc
client metadata value.
pub fn set_request_object_encryption_enc(
self,
request_object_encryption_enc: Option<JE>
) -> Self
[src]
self,
request_object_encryption_enc: Option<JE>
) -> Self
Sets the request_object_encryption_enc
client metadata value.
pub fn token_endpoint_auth_method(&self) -> Option<&CA>
[src]
Returns the token_endpoint_auth_method
client metadata value.
pub fn set_token_endpoint_auth_method(
self,
token_endpoint_auth_method: Option<CA>
) -> Self
[src]
self,
token_endpoint_auth_method: Option<CA>
) -> Self
Sets the token_endpoint_auth_method
client metadata value.
pub fn token_endpoint_auth_signing_alg(&self) -> Option<&JS>
[src]
Returns the token_endpoint_auth_signing_alg
client metadata value.
pub fn set_token_endpoint_auth_signing_alg(
self,
token_endpoint_auth_signing_alg: Option<JS>
) -> Self
[src]
self,
token_endpoint_auth_signing_alg: Option<JS>
) -> Self
Sets the token_endpoint_auth_signing_alg
client metadata value.
pub fn default_max_age(&self) -> Option<&Duration>
[src]
Returns the default_max_age
client metadata value.
pub fn set_default_max_age(self, default_max_age: Option<Duration>) -> Self
[src]
Sets the default_max_age
client metadata value.
pub fn require_auth_time(&self) -> Option<bool>
[src]
Returns the require_auth_time
client metadata value.
pub fn set_require_auth_time(self, require_auth_time: Option<bool>) -> Self
[src]
Sets the require_auth_time
client metadata value.
pub fn default_acr_values(&self) -> Option<&Vec<AuthenticationContextClass>>
[src]
Returns the default_acr_values
client metadata value.
pub fn set_default_acr_values(
self,
default_acr_values: Option<Vec<AuthenticationContextClass>>
) -> Self
[src]
self,
default_acr_values: Option<Vec<AuthenticationContextClass>>
) -> Self
Sets the default_acr_values
client metadata value.
pub fn initiate_login_uri(&self) -> Option<&InitiateLoginUrl>
[src]
Returns the initiate_login_uri
client metadata value.
pub fn set_initiate_login_uri(
self,
initiate_login_uri: Option<InitiateLoginUrl>
) -> Self
[src]
self,
initiate_login_uri: Option<InitiateLoginUrl>
) -> Self
Sets the initiate_login_uri
client metadata value.
pub fn request_uris(&self) -> Option<&Vec<RequestUrl>>
[src]
Returns the request_uris
client metadata value.
pub fn set_request_uris(self, request_uris: Option<Vec<RequestUrl>>) -> Self
[src]
Sets the request_uris
client metadata value.
pub fn additional_metadata(&self) -> &AC
[src]
Returns additional client metadata fields.
pub fn additional_metadata_mut(&mut self) -> &mut AC
[src]
Returns mutable additional client metadata fields.
pub fn additional_response(&self) -> &AR
[src]
Returns additional response fields.
pub fn additional_response_mut(&mut self) -> &mut AR
[src]
Returns mutable additional response fields.
Trait Implementations
impl<AC: Debug, AR: Debug, AT: Debug, CA: Debug, G: Debug, JE: Debug, JK: Debug, JS: Debug, JT: Debug, JU: Debug, K: Debug, RT: Debug, S: Debug> Debug for ClientRegistrationResponse<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> where
AC: AdditionalClientMetadata,
AR: AdditionalClientRegistrationResponse,
AT: ApplicationType,
CA: ClientAuthMethod,
G: GrantType,
JE: JweContentEncryptionAlgorithm<JT>,
JK: JweKeyManagementAlgorithm,
JS: JwsSigningAlgorithm<JT>,
JT: JsonWebKeyType,
JU: JsonWebKeyUse,
K: JsonWebKey<JS, JT, JU>,
RT: ResponseType,
S: SubjectIdentifierType,
[src]
AC: AdditionalClientMetadata,
AR: AdditionalClientRegistrationResponse,
AT: ApplicationType,
CA: ClientAuthMethod,
G: GrantType,
JE: JweContentEncryptionAlgorithm<JT>,
JK: JweKeyManagementAlgorithm,
JS: JwsSigningAlgorithm<JT>,
JT: JsonWebKeyType,
JU: JsonWebKeyUse,
K: JsonWebKey<JS, JT, JU>,
RT: ResponseType,
S: SubjectIdentifierType,
impl<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> Serialize for ClientRegistrationResponse<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> where
AC: AdditionalClientMetadata,
AR: AdditionalClientRegistrationResponse,
AT: ApplicationType,
CA: ClientAuthMethod,
G: GrantType,
JE: JweContentEncryptionAlgorithm<JT>,
JK: JweKeyManagementAlgorithm,
JS: JwsSigningAlgorithm<JT>,
JT: JsonWebKeyType,
JU: JsonWebKeyUse,
K: JsonWebKey<JS, JT, JU>,
RT: ResponseType,
S: SubjectIdentifierType,
AC: AdditionalClientMetadata,
AR: AdditionalClientRegistrationResponse,
[src]
AC: AdditionalClientMetadata,
AR: AdditionalClientRegistrationResponse,
AT: ApplicationType,
CA: ClientAuthMethod,
G: GrantType,
JE: JweContentEncryptionAlgorithm<JT>,
JK: JweKeyManagementAlgorithm,
JS: JwsSigningAlgorithm<JT>,
JT: JsonWebKeyType,
JU: JsonWebKeyUse,
K: JsonWebKey<JS, JT, JU>,
RT: ResponseType,
S: SubjectIdentifierType,
AC: AdditionalClientMetadata,
AR: AdditionalClientRegistrationResponse,
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl<'de, AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> Deserialize<'de> for ClientRegistrationResponse<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> where
AC: AdditionalClientMetadata,
AR: AdditionalClientRegistrationResponse,
AT: ApplicationType,
CA: ClientAuthMethod,
G: GrantType,
JE: JweContentEncryptionAlgorithm<JT>,
JK: JweKeyManagementAlgorithm,
JS: JwsSigningAlgorithm<JT>,
JT: JsonWebKeyType,
JU: JsonWebKeyUse,
K: JsonWebKey<JS, JT, JU>,
RT: ResponseType,
S: SubjectIdentifierType,
AC: AdditionalClientMetadata,
AR: AdditionalClientRegistrationResponse,
[src]
AC: AdditionalClientMetadata,
AR: AdditionalClientRegistrationResponse,
AT: ApplicationType,
CA: ClientAuthMethod,
G: GrantType,
JE: JweContentEncryptionAlgorithm<JT>,
JK: JweKeyManagementAlgorithm,
JS: JwsSigningAlgorithm<JT>,
JT: JsonWebKeyType,
JU: JsonWebKeyUse,
K: JsonWebKey<JS, JT, JU>,
RT: ResponseType,
S: SubjectIdentifierType,
AC: AdditionalClientMetadata,
AR: AdditionalClientRegistrationResponse,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
Auto Trait Implementations
impl<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> Send for ClientRegistrationResponse<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> where
AC: Send,
AR: Send,
AT: Send,
CA: Send,
G: Send,
JE: Send,
JK: Send,
JS: Send,
JT: Send,
JU: Send,
K: Send,
RT: Send,
S: Send,
AC: Send,
AR: Send,
AT: Send,
CA: Send,
G: Send,
JE: Send,
JK: Send,
JS: Send,
JT: Send,
JU: Send,
K: Send,
RT: Send,
S: Send,
impl<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> Sync for ClientRegistrationResponse<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> where
AC: Sync,
AR: Sync,
AT: Sync,
CA: Sync,
G: Sync,
JE: Sync,
JK: Sync,
JS: Sync,
JT: Sync,
JU: Sync,
K: Sync,
RT: Sync,
S: Sync,
AC: Sync,
AR: Sync,
AT: Sync,
CA: Sync,
G: Sync,
JE: Sync,
JK: Sync,
JS: Sync,
JT: Sync,
JU: Sync,
K: Sync,
RT: Sync,
S: Sync,
impl<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> Unpin for ClientRegistrationResponse<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> where
AC: Unpin,
AR: Unpin,
AT: Unpin,
CA: Unpin,
G: Unpin,
JE: Unpin,
JK: Unpin,
JS: Unpin,
JT: Unpin,
JU: Unpin,
K: Unpin,
RT: Unpin,
S: Unpin,
AC: Unpin,
AR: Unpin,
AT: Unpin,
CA: Unpin,
G: Unpin,
JE: Unpin,
JK: Unpin,
JS: Unpin,
JT: Unpin,
JU: Unpin,
K: Unpin,
RT: Unpin,
S: Unpin,
impl<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> UnwindSafe for ClientRegistrationResponse<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> where
AC: UnwindSafe,
AR: UnwindSafe,
AT: UnwindSafe,
CA: UnwindSafe,
G: UnwindSafe,
JE: UnwindSafe,
JK: UnwindSafe,
JS: UnwindSafe,
JT: UnwindSafe,
JU: UnwindSafe,
K: UnwindSafe,
RT: UnwindSafe,
S: UnwindSafe,
AC: UnwindSafe,
AR: UnwindSafe,
AT: UnwindSafe,
CA: UnwindSafe,
G: UnwindSafe,
JE: UnwindSafe,
JK: UnwindSafe,
JS: UnwindSafe,
JT: UnwindSafe,
JU: UnwindSafe,
K: UnwindSafe,
RT: UnwindSafe,
S: UnwindSafe,
impl<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> RefUnwindSafe for ClientRegistrationResponse<AC, AR, AT, CA, G, JE, JK, JS, JT, JU, K, RT, S> where
AC: RefUnwindSafe,
AR: RefUnwindSafe,
AT: RefUnwindSafe,
CA: RefUnwindSafe,
G: RefUnwindSafe,
JE: RefUnwindSafe,
JK: RefUnwindSafe,
JS: RefUnwindSafe,
JT: RefUnwindSafe,
JU: RefUnwindSafe,
K: RefUnwindSafe,
RT: RefUnwindSafe,
S: RefUnwindSafe,
AC: RefUnwindSafe,
AR: RefUnwindSafe,
AT: RefUnwindSafe,
CA: RefUnwindSafe,
G: RefUnwindSafe,
JE: RefUnwindSafe,
JK: RefUnwindSafe,
JS: RefUnwindSafe,
JT: RefUnwindSafe,
JU: RefUnwindSafe,
K: RefUnwindSafe,
RT: RefUnwindSafe,
S: RefUnwindSafe,
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> DeserializeOwned for T where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,
impl<T> Erased for T
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
U: TryFrom<T>,