Skip to main content

ClientBackend

Trait ClientBackend 

Source
pub trait ClientBackend:
    Debug
    + Send
    + Sync
    + 'static {
Show 34 methods // Required methods fn auth_start( &self, request: AuthStartRequest, ) -> BoxFuture<'static, BackendResult<AuthStartResult>>; fn auth_verify( &self, request: AuthVerifyRequest, ) -> BoxFuture<'static, BackendResult<AuthVerifyResult>>; fn resume_session( &self, ) -> BoxFuture<'static, BackendResult<ClientStatusSnapshot>>; fn connect( &self, request: ConnectRequest, ) -> BoxFuture<'static, BackendResult<ClientStatusSnapshot>>; fn logout(&self) -> BoxFuture<'static, BackendResult<()>>; fn dialogs( &self, request: DialogsRequest, ) -> BoxFuture<'static, BackendResult<DialogsPage>>; fn cached_dialogs( &self, request: DialogsRequest, ) -> BoxFuture<'static, BackendResult<DialogsPage>>; fn account_state( &self, ) -> BoxFuture<'static, BackendResult<AccountStateSnapshot>>; fn chat_state( &self, chat_id: InlineId, ) -> BoxFuture<'static, BackendResult<ChatStateSnapshot>>; fn history( &self, request: HistoryRequest, ) -> BoxFuture<'static, BackendResult<HistoryPage>>; fn cached_history( &self, request: HistoryRequest, ) -> BoxFuture<'static, BackendResult<HistoryPage>>; fn chat_participants( &self, request: ChatParticipantsRequest, ) -> BoxFuture<'static, BackendResult<ChatParticipantsPage>>; fn add_chat_participant( &self, request: AddChatParticipantRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>; fn remove_chat_participant( &self, request: RemoveChatParticipantRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>; fn update_chat_info( &self, request: UpdateChatInfoRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>; fn delete_chat( &self, request: DeleteChatRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>; fn create_dm( &self, request: CreateDmRequest, ) -> BoxFuture<'static, BackendResult<CreatedChat>>; fn create_thread( &self, request: CreateThreadRequest, ) -> BoxFuture<'static, BackendResult<CreatedChat>>; fn create_reply_thread( &self, request: CreateReplyThreadRequest, ) -> BoxFuture<'static, BackendResult<CreatedChat>>; fn send_text( &self, request: SendTextRequest, ) -> BoxFuture<'static, BackendResult<SendTextOutcome>>; fn send_media( &self, request: UploadRequest, bytes: Vec<u8>, ) -> BoxFuture<'static, BackendResult<SendTextOutcome>>; fn edit_message( &self, request: EditMessageRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>; fn delete_message( &self, request: DeleteMessageRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>; fn react( &self, request: ReactRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>; fn read( &self, request: ReadRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>; fn set_marked_unread( &self, request: SetMarkedUnreadRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>; fn update_dialog_notifications( &self, request: UpdateDialogNotificationsRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>; fn typing( &self, request: TypingRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>; fn receive_events( &self, ) -> BoxFuture<'static, BackendResult<Vec<ClientEvent>>>; // Provided methods fn receive_event_deliveries( &self, ) -> BoxFuture<'static, BackendResult<Vec<ClientEventDelivery>>> { ... } fn stage_client_events( &self, events: Vec<ClientEvent>, ) -> BoxFuture<'static, BackendResult<Vec<ClientEventDelivery>>> { ... } fn acknowledge_event_delivery( &self, _delivery_id: u64, ) -> BoxFuture<'static, BackendResult<()>> { ... } fn release_event_delivery(&self, _delivery_id: u64) { ... } fn reset_event_delivery_claims( &self, ) -> BoxFuture<'static, BackendResult<()>> { ... }
}
Expand description

Async backend boundary for the client runner.

Required Methods§

Source

fn auth_start( &self, request: AuthStartRequest, ) -> BoxFuture<'static, BackendResult<AuthStartResult>>

Sends an Inline login code.

Source

fn auth_verify( &self, request: AuthVerifyRequest, ) -> BoxFuture<'static, BackendResult<AuthVerifyResult>>

Verifies an Inline login code and persists the resulting session.

Source

fn resume_session( &self, ) -> BoxFuture<'static, BackendResult<ClientStatusSnapshot>>

Resumes a previously stored session, if available.

Source

fn connect( &self, request: ConnectRequest, ) -> BoxFuture<'static, BackendResult<ClientStatusSnapshot>>

Connects or reconnects the client.

Source

fn logout(&self) -> BoxFuture<'static, BackendResult<()>>

Logs out the current account.

Source

fn dialogs( &self, request: DialogsRequest, ) -> BoxFuture<'static, BackendResult<DialogsPage>>

Lists dialogs.

Source

fn cached_dialogs( &self, request: DialogsRequest, ) -> BoxFuture<'static, BackendResult<DialogsPage>>

Lists only durable cached dialogs without a network request.

Source

fn account_state( &self, ) -> BoxFuture<'static, BackendResult<AccountStateSnapshot>>

Loads account-level durable state used for consumer reconciliation.

Source

fn chat_state( &self, chat_id: InlineId, ) -> BoxFuture<'static, BackendResult<ChatStateSnapshot>>

Loads durable state for one chat used for consumer reconciliation.

Source

fn history( &self, request: HistoryRequest, ) -> BoxFuture<'static, BackendResult<HistoryPage>>

Fetches chat history.

Source

fn cached_history( &self, request: HistoryRequest, ) -> BoxFuture<'static, BackendResult<HistoryPage>>

Fetches only the client’s durable cached history without making a network request. This is intended for offline consumers and state reconciliation; ordinary callers should prefer Self::history.

Source

fn chat_participants( &self, request: ChatParticipantsRequest, ) -> BoxFuture<'static, BackendResult<ChatParticipantsPage>>

Fetches chat participants.

Source

fn add_chat_participant( &self, request: AddChatParticipantRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>

Adds a user to a chat.

Source

fn remove_chat_participant( &self, request: RemoveChatParticipantRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>

Removes a user from a chat.

Source

fn update_chat_info( &self, request: UpdateChatInfoRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>

Updates mutable chat metadata.

Source

fn delete_chat( &self, request: DeleteChatRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>

Deletes a chat when permitted by the service.

Source

fn create_dm( &self, request: CreateDmRequest, ) -> BoxFuture<'static, BackendResult<CreatedChat>>

Creates or opens a direct message chat.

Source

fn create_thread( &self, request: CreateThreadRequest, ) -> BoxFuture<'static, BackendResult<CreatedChat>>

Creates a regular Inline thread chat.

Source

fn create_reply_thread( &self, request: CreateReplyThreadRequest, ) -> BoxFuture<'static, BackendResult<CreatedChat>>

Creates a child/reply Inline thread chat.

Source

fn send_text( &self, request: SendTextRequest, ) -> BoxFuture<'static, BackendResult<SendTextOutcome>>

Sends a text message.

Source

fn send_media( &self, request: UploadRequest, bytes: Vec<u8>, ) -> BoxFuture<'static, BackendResult<SendTextOutcome>>

Uploads and sends a media message.

Source

fn edit_message( &self, request: EditMessageRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>

Edits a text message.

Source

fn delete_message( &self, request: DeleteMessageRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>

Deletes or unsends a message.

Source

fn react( &self, request: ReactRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>

Adds or removes a reaction.

Source

fn read( &self, request: ReadRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>

Marks messages read.

Source

fn set_marked_unread( &self, request: SetMarkedUnreadRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>

Sets the explicit marked-unread state for a chat.

Source

fn update_dialog_notifications( &self, request: UpdateDialogNotificationsRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>

Sets or clears a per-dialog notification override.

Source

fn typing( &self, request: TypingRequest, ) -> BoxFuture<'static, BackendResult<OperationOutcome>>

Sends a typing state.

Source

fn receive_events(&self) -> BoxFuture<'static, BackendResult<Vec<ClientEvent>>>

Receives the next batch of server-pushed client events.

Provided Methods§

Source

fn receive_event_deliveries( &self, ) -> BoxFuture<'static, BackendResult<Vec<ClientEventDelivery>>>

Receives the next event batch with durable delivery identifiers when the backend supports crash-safe host acknowledgement.

Source

fn stage_client_events( &self, events: Vec<ClientEvent>, ) -> BoxFuture<'static, BackendResult<Vec<ClientEventDelivery>>>

Stages locally produced operation/status events for lossless delivery.

Source

fn acknowledge_event_delivery( &self, _delivery_id: u64, ) -> BoxFuture<'static, BackendResult<()>>

Acknowledges one durable event after the host consumer has committed it.

Source

fn release_event_delivery(&self, _delivery_id: u64)

Releases a process-local claim when a consumer drops a delivery without acknowledging it. The durable store entry remains pending.

Source

fn reset_event_delivery_claims(&self) -> BoxFuture<'static, BackendResult<()>>

Releases process-local delivery claims after the receiver task stops. Durable events remain in the store and can be claimed after reconnect.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§