pub struct Server {
pub inner: Arc<Inner>,
pub core: Arc<Core>,
}Fields§
§inner: Arc<Inner>§core: Arc<Core>Implementations§
Source§impl Server
impl Server
pub async fn email_to_id( &self, directory: &Directory, email: &str, session_id: u64, ) -> Result<Option<u32>>
pub async fn rcpt( &self, directory: &Directory, email: &str, session_id: u64, ) -> Result<RcptType>
pub async fn vrfy( &self, directory: &Directory, address: &str, session_id: u64, ) -> Result<Vec<String>>
pub async fn expn( &self, directory: &Directory, address: &str, session_id: u64, ) -> Result<Vec<String>>
Source§impl Server
impl Server
pub async fn get_access_token( &self, principal: impl Into<PrincipalOrId>, ) -> Result<Arc<AccessToken>>
pub async fn invalidate_principal_caches( &self, changed_principals: ChangedPrincipals, )
Source§impl Server
impl Server
pub async fn introspect_access_token( &self, token: &str, access_token: &AccessToken, ) -> Result<OAuthIntrospect>
Source§impl Server
impl Server
pub async fn encode_access_token( &self, grant_type: GrantType, account_id: u32, client_id: &str, expiry_in: u64, ) -> Result<String>
pub async fn validate_access_token( &self, expected_grant_type: Option<GrantType>, token_: &str, ) -> Result<TokenInfo>
pub async fn password_hash(&self, account_id: u32) -> Result<String>
Source§impl Server
impl Server
pub async fn is_http_authenticated_request_allowed( &self, access_token: &AccessToken, ) -> Result<Option<InFlight>>
pub async fn is_http_anonymous_request_allowed( &self, addr: &IpAddr, ) -> Result<()>
pub fn is_upload_allowed( &self, access_token: &AccessToken, ) -> Result<Option<InFlight>>
Source§impl Server
impl Server
pub async fn get_role_permissions( &self, role_id: u32, ) -> Result<Arc<RolePermissions>>
Source§impl Server
impl Server
pub async fn authenticate( &self, req: &AuthRequest<'_>, ) -> Result<Arc<AccessToken>>
Source§impl Server
impl Server
pub fn store(&self) -> &Store
pub fn blob_store(&self) -> &BlobStore
pub fn search_store(&self) -> &SearchStore
pub fn in_memory_store(&self) -> &InMemoryStore
pub fn directory(&self) -> &Directory
pub fn get_directory(&self, name: &str) -> Option<&Arc<Directory>>
pub fn get_directory_or_default( &self, name: &str, session_id: u64, ) -> &Arc<Directory> ⓘ
pub fn get_in_memory_store(&self, name: &str) -> Option<&InMemoryStore>
pub fn get_in_memory_store_or_default( &self, name: &str, session_id: u64, ) -> &InMemoryStore
pub fn get_data_store(&self, name: &str, session_id: u64) -> &Store
pub fn get_arc_sealer( &self, name: &str, session_id: u64, ) -> Option<Arc<ArcSealer>>
pub fn get_dkim_signer( &self, name: &str, session_id: u64, ) -> Option<Arc<DkimSigner>>
pub fn get_trusted_sieve_script( &self, name: &str, session_id: u64, ) -> Option<&Arc<Sieve>>
pub fn get_untrusted_sieve_script( &self, name: &str, session_id: u64, ) -> Option<&Arc<Sieve>>
pub fn get_route_or_default( &self, name: &str, session_id: u64, ) -> &RoutingStrategy
pub fn get_virtual_queue_or_default(&self, name: &QueueName) -> &VirtualQueue
pub fn get_queue_or_default( &self, name: &str, session_id: u64, ) -> &QueueStrategy
pub fn get_tls_or_default(&self, name: &str, session_id: u64) -> &TlsStrategy
pub fn get_connection_or_default( &self, name: &str, session_id: u64, ) -> &ConnectionStrategy
pub async fn get_used_quota(&self, account_id: u32) -> Result<i64>
pub async fn has_available_quota( &self, quotas: &ResourceToken, item_size: u64, ) -> Result<()>
pub async fn get_resource_token( &self, access_token: &AccessToken, account_id: u32, ) -> Result<ResourceToken>
pub async fn archives<I, CB>( &self, account_id: u32, collection: Collection, documents: &I, cb: CB, ) -> Result<()>
pub async fn all_archives<CB>( &self, account_id: u32, collection: Collection, field: u8, cb: CB, ) -> Result<()>
pub async fn document_ids( &self, account_id: u32, collection: Collection, field: impl Into<u8>, ) -> Result<RoaringBitmap>
pub async fn document_exists( &self, account_id: u32, collection: Collection, field: impl Into<u8>, filter: impl AsRef<[u8]>, ) -> Result<bool>
pub async fn document_ids_matching( &self, account_id: u32, collection: Collection, field: impl Into<u8>, filter: impl AsRef<[u8]>, ) -> Result<RoaringBitmap>
pub fn notify_task_queue(&self)
pub async fn total_queued_messages(&self) -> Result<u64>
pub fn generate_snowflake_id(&self) -> u64
pub async fn commit_batch(&self, builder: BatchBuilder) -> Result<AssignedIds>
pub async fn delete_changes( &self, account_id: u32, max_entries: Option<usize>, max_duration: Option<Duration>, ) -> Result<()>
pub async fn broadcast_push_notification( &self, notification: PushNotification, ) -> bool
pub async fn cluster_broadcast(&self, event: BroadcastEvent)
pub async fn put_jmap_blob( &self, account_id: u32, data: &[u8], ) -> Result<BlobId>
pub async fn put_temporary_blob( &self, account_id: u32, data: &[u8], hold_for: u64, ) -> Result<(BlobHash, BlobOp)>
pub async fn total_accounts(&self) -> Result<u64>
pub async fn total_domains(&self) -> Result<u64>
pub async fn spam_model_reload(&self) -> Result<()>
Source§impl Server
impl Server
pub async fn dns_exists_mx(&self, entry: &str) -> Result<bool>
pub async fn dns_exists_ip(&self, entry: &str) -> Result<bool>
pub async fn dns_exists_ptr(&self, entry: &str) -> Result<bool>
pub async fn dns_exists_ipv4(&self, entry: &str) -> Result<bool>
pub async fn dns_exists_ipv6(&self, entry: &str) -> Result<bool>
Source§impl Server
impl Server
pub async fn eval_if<'x, R: TryFrom<Variable<'x>>, V: ResolveVariable>( &'x self, if_block: &'x IfBlock, resolver: &'x V, session_id: u64, ) -> Option<R>
pub async fn eval_expr<'x, R: TryFrom<Variable<'x>>, V: ResolveVariable>( &'x self, expr: &'x Expression, resolver: &'x V, expr_id: &str, session_id: u64, ) -> Option<R>
Source§impl Server
impl Server
pub async fn init_acme(&self, provider: &AcmeProvider) -> Result<Duration>
pub fn has_acme_tls_providers(&self) -> bool
pub fn has_acme_http_providers(&self) -> bool
Source§impl Server
impl Server
pub async fn lookup_asn_country(&self, ip: IpAddr) -> AsnGeoLookupResult
Source§impl Server
impl Server
pub async fn is_rcpt_fail2banned(&self, ip: IpAddr, rcpt: &str) -> Result<bool>
pub async fn is_scanner_fail2banned(&self, ip: IpAddr) -> Result<bool>
pub async fn is_http_banned_path(&self, path: &str, ip: IpAddr) -> Result<bool>
pub async fn is_loiter_fail2banned(&self, ip: IpAddr) -> Result<bool>
pub async fn is_auth_fail2banned( &self, ip: IpAddr, login: Option<&str>, ) -> Result<bool>
pub async fn block_ip(&self, ip: IpAddr) -> Result<()>
pub fn has_auth_fail2ban(&self) -> bool
pub fn is_ip_blocked(&self, ip: &IpAddr) -> bool
pub fn is_ip_allowed(&self, ip: &IpAddr) -> bool
Source§impl Server
impl Server
pub async fn reload_blocked_ips(&self) -> Result<ReloadResult>
pub async fn reload_certificates(&self) -> Result<ReloadResult>
pub async fn reload_lookups(&self) -> Result<ReloadResult>
pub async fn reload(&self) -> Result<ReloadResult>
Source§impl Server
impl Server
pub async fn refresh_acls( &self, acl_changes: &[AclGrant], current: Option<&[AclGrant]>, )
pub async fn refresh_archived_acls( &self, acl_changes: &[AclGrant], acl_current: &[ArchivedAclGrant], )
Source§impl Server
impl Server
pub async fn get_blob_section( &self, hash: &BlobHash, section: &BlobSection, ) -> Result<Option<Vec<u8>>>
Source§impl Server
impl Server
pub async fn subscribe_push_manager( &self, access_token: &AccessToken, types: Bitmap<DataType>, ) -> Result<Receiver<PushNotification>>
Source§impl Server
impl Server
pub async fn process_alerts(&self) -> Option<Vec<AlertMessage>>
Source§impl Server
impl Server
pub fn is_enterprise_edition(&self) -> bool
pub fn licensed_accounts(&self) -> u32
pub fn log_license_details(&self)
pub async fn can_create_account(&self) -> Result<bool>
pub async fn logo_resource( &self, domain: &str, ) -> Result<Option<Resource<Vec<u8>>>>
Trait Implementations§
Source§impl AnalyzeReport for Server
impl AnalyzeReport for Server
fn analyze_report(&self, message: Message<'static>, session_id: u64)
Source§impl Authenticator for Server
impl Authenticator for Server
async fn authenticate_headers( &self, req: &HttpRequest, session: &HttpSessionData, allow_api_access: bool, ) -> Result<(Option<InFlight>, Arc<AccessToken>)>
Source§impl Autoconfig for Server
impl Autoconfig for Server
async fn handle_autoconfig_request( &self, req: &HttpRequest, ) -> Result<HttpResponse>
async fn handle_autodiscover_request( &self, body: Option<Vec<u8>>, ) -> Result<HttpResponse>
async fn autoconfig_parameters<'x>( &'x self, emailaddress: &'x str, fail_if_invalid: bool, ) -> Result<(String, String, &'x str)>
Source§impl BlobCopy for Server
impl BlobCopy for Server
async fn blob_copy( &self, request: CopyBlobRequest, access_token: &AccessToken, ) -> Result<CopyBlobResponse>
Source§impl BlobDownload for Server
impl BlobDownload for Server
async fn blob_download( &self, blob_id: &BlobId, access_token: &AccessToken, ) -> Result<Option<Vec<u8>>>
async fn has_access_blob( &self, blob_id: &BlobId, access_token: &AccessToken, ) -> Result<bool>
Source§impl BlobOperations for Server
impl BlobOperations for Server
async fn blob_get( &self, request: GetRequest<Blob>, access_token: &AccessToken, ) -> Result<GetResponse<Blob>>
async fn blob_lookup( &self, request: BlobLookupRequest, ) -> Result<BlobLookupResponse>
Source§impl BlobUpload for Server
impl BlobUpload for Server
async fn blob_upload_many( &self, request: BlobUploadRequest, access_token: &AccessToken, ) -> Result<BlobUploadResponse>
async fn blob_upload( &self, account_id: Id, content_type: &str, data: &[u8], access_token: Arc<AccessToken>, ) -> Result<UploadResponse>
Source§impl ChangesLookup for Server
impl ChangesLookup for Server
async fn changes( &self, request: ChangesRequest, object: MethodObject, access_token: &AccessToken, ) -> Result<IntermediateChangesResponse>
Source§impl ClientRegistrationHandler for Server
impl ClientRegistrationHandler for Server
async fn handle_oauth_registration_request( &self, req: &mut HttpRequest, session: HttpSessionData, ) -> Result<HttpResponse>
async fn validate_client_registration( &self, client_id: &str, redirect_uri: Option<&str>, account_id: u32, ) -> Result<Option<ErrorType>>
Source§impl CryptoHandler for Server
impl CryptoHandler for Server
async fn handle_crypto_get( &self, access_token: Arc<AccessToken>, ) -> Result<HttpResponse>
async fn handle_crypto_post( &self, access_token: Arc<AccessToken>, body: Option<Vec<u8>>, ) -> Result<HttpResponse>
Source§impl DavRequestHandler for Server
impl DavRequestHandler for Server
async fn handle_dav_request( &self, request: HttpRequest, access_token: Arc<AccessToken>, session: &HttpSessionData, resource: DavResourceName, method: DavMethod, ) -> HttpResponse
Source§impl DkimManagement for Server
impl DkimManagement for Server
async fn handle_manage_dkim( &self, req: &HttpRequest, path: Vec<&str>, body: Option<Vec<u8>>, access_token: &AccessToken, ) -> Result<HttpResponse>
async fn handle_get_public_key(&self, path: Vec<&str>) -> Result<HttpResponse>
async fn handle_create_signature( &self, body: Option<Vec<u8>>, ) -> Result<HttpResponse>
async fn create_dkim_key( &self, algo: Algorithm, id: impl AsRef<str>, domain: impl Into<String>, selector: impl Into<String>, ) -> Result<()>
Source§impl DmarcReporting for Server
impl DmarcReporting for Server
async fn send_dmarc_aggregate_report(&self, event: ReportEvent)
async fn generate_dmarc_aggregate_report( &self, event: &ReportEvent, rua: &mut Vec<URI>, serialized_size: Option<&mut Serializer<SerializedSize>>, span_id: u64, ) -> Result<Option<Report>>
async fn delete_dmarc_report(&self, event: ReportEvent)
async fn schedule_dmarc(&self, event: Box<DmarcEvent>)
Source§impl DnsLookup for Server
impl DnsLookup for Server
async fn ip_lookup( &self, key: &str, strategy: IpLookupStrategy, max_results: usize, ) -> Result<Vec<IpAddr>>
async fn resolve_host( &self, remote_host: &NextHop<'_>, envelope: &impl ResolveVariable, ) -> Result<IpLookupResult, Status<HostResponse<Box<str>>, ErrorDetails>>
Source§impl DnsManagement for Server
impl DnsManagement for Server
async fn handle_manage_dns( &self, req: &HttpRequest, path: Vec<&str>, access_token: &AccessToken, ) -> Result<HttpResponse>
async fn build_dns_records(&self, domain_name: &str) -> Result<Vec<DnsRecord>>
Source§impl EmailCopy for Server
impl EmailCopy for Server
async fn copy_message( &self, from_account_id: u32, from_message_id: u32, resource_token: &ResourceToken, mailboxes: Vec<u32>, keywords: Vec<Keyword>, received_at: Option<u64>, session_id: u64, ) -> Result<Result<IngestedEmail, CopyMessageError>>
Source§impl EmailDeletion for Server
impl EmailDeletion for Server
async fn emails_delete( &self, account_id: u32, tenant_id: Option<u32>, batch: &mut BatchBuilder, document_ids: RoaringBitmap, ) -> Result<RoaringBitmap>
async fn purge_accounts(&self, use_roles: bool)
async fn purge_account(&self, account_id: u32)
async fn emails_auto_expunge( &self, account_id: u32, hold_period: u64, ) -> Result<()>
async fn purge_email_submissions( &self, account_id: u32, hold_period: u64, ) -> Result<()>
Source§impl EmailGet for Server
impl EmailGet for Server
async fn email_get( &self, request: GetRequest<Email>, access_token: &AccessToken, ) -> Result<GetResponse<Email>>
Source§impl EmailImport for Server
impl EmailImport for Server
async fn email_import( &self, request: ImportEmailRequest, access_token: &AccessToken, session: &HttpSessionData, ) -> Result<ImportEmailResponse>
Source§impl EmailIngest for Server
impl EmailIngest for Server
async fn email_ingest(&self, params: IngestEmail<'_>) -> Result<IngestedEmail>
async fn find_thread_id( &self, account_id: u32, thread_name: &str, message_ids: &[CheekyHash], ) -> Result<ThreadResult>
async fn assign_email_ids( &self, account_id: u32, mailbox_ids: impl IntoIterator<Item = u32> + Sync + Send, generate_email_id: bool, ) -> Result<impl Iterator<Item = u32> + 'static>
async fn add_account_spam_sample( &self, batch: &mut BatchBuilder, account_id: u32, document_id: u32, is_spam: bool, span_id: u64, ) -> Result<()>
fn add_spam_sample( &self, batch: &mut BatchBuilder, hash: BlobHash, is_spam: bool, hold_sample: bool, span_id: u64, )
Source§impl EmailParse for Server
impl EmailParse for Server
async fn email_parse( &self, request: ParseRequest<Email>, access_token: &AccessToken, ) -> Result<ParseResponse<Email>>
Source§impl EmailQuery for Server
impl EmailQuery for Server
async fn email_query( &self, request: QueryRequest<Email>, access_token: &AccessToken, ) -> Result<QueryResponse>
Source§impl EmailSearchSnippet for Server
impl EmailSearchSnippet for Server
async fn email_search_snippet( &self, request: GetSearchSnippetRequest, access_token: &AccessToken, ) -> Result<GetSearchSnippetResponse>
Source§impl EmailSet for Server
impl EmailSet for Server
async fn email_set( &self, request: SetRequest<'_, Email>, access_token: &AccessToken, session: &HttpSessionData, ) -> Result<SetResponse<Email>>
Source§impl EmailSubmissionGet for Server
impl EmailSubmissionGet for Server
async fn email_submission_get( &self, request: GetRequest<EmailSubmission>, ) -> Result<GetResponse<EmailSubmission>>
Source§impl EmailSubmissionQuery for Server
impl EmailSubmissionQuery for Server
async fn email_submission_query( &self, request: QueryRequest<EmailSubmission>, ) -> Result<QueryResponse>
Source§impl EmailSubmissionSet for Server
impl EmailSubmissionSet for Server
async fn email_submission_set<'x>( &self, request: SetRequest<'x, EmailSubmission>, instance: &Arc<ServerInstance>, next_call: &mut Option<Call<RequestMethod<'x>>>, ) -> Result<SetResponse<EmailSubmission>>
async fn send_message( &self, account_id: u32, response: &SetResponse<EmailSubmission>, instance: &Arc<ServerInstance>, object: Value<'_, EmailSubmissionProperty, EmailSubmissionValue>, ) -> Result<Result<EmailSubmission, SetError<EmailSubmissionProperty>>>
Source§impl EventSourceHandler for Server
impl EventSourceHandler for Server
async fn handle_event_source( &self, req: HttpRequest, access_token: Arc<AccessToken>, ) -> Result<HttpResponse>
Source§impl FormHandler for Server
impl FormHandler for Server
async fn handle_contact_form( &self, session: &HttpSessionData, form: &ContactForm, form_data: FormData, ) -> Result<HttpResponse>
Source§impl GroupwareCache for Server
impl GroupwareCache for Server
async fn fetch_dav_resources( &self, access_token: &AccessToken, account_id: u32, collection: SyncCollection, ) -> Result<Arc<DavResources>>
async fn create_default_addressbook( &self, access_token: &AccessToken, account_id: u32, account_name: &str, ) -> Result<Option<u32>>
async fn create_default_calendar( &self, access_token: &AccessToken, account_id: u32, account_name: &str, ) -> Result<Option<u32>>
async fn get_or_create_default_calendar( &self, access_token: &AccessToken, account_id: u32, ) -> Result<Option<u32>>
fn cached_dav_resources( &self, account_id: u32, collection: SyncCollection, ) -> Option<Arc<DavResources>>
Source§impl HasQueueQuota for Server
impl HasQueueQuota for Server
async fn has_quota(&self, message: &mut MessageWrapper) -> bool
async fn check_quota<'x>( &'x self, quota: &'x QueueQuota, envelope: &impl ResolveVariable, size: u64, id: u64, refs: &mut Vec<QuotaKey>, session_id: u64, ) -> bool
Source§impl IdentityGet for Server
impl IdentityGet for Server
async fn identity_get( &self, request: GetRequest<Identity>, ) -> Result<GetResponse<Identity>>
async fn identity_get_or_create(&self, account_id: u32) -> Result<RoaringBitmap>
Source§impl IdentitySet for Server
impl IdentitySet for Server
async fn identity_set( &self, request: SetRequest<'_, Identity>, access_token: &AccessToken, ) -> Result<SetResponse<Identity>>
Source§impl IsAllowed for Server
impl IsAllowed for Server
async fn is_allowed<'x>( &'x self, throttle: &'x QueueRateLimiter, envelope: &impl ResolveVariable, session_id: u64, ) -> Result<(), u64>
Source§impl ItipAutoExpunge for Server
impl ItipAutoExpunge for Server
Source§impl ItipIngest for Server
impl ItipIngest for Server
async fn itip_ingest( &self, access_token: &AccessToken, resource_token: &ResourceToken, sender: &str, recipient: &str, itip_message: &str, ) -> Result<Option<ItipMessage<ICalendar>>, ItipIngestError>
async fn http_rsvp_url( &self, account_id: u32, document_id: u32, attendee: &str, ) -> Option<ItipRsvpUrl>
async fn http_rsvp_handle(&self, query: &str, language: &str) -> Result<String>
Source§impl JmapAcl for Server
impl JmapAcl for Server
async fn acl_validate( &self, grants: &[AclGrant], ) -> Result<(), ShareValidationError>
Source§impl JmapEmailCopy for Server
impl JmapEmailCopy for Server
async fn email_copy<'x>( &self, request: CopyRequest<'x, Email>, access_token: &AccessToken, next_call: &mut Option<Call<RequestMethod<'x>>>, session: &HttpSessionData, ) -> Result<CopyResponse<Email>>
Source§impl LockReport for Server
impl LockReport for Server
async fn try_lock_report(&self, key: &[u8]) -> bool
async fn unlock_report(&self, key: &[u8])
Source§impl LogManagement for Server
impl LogManagement for Server
async fn handle_view_logs( &self, req: &HttpRequest, access_token: &AccessToken, ) -> Result<HttpResponse>
Source§impl MailDelivery for Server
impl MailDelivery for Server
async fn deliver_message(&self, message: IngestMessage) -> LocalDeliveryResult
Source§impl MailboxDestroy for Server
impl MailboxDestroy for Server
async fn mailbox_destroy( &self, account_id: u32, document_id: u32, access_token: &AccessToken, remove_emails: bool, ) -> Result<Result<Option<u64>, MailboxDestroyError>>
Source§impl MailboxFnc for Server
impl MailboxFnc for Server
Source§impl MailboxGet for Server
impl MailboxGet for Server
async fn mailbox_get( &self, request: GetRequest<Mailbox>, access_token: &AccessToken, ) -> Result<GetResponse<Mailbox>>
Source§impl MailboxQuery for Server
impl MailboxQuery for Server
async fn mailbox_query( &self, request: QueryRequest<Mailbox>, access_token: &AccessToken, ) -> Result<QueryResponse>
Source§impl MailboxSet for Server
impl MailboxSet for Server
async fn mailbox_set( &self, request: SetRequest<'_, Mailbox>, access_token: &AccessToken, ) -> Result<SetResponse<Mailbox>>
async fn mailbox_set_item( &self, changes_: Map<'_, MailboxProperty, MailboxValue>, update: Option<(u32, Archive<Mailbox>)>, ctx: &SetContext<'_>, ) -> Result<Result<ObjectIndexBuilder<Mailbox, Mailbox>, SetError<MailboxProperty>>>
Source§impl ManageReload for Server
impl ManageReload for Server
async fn handle_manage_reload( &self, req: &HttpRequest, path: Vec<&str>, access_token: &AccessToken, ) -> Result<HttpResponse>
async fn handle_manage_update( &self, req: &HttpRequest, path: Vec<&str>, access_token: &AccessToken, ) -> Result<HttpResponse>
Source§impl ManageReports for Server
impl ManageReports for Server
async fn handle_manage_reports( &self, req: &HttpRequest, path: Vec<&str>, access_token: &AccessToken, ) -> Result<HttpResponse>
Source§impl ManageSettings for Server
impl ManageSettings for Server
async fn handle_manage_settings( &self, req: &HttpRequest, path: Vec<&str>, body: Option<Vec<u8>>, access_token: &AccessToken, ) -> Result<HttpResponse>
Source§impl ManageSpamHandler for Server
impl ManageSpamHandler for Server
async fn handle_manage_spam( &self, req: &HttpRequest, path: Vec<&str>, body: Option<Vec<u8>>, session: &HttpSessionData, access_token: &AccessToken, ) -> Result<HttpResponse>
Source§impl ManageStore for Server
impl ManageStore for Server
async fn handle_manage_store( &self, req: &HttpRequest, path: Vec<&str>, body: Option<Vec<u8>>, session: &HttpSessionData, access_token: &AccessToken, ) -> Result<HttpResponse>
async fn housekeeper_request( &self, event: HousekeeperEvent, ) -> Result<HttpResponse>
Source§impl ManagementApi for Server
impl ManagementApi for Server
async fn handle_api_manage_request( &self, req: &mut HttpRequest, access_token: Arc<AccessToken>, session: &HttpSessionData, ) -> Result<HttpResponse>
Source§impl MergeThreadsTask for Server
impl MergeThreadsTask for Server
async fn merge_threads( &self, account_id: u32, threads: &MergeThreadIds<AHashSet<u32>>, ) -> bool
Source§impl MessageCacheFetch for Server
impl MessageCacheFetch for Server
async fn get_cached_messages( &self, account_id: u32, ) -> Result<Arc<MessageStoreCache>>
Source§impl MtaStsLookup for Server
impl MtaStsLookup for Server
Source§impl OAuthApiHandler for Server
impl OAuthApiHandler for Server
async fn handle_oauth_api_request( &self, access_token: Arc<AccessToken>, body: Option<Vec<u8>>, ) -> Result<HttpResponse>
async fn handle_device_auth( &self, req: &mut HttpRequest, session: HttpSessionData, ) -> Result<HttpResponse>
async fn handle_oauth_metadata( &self, req: HttpRequest, session: HttpSessionData, ) -> Result<HttpResponse>
Source§impl OpenIdHandler for Server
impl OpenIdHandler for Server
async fn handle_userinfo_request( &self, access_token: &AccessToken, ) -> Result<HttpResponse>
async fn handle_oidc_metadata( &self, req: HttpRequest, session: HttpSessionData, ) -> Result<HttpResponse>
Source§impl ParseHttp for Server
impl ParseHttp for Server
async fn parse_http_request( &self, req: HttpRequest, session: HttpSessionData, ) -> Result<HttpResponse>
Source§impl PrincipalGet for Server
impl PrincipalGet for Server
async fn principal_get( &self, request: GetRequest<Principal>, access_token: &AccessToken, ) -> Result<GetResponse<Principal>>
Source§impl PrincipalManager for Server
impl PrincipalManager for Server
async fn handle_manage_principal( &self, req: &HttpRequest, path: Vec<&str>, body: Option<Vec<u8>>, access_token: &AccessToken, ) -> Result<HttpResponse>
async fn handle_account_auth_get( &self, access_token: Arc<AccessToken>, ) -> Result<HttpResponse>
async fn handle_account_auth_post( &self, req: &HttpRequest, access_token: Arc<AccessToken>, body: Option<Vec<u8>>, ) -> Result<HttpResponse>
fn assert_supported_directory(&self, override_: bool) -> Result<()>
Source§impl PrincipalQuery for Server
impl PrincipalQuery for Server
async fn principal_query( &self, request: QueryRequest<Principal>, access_token: &AccessToken, session: &HttpSessionData, ) -> Result<QueryResponse>
Source§impl PushSubscriptionFetch for Server
impl PushSubscriptionFetch for Server
async fn push_subscription_get( &self, request: GetRequest<PushSubscription>, access_token: &AccessToken, ) -> Result<GetResponse<PushSubscription>>
Source§impl PushSubscriptionSet for Server
impl PushSubscriptionSet for Server
async fn push_subscription_set( &self, request: SetRequest<'_, PushSubscription>, access_token: &AccessToken, ) -> Result<SetResponse<PushSubscription>>
Source§impl QueryChanges for Server
impl QueryChanges for Server
async fn query_changes( &self, request: QueryChangesRequestMethod, access_token: &AccessToken, ) -> Result<QueryChangesResponse>
Source§impl QueueManagement for Server
impl QueueManagement for Server
async fn handle_manage_queue( &self, req: &HttpRequest, path: Vec<&str>, access_token: &AccessToken, ) -> Result<HttpResponse>
Source§impl QuotaGet for Server
impl QuotaGet for Server
async fn quota_get( &self, request: GetRequest<Quota>, access_token: &AccessToken, ) -> Result<GetResponse<Quota>>
Source§impl QuotaQuery for Server
impl QuotaQuery for Server
async fn quota_query( &self, request: QueryRequest<Quota>, access_token: &AccessToken, ) -> Result<QueryResponse>
Source§impl ReindexIndexTask for Server
impl ReindexIndexTask for Server
Source§impl RequestHandler for Server
impl RequestHandler for Server
async fn handle_jmap_request<'x>( &self, request: Request<'x>, access_token: Arc<AccessToken>, session: &HttpSessionData, ) -> Response<'x>
async fn handle_method_call<'x>( &self, method: RequestMethod<'x>, method_name: MethodName, access_token: &AccessToken, next_call: &mut Option<Call<RequestMethod<'x>>>, session: &HttpSessionData, ) -> Result<ResponseMethod<'x>>
Source§impl RunScript for Server
impl RunScript for Server
async fn run_script( &self, script_id: String, script: Arc<Sieve>, params: ScriptParameters<'_>, ) -> ScriptResult
Source§impl SendAlarmTask for Server
impl SendAlarmTask for Server
async fn send_alarm( &self, account_id: u32, document_id: u32, alarm: &CalendarAlarm, server_instance: Arc<ServerInstance>, ) -> bool
Source§impl SendDsn for Server
impl SendDsn for Server
async fn send_dsn(&self, message: &mut MessageWrapper)
async fn log_dsn(&self, message: &MessageWrapper)
Source§impl SendImipTask for Server
impl SendImipTask for Server
Source§impl SessionHandler for Server
impl SessionHandler for Server
async fn handle_session_resource( &self, base_url: String, access_token: Arc<AccessToken>, ) -> Result<Session>
Source§impl SieveScriptDelete for Server
impl SieveScriptDelete for Server
async fn sieve_script_delete( &self, account_id: u32, document_id: u32, access_token: &AccessToken, batch: &mut BatchBuilder, ) -> Result<bool>
Source§impl SieveScriptGet for Server
impl SieveScriptGet for Server
async fn sieve_script_get( &self, request: GetRequest<Sieve>, ) -> Result<GetResponse<Sieve>>
Source§impl SieveScriptIngest for Server
impl SieveScriptIngest for Server
async fn sieve_script_ingest( &self, access_token: &AccessToken, blob_hash: &BlobHash, raw_message: &[u8], envelope_from: &str, envelope_from_authenticated: bool, envelope_to: &IngestRecipient, session_id: u64, active_script: ActiveScript, autogenerated: &mut Vec<AutogeneratedMessage>, ) -> Result<IngestedEmail>
async fn sieve_script_get_active_id( &self, account_id: u32, ) -> Result<Option<u32>>
async fn sieve_script_get_active( &self, account_id: u32, ) -> Result<Option<ActiveScript>>
async fn sieve_script_get_by_name( &self, account_id: u32, name: &str, ) -> Result<Option<Sieve>>
async fn sieve_script_compile( &self, account_id: u32, document_id: u32, ) -> Result<Option<CompiledScript>>
Source§impl SieveScriptQuery for Server
impl SieveScriptQuery for Server
async fn sieve_script_query( &self, request: QueryRequest<Sieve>, ) -> Result<QueryResponse>
Source§impl SieveScriptSet for Server
impl SieveScriptSet for Server
async fn sieve_script_set( &self, request: SetRequest<'_, Sieve>, access_token: &AccessToken, session: &HttpSessionData, ) -> Result<SetResponse<Sieve>>
async fn sieve_set_item<'x>( &self, changes_: Value<'_, SieveProperty, SieveValue>, update: Option<(u32, Archive<&'x ArchivedSieveScript>)>, ctx: &SetContext<'_>, session_id: u64, ) -> Result<Result<(ObjectIndexBuilder<&'x ArchivedSieveScript, SieveScript>, Option<Vec<u8>>), SetError<SieveProperty>>>
Source§impl SieveScriptValidate for Server
impl SieveScriptValidate for Server
async fn sieve_script_validate( &self, request: ValidateSieveScriptRequest, access_token: &AccessToken, ) -> Result<ValidateSieveScriptResponse>
Source§impl SmtpReporting for Server
impl SmtpReporting for Server
async fn send_report( &self, from_addr: &str, rcpts: impl Iterator<Item = impl AsRef<str> + Sync + Send> + Sync + Send, report: Vec<u8>, sign_config: &IfBlock, deliver_now: bool, parent_session_id: u64, )
async fn send_autogenerated( &self, from_addr: impl AsRef<str> + Sync + Send, rcpts: impl Iterator<Item = impl AsRef<str> + Sync + Send> + Sync + Send, raw_message: Vec<u8>, sign_config: Option<&IfBlock>, parent_session_id: u64, )
async fn schedule_report(&self, report: impl Into<ReportingEvent> + Sync + Send)
async fn sign_message( &self, message: &mut MessageWrapper, config: &IfBlock, bytes: &[u8], ) -> Option<Vec<u8>>
Source§impl SmtpSpool for Server
impl SmtpSpool for Server
fn new_message( &self, return_path: impl AsRef<str>, span_id: u64, ) -> MessageWrapper
async fn next_event(&self, queue: &mut Queue) -> QueuedMessages
async fn try_lock_event(&self, queue_id: QueueId, queue_name: QueueName) -> bool
async fn unlock_event(&self, queue_id: QueueId, queue_name: QueueName)
async fn read_message( &self, queue_id: QueueId, queue_name: QueueName, ) -> Option<MessageWrapper>
async fn read_message_archive( &self, id: QueueId, ) -> Result<Option<Archive<AlignedBytes>>>
Source§impl SpamClassifier for Server
impl SpamClassifier for Server
async fn spam_train(&self, retrain: bool) -> Result<()>
async fn spam_classify(&self, ctx: &mut SpamFilterContext<'_>) -> Result<()>
async fn spam_build_tokens<'x>( &self, ctx: &'x SpamFilterContext<'_>, ) -> Tokens<'x>
Source§impl SpamFilterAnalyzeClassify for Server
impl SpamFilterAnalyzeClassify for Server
async fn spam_filter_analyze_classify(&self, ctx: &mut SpamFilterContext<'_>)
async fn spam_filter_analyze_spam_trap( &self, ctx: &mut SpamFilterContext<'_>, ) -> bool
Source§impl SpamFilterAnalyzeDate for Server
impl SpamFilterAnalyzeDate for Server
async fn spam_filter_analyze_date(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeDmarc for Server
impl SpamFilterAnalyzeDmarc for Server
async fn spam_filter_analyze_dmarc(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeDomain for Server
impl SpamFilterAnalyzeDomain for Server
async fn spam_filter_analyze_domain(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeEhlo for Server
impl SpamFilterAnalyzeEhlo for Server
async fn spam_filter_analyze_ehlo(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeFrom for Server
impl SpamFilterAnalyzeFrom for Server
async fn spam_filter_analyze_from(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeHeaders for Server
impl SpamFilterAnalyzeHeaders for Server
async fn spam_filter_analyze_headers(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeHtml for Server
impl SpamFilterAnalyzeHtml for Server
async fn spam_filter_analyze_html(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeIp for Server
impl SpamFilterAnalyzeIp for Server
async fn spam_filter_analyze_ip(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeLlm for Server
impl SpamFilterAnalyzeLlm for Server
async fn spam_filter_analyze_llm(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeMid for Server
impl SpamFilterAnalyzeMid for Server
async fn spam_filter_analyze_message_id(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeMime for Server
impl SpamFilterAnalyzeMime for Server
async fn spam_filter_analyze_mime(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzePyzor for Server
impl SpamFilterAnalyzePyzor for Server
async fn spam_filter_analyze_pyzor(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeReceived for Server
impl SpamFilterAnalyzeReceived for Server
async fn spam_filter_analyze_received(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeRecipient for Server
impl SpamFilterAnalyzeRecipient for Server
async fn spam_filter_analyze_recipient(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeReplyTo for Server
impl SpamFilterAnalyzeReplyTo for Server
async fn spam_filter_analyze_reply_to(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeRules for Server
impl SpamFilterAnalyzeRules for Server
async fn spam_filter_analyze_rules(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeScore for Server
impl SpamFilterAnalyzeScore for Server
async fn spam_filter_finalize( &self, ctx: &mut SpamFilterContext<'_>, ) -> SpamFilterAction<SpamFilterScore>
async fn spam_filter_classify( &self, ctx: &mut SpamFilterContext<'_>, ) -> SpamFilterAction<SpamFilterScore>
Source§impl SpamFilterAnalyzeSubject for Server
impl SpamFilterAnalyzeSubject for Server
async fn spam_filter_analyze_subject(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterAnalyzeUrl for Server
impl SpamFilterAnalyzeUrl for Server
async fn spam_filter_analyze_url(&self, ctx: &mut SpamFilterContext<'_>)
Source§impl SpamFilterInit for Server
impl SpamFilterInit for Server
fn spam_filter_init<'x>( &self, input: SpamFilterInput<'x>, ) -> SpamFilterContext<'x>
Source§impl StateManager for Server
impl StateManager for Server
Source§impl TelemetryApi for Server
impl TelemetryApi for Server
async fn handle_telemetry_api_request( &self, req: &HttpRequest, path: Vec<&str>, access_token: &AccessToken, ) -> Result<HttpResponse>
Source§impl ThreadGet for Server
impl ThreadGet for Server
async fn thread_get( &self, request: GetRequest<Thread>, ) -> Result<GetResponse<Thread>>
Source§impl TlsReporting for Server
impl TlsReporting for Server
async fn send_tls_aggregate_report(&self, events: Vec<ReportEvent>)
async fn generate_tls_aggregate_report( &self, events: &[ReportEvent], rua: &mut Vec<ReportUri>, serialized_size: Option<&mut Serializer<SerializedSize>>, span_id: u64, ) -> Result<Option<TlsReport>>
async fn schedule_tls(&self, event: Box<TlsEvent>)
async fn delete_tls_report(&self, events: Vec<ReportEvent>)
Source§impl TlsaLookup for Server
impl TlsaLookup for Server
Source§impl TokenHandler for Server
impl TokenHandler for Server
async fn handle_token_request( &self, req: &mut HttpRequest, session: HttpSessionData, ) -> Result<HttpResponse>
async fn handle_token_introspect( &self, req: &mut HttpRequest, access_token: &AccessToken, session_id: u64, ) -> Result<HttpResponse>
async fn issue_token( &self, account_id: u32, client_id: &str, issuer: String, nonce: Option<String>, with_refresh_token: bool, with_id_token: bool, ) -> Result<OAuthResponse>
Source§impl TroubleshootApi for Server
impl TroubleshootApi for Server
async fn handle_troubleshoot_api_request( &self, req: &HttpRequest, path: Vec<&str>, access_token: &AccessToken, body: Option<Vec<u8>>, ) -> Result<HttpResponse>
Source§impl UndeleteApi for Server
impl UndeleteApi for Server
async fn handle_undelete_api_request( &self, req: &HttpRequest, path: Vec<&str>, body: Option<Vec<u8>>, session: &HttpSessionData, ) -> Result<HttpResponse>
Source§impl VacationResponseGet for Server
impl VacationResponseGet for Server
async fn vacation_response_get( &self, request: GetRequest<VacationResponse>, ) -> Result<GetResponse<VacationResponse>>
async fn get_vacation_sieve_script_id( &self, account_id: u32, ) -> Result<Option<u32>>
Source§impl VacationResponseSet for Server
impl VacationResponseSet for Server
async fn vacation_response_set( &self, request: SetRequest<'_, VacationResponse>, access_token: &AccessToken, ) -> Result<SetResponse<VacationResponse>>
fn build_script(&self, obj: &mut SieveScript) -> Result<Vec<u8>>
Source§impl WebSocketHandler for Server
impl WebSocketHandler for Server
async fn handle_websocket_stream( &self, stream: WebSocketStream<TokioIo<Upgraded>>, access_token: Arc<AccessToken>, session: HttpSessionData, )
Source§impl WebSocketUpgrade for Server
impl WebSocketUpgrade for Server
async fn upgrade_websocket_connection( &self, req: HttpRequest, access_token: Arc<AccessToken>, session: HttpSessionData, ) -> Result<HttpResponse>
Auto Trait Implementations§
impl Freeze for Server
impl !RefUnwindSafe for Server
impl Send for Server
impl Sync for Server
impl Unpin for Server
impl UnsafeUnpin for Server
impl !UnwindSafe for Server
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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>
Converts
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>
Converts
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§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,
Borrows
self and passes that borrow into the pipe function. Read moreSource§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,
Mutably borrows
self and passes that borrow into the pipe function. Read moreSource§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
Source§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
Source§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
Borrows
self, then passes self.as_ref() into the pipe function.Source§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
Mutably borrows
self, then passes self.as_mut() into the pipe
function.Source§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
Borrows
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.Source§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
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.Source§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
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.