pub struct OAuthProvider {Show 25 fields
pub uuid: Uuid,
pub name: CompactString,
pub description: Option<CompactString>,
pub client_id: CompactString,
pub client_secret: Option<EncryptedString>,
pub auth_url: String,
pub token_url: String,
pub info_url: String,
pub info_urls: IndexMap<CompactString, String>,
pub scopes: Vec<CompactString>,
pub identifier_path: String,
pub email_path: Option<String>,
pub username_path: Option<String>,
pub name_first_path: Option<String>,
pub name_last_path: Option<String>,
pub avatar_url_template: Option<String>,
pub avatar_overwrite: bool,
pub enabled: bool,
pub login_only: bool,
pub login_bypass_two_factor: bool,
pub link_viewable: bool,
pub user_manageable: bool,
pub basic_auth: bool,
pub pkce: bool,
pub created: NaiveDateTime,
/* private fields */
}Fields§
§uuid: Uuid§name: CompactString§description: Option<CompactString>§client_id: CompactString§client_secret: Option<EncryptedString>§auth_url: String§token_url: String§info_url: String§info_urls: IndexMap<CompactString, String>§scopes: Vec<CompactString>§identifier_path: String§email_path: Option<String>§username_path: Option<String>§name_first_path: Option<String>§name_last_path: Option<String>§avatar_url_template: Option<String>§avatar_overwrite: bool§enabled: bool§login_only: bool§login_bypass_two_factor: bool§link_viewable: bool§user_manageable: bool§basic_auth: bool§pkce: bool§created: NaiveDateTimeImplementations§
Source§impl OAuthProvider
impl OAuthProvider
Sourcepub async fn fetch_info(
&self,
client: &Client,
access_token: &str,
) -> Result<OAuthProviderInfo, Error>
pub async fn fetch_info( &self, client: &Client, access_token: &str, ) -> Result<OAuthProviderInfo, Error>
Fetches the info url and every additional info url with the user’s access token.
An additional info url responding with 404 is left out of the sources, so matchers on it fail as for a user outside of e.g. a discord guild. Any other failure aborts, since mappings revoking on a transient error would strip access the user still has.
pub async fn all_with_pagination( database: &Database, page: i64, per_page: i64, search: Option<&str>, ) -> Result<Pagination<Self>, DatabaseError>
pub async fn exists_usable_except( database: &Database, except: Option<Uuid>, ) -> Result<bool, Error>
pub async fn all_by_usable( database: &Database, ) -> Result<Vec<Self>, DatabaseError>
pub fn extract_identifier(&self, value: &Value) -> Result<String, Error>
pub fn extract_email(&self, value: &Value) -> Result<String, Error>
pub fn extract_username(&self, value: &Value) -> Result<String, Error>
pub fn extract_name_first(&self, value: &Value) -> Result<Option<String>, Error>
pub fn extract_name_last(&self, value: &Value) -> Result<Option<String>, Error>
Sourcepub fn extract_avatar_url(&self, value: &Value) -> Result<Option<String>, Error>
pub fn extract_avatar_url(&self, value: &Value) -> Result<Option<String>, Error>
Resolves avatar_url_template against a provider’s user info response, substituting every
{$.json.path} placeholder with the value found at that path.
A template that is nothing but a single placeholder yields that value verbatim, for the
providers that hand back a whole avatar url ({$.picture}). Anywhere else the placeholder
stands for one path or query component and its value is percent-encoded, so that a provider
returning a crafted value cannot rewrite the rest of the url
(https://cdn.discordapp.com/avatars/{$.id}/{$.avatar}.png).
Yields None when no template is configured or when any placeholder resolves to nothing,
which is the ordinary “this user has no avatar” case rather than an error.
Sourcepub async fn discover(
state: &State,
url: &Url,
) -> Result<DiscoveredOAuthProvider, Error>
pub async fn discover( state: &State, url: &Url, ) -> Result<DiscoveredOAuthProvider, Error>
Fetches an OpenID Connect discovery document and derives provider settings from it.
url may be either the issuer or the full /.well-known/openid-configuration url. Claim
paths are only filled in when the provider advertises the claim, as a configured path that
is missing from the userinfo response fails the login.
Trait Implementations§
Source§impl BaseModel for OAuthProvider
impl BaseModel for OAuthProvider
const NAME: &'static str = "oauth_provider"
fn get_extension_list() -> &'static ModelExtensionList
fn get_extension_data(&self) -> &ModelExtensionData
fn base_columns(prefix: Option<&str>) -> BTreeMap<&'static str, CompactString>
fn map(prefix: Option<&str>, row: &PgRow) -> Result<Self, DatabaseError>
fn cache_invalidation_keys(&self) -> Vec<CompactString>
Source§fn register_model_extension(
extension: impl ModelExtension + Send + Sync + 'static,
)
fn register_model_extension( extension: impl ModelExtension + Send + Sync + 'static, )
Source§fn parse_model_extension<Extension: SafeModelExtension>(
&self,
) -> Result<Extension::Value, DatabaseError>
fn parse_model_extension<Extension: SafeModelExtension>( &self, ) -> Result<Extension::Value, DatabaseError>
fn columns(prefix: Option<&str>) -> BTreeMap<&'static str, CompactString>
fn columns_sql(prefix: Option<&str>) -> CompactString
fn map_extensions( prefix: &str, row: &PgRow, ) -> Result<ModelExtensionData, DatabaseError>
Source§impl ByUuid for OAuthProvider
impl ByUuid for OAuthProvider
fn by_uuid<'life0, 'async_trait>(
database: &'life0 Database,
uuid: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Self, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn by_uuid_with_transaction<'life0, 'life1, 'async_trait>(
transaction: &'life0 mut Transaction<'life1, Postgres>,
uuid: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Self, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn by_uuid_cached<'life0, 'async_trait>(
database: &'life0 Database,
uuid: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Self, Error>> + Send + 'async_trait>>where
Self: Send + 'async_trait,
'life0: 'async_trait,
fn by_uuid_optional<'life0, 'async_trait>(
database: &'life0 Database,
uuid: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Self>, DatabaseError>> + Send + 'async_trait>>where
Self: Send + 'async_trait,
'life0: 'async_trait,
fn by_uuid_optional_with_transaction<'life0, 'life1, 'async_trait>(
transaction: &'life0 mut Transaction<'life1, Postgres>,
uuid: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Self>, DatabaseError>> + Send + 'async_trait>>where
Self: Send + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn by_uuid_optional_cached<'life0, 'async_trait>(
database: &'life0 Database,
uuid: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Self>, Error>> + Send + 'async_trait>>where
Self: Send + 'async_trait,
'life0: 'async_trait,
fn get_fetchable(uuid: Uuid) -> Fetchable<Self>
fn get_fetchable_from_row( row: &PgRow, column: impl AsRef<str>, ) -> Option<Fetchable<Self>>
fn invalidate_cached<'life0, 'async_trait>(
database: &'life0 Database,
uuid: Uuid,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: Send + 'async_trait,
'life0: 'async_trait,
Source§impl Clone for OAuthProvider
impl Clone for OAuthProvider
Source§fn clone(&self) -> OAuthProvider
fn clone(&self) -> OAuthProvider
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl CreatableModel for OAuthProvider
impl CreatableModel for OAuthProvider
type CreateOptions<'a> = CreateOAuthProviderOptions
type CreateResult = OAuthProvider
fn get_create_handlers() -> &'static LazyLock<CreateListenerList<Self>>
fn create_with_transaction<'life0, 'life1, 'life2, 'life3, 'async_trait>(
state: &'life0 State,
options: Self::CreateOptions<'life1>,
transaction: &'life2 mut Transaction<'life3, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<Self, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn register_create_handler<F: for<'a> Fn(&'a mut Self::CreateOptions<'_>, &'a mut InsertQueryBuilder<'_>, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'a>> + Send + Sync + 'static>( priority: ListenerPriority, callback: F, )
fn register_after_create_handler<F: for<'a> Fn(&'a mut Self::CreateResult, &'a Self::CreateOptions<'_>, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'a>> + Send + Sync + 'static>( priority: ListenerPriority, callback: F, )
fn run_create_handlers<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
options: &'life0 mut Self::CreateOptions<'life1>,
query_builder: &'life2 mut InsertQueryBuilder<'_>,
state: &'life3 State,
transaction: &'life4 mut Transaction<'life5, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
fn run_after_create_handlers<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
result: &'life0 mut Self::CreateResult,
options: &'life1 Self::CreateOptions<'life2>,
state: &'life3 State,
transaction: &'life4 mut Transaction<'life5, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
fn create<'life0, 'life1, 'async_trait>(
state: &'life0 State,
options: Self::CreateOptions<'life1>,
) -> Pin<Box<dyn Future<Output = Result<Self::CreateResult, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl DeletableModel for OAuthProvider
impl DeletableModel for OAuthProvider
type DeleteOptions = ()
fn get_delete_handlers() -> &'static LazyLock<DeleteHandlerList<Self>>
fn delete_with_transaction<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
state: &'life1 State,
options: Self::DeleteOptions,
transaction: &'life2 mut Transaction<'life3, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn register_delete_handler<F: for<'a> Fn(&'a Self, &'a Self::DeleteOptions, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>> + Send + Sync + 'static>( priority: ListenerPriority, callback: F, )
fn register_after_delete_handler<F: for<'a> Fn(&'a Self, &'a Self::DeleteOptions, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>> + Send + Sync + 'static>( priority: ListenerPriority, callback: F, )
fn run_delete_handlers<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
options: &'life1 Self::DeleteOptions,
state: &'life2 State,
transaction: &'life3 mut Transaction<'life4, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn run_after_delete_handlers<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
options: &'life1 Self::DeleteOptions,
state: &'life2 State,
transaction: &'life3 mut Transaction<'life4, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
state: &'life1 State,
options: Self::DeleteOptions,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl<'de> Deserialize<'de> for OAuthProvider
impl<'de> Deserialize<'de> for OAuthProvider
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl DuplicableModel for OAuthProvider
impl DuplicableModel for OAuthProvider
type DuplicateOptions<'a> = DuplicateOAuthProviderOptions
type DuplicateResult = OAuthProvider
fn get_duplicate_handlers() -> &'static LazyLock<DuplicateHandlerList<Self>>
fn duplicate_with_transaction<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
state: &'life1 State,
options: Self::DuplicateOptions<'life2>,
transaction: &'life3 mut Transaction<'life4, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<Self, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn register_duplicate_handler<F: for<'a> Fn(&'a Self, &'a Self::DuplicateOptions<'_>, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'a>> + Send + Sync + 'static>( priority: ListenerPriority, callback: F, )
fn register_after_duplicate_handler<F: for<'a> Fn(&'a Self, &'a mut Self::DuplicateResult, &'a Self::DuplicateOptions<'_>, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'a>> + Send + Sync + 'static>( priority: ListenerPriority, callback: F, )
fn run_duplicate_handlers<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
options: &'life1 Self::DuplicateOptions<'life2>,
state: &'life3 State,
transaction: &'life4 mut Transaction<'life5, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
fn run_after_duplicate_handlers<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'async_trait>(
&'life0 self,
duplicated: &'life1 mut Self::DuplicateResult,
options: &'life2 Self::DuplicateOptions<'life3>,
state: &'life4 State,
transaction: &'life5 mut Transaction<'life6, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
fn duplicate<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 State,
options: Self::DuplicateOptions<'life2>,
) -> Pin<Box<dyn Future<Output = Result<Self::DuplicateResult, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§impl IntoAdminApiObject for OAuthProvider
impl IntoAdminApiObject for OAuthProvider
type AdminApiObject = AdminApiOAuthProvider
type ExtraArgs<'a> = ()
fn into_admin_api_object<'a, 'life0, 'async_trait>(
self,
state: &'life0 State,
_args: Self::ExtraArgs<'a>,
) -> Pin<Box<dyn Future<Output = Result<Self::AdminApiObject, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
'life0: 'async_trait,
Source§impl IntoApiObject for OAuthProvider
impl IntoApiObject for OAuthProvider
type ApiObject = ApiOAuthProvider
type ExtraArgs<'a> = ()
fn into_api_object<'a, 'life0, 'async_trait>(
self,
state: &'life0 State,
_args: Self::ExtraArgs<'a>,
) -> Pin<Box<dyn Future<Output = Result<Self::ApiObject, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
'life0: 'async_trait,
Source§impl Serialize for OAuthProvider
impl Serialize for OAuthProvider
Source§impl UpdatableModel for OAuthProvider
impl UpdatableModel for OAuthProvider
type UpdateOptions = UpdateOAuthProviderOptions
fn get_update_handlers() -> &'static LazyLock<UpdateHandlerList<Self>>
fn update_with_transaction<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 mut self,
state: &'life1 State,
options: Self::UpdateOptions,
transaction: &'life2 mut Transaction<'life3, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn register_update_handler<F: for<'a> Fn(&'a mut Self, &'a mut Self::UpdateOptions, &'a mut UpdateQueryBuilder<'_>, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'a>> + Send + Sync + 'static>( priority: ListenerPriority, callback: F, )
fn register_after_update_handler<F: for<'a> Fn(&'a mut Self, &'a State, &'a mut Transaction<'_, Postgres>) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'a>> + Send + Sync + 'static>( priority: ListenerPriority, callback: F, )
fn run_update_handlers<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 mut self,
options: &'life1 mut Self::UpdateOptions,
query_builder: &'life2 mut UpdateQueryBuilder<'_>,
state: &'life3 State,
transaction: &'life4 mut Transaction<'life5, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
fn run_after_update_handlers<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 mut self,
state: &'life1 State,
transaction: &'life2 mut Transaction<'life3, Postgres>,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn update<'life0, 'life1, 'async_trait>(
&'life0 mut self,
state: &'life1 State,
options: Self::UpdateOptions,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Auto Trait Implementations§
impl !Freeze for OAuthProvider
impl RefUnwindSafe for OAuthProvider
impl Send for OAuthProvider
impl Sync for OAuthProvider
impl Unpin for OAuthProvider
impl UnsafeUnpin for OAuthProvider
impl UnwindSafe for OAuthProvider
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.