Skip to main content

Module send

Module send 

Source

Re-exportsΒ§

use std::collections::BTreeMap; πŸ”’
use std::iter::once; πŸ”’
use std::net::IpAddr; πŸ”’
use std::sync::atomic::AtomicBool; πŸ”’
use std::sync::atomic::Ordering; πŸ”’
use std::time::Duration; πŸ”’
use std::time::Instant; πŸ”’
use axum::extract::State; πŸ”’
use futures::FutureExt; πŸ”’
use futures::Stream; πŸ”’
use futures::StreamExt; πŸ”’
use futures::TryFutureExt; πŸ”’
use futures::TryStreamExt; πŸ”’
use ruma::CanonicalJsonObject; πŸ”’
use ruma::CanonicalJsonValue; πŸ”’
use ruma::MilliSecondsSinceUnixEpoch; πŸ”’
use ruma::OwnedDeviceId; πŸ”’
use ruma::OwnedEventId; πŸ”’
use ruma::OwnedRoomId; πŸ”’
use ruma::OwnedUserId; πŸ”’
use ruma::RoomId; πŸ”’
use ruma::ServerName; πŸ”’
use ruma::TransactionId; πŸ”’
use ruma::UserId; πŸ”’
use ruma::api::error::ErrorKind; πŸ”’
use ruma::api::federation::transactions::edu::DeviceListUpdateContent; πŸ”’
use ruma::api::federation::transactions::edu::DirectDeviceContent; πŸ”’
use ruma::api::federation::transactions::edu::Edu; πŸ”’
use ruma::api::federation::transactions::edu::PresenceContent; πŸ”’
use ruma::api::federation::transactions::edu::PresenceUpdate; πŸ”’
use ruma::api::federation::transactions::edu::ReceiptContent; πŸ”’
use ruma::api::federation::transactions::edu::ReceiptData; πŸ”’
use ruma::api::federation::transactions::edu::ReceiptMap; πŸ”’
use ruma::api::federation::transactions::edu::SigningKeyUpdateContent; πŸ”’
use ruma::api::federation::transactions::edu::TypingContent; πŸ”’
use ruma::api::federation::transactions::send_transaction_message; πŸ”’
use ruma::events::receipt::ReceiptEvent; πŸ”’
use ruma::events::receipt::ReceiptEventContent; πŸ”’
use ruma::events::receipt::ReceiptType; πŸ”’
use ruma::int; πŸ”’
use ruma::serde::Raw; πŸ”’
use ruma::to_device::DeviceIdOrAllDevices; πŸ”’
use ruma::uint; πŸ”’
use tuwunel_core::Err; πŸ”’
use tuwunel_core::Error; πŸ”’
use tuwunel_core::Result; πŸ”’
use tuwunel_core::debug; πŸ”’
use tuwunel_core::debug; πŸ”’
use tuwunel_core::debug::INFO_SPAN_LEVEL; πŸ”’
use tuwunel_core::debug_warn; πŸ”’
use tuwunel_core::defer; πŸ”’
use tuwunel_core::err; πŸ”’
use tuwunel_core::error; πŸ”’
use tuwunel_core::error; πŸ”’
use tuwunel_core::itertools::Itertools; πŸ”’
use tuwunel_core::result::LogErr; πŸ”’
use tuwunel_core::smallvec::SmallVec; πŸ”’
use tuwunel_core::trace; πŸ”’
use tuwunel_core::utils::debug::str_truncated; πŸ”’
use tuwunel_core::utils::future::TryExtExt; πŸ”’
use tuwunel_core::utils::millis_since_unix_epoch; πŸ”’
use tuwunel_core::utils::stream::BroadbandExt; πŸ”’
use tuwunel_core::utils::stream::IterStream; πŸ”’
use tuwunel_core::utils::stream::ReadyExt; πŸ”’
use tuwunel_core::utils::stream::TryBroadbandExt; πŸ”’
use tuwunel_core::utils::stream::automatic_width; πŸ”’
use tuwunel_core::warn; πŸ”’
use tuwunel_matrix::room::state::resolution::is_topologically_sorted_in_place; πŸ”’
use tuwunel_matrix::room::state::resolution::topological_sort; πŸ”’
use tuwunel_matrix::room::state::resolution::topological_sort; πŸ”’
use tuwunel_service::Services; πŸ”’
use tuwunel_service::sending::EDU_LIMIT; πŸ”’
use tuwunel_service::sending::PDU_LIMIT; πŸ”’
use tuwunel_service::users::DeviceListChange; πŸ”’
use crate::ClientIp; πŸ”’
use crate::Ruma; πŸ”’

FunctionsΒ§

already_sorted πŸ”’
Whether the batch is already in causal order, in which case the sort can be skipped.
handle πŸ”’
handle_edu πŸ”’
handle_edu_device_list_update πŸ”’
handle_edu_direct_to_device πŸ”’
handle_edu_direct_to_device_event πŸ”’
handle_edu_direct_to_device_user πŸ”’
handle_edu_presence πŸ”’
handle_edu_presence_update πŸ”’
handle_edu_receipt πŸ”’
handle_edu_receipt_room πŸ”’
handle_edu_receipt_room_user πŸ”’
handle_edu_signing_key_update πŸ”’
handle_edu_typing πŸ”’
handle_edus πŸ”’
handle_pdu πŸ”’
handle_pdus πŸ”’
handle_room πŸ”’
prev_event_ids πŸ”’
The prev_events of a PDU held as canonical JSON.
send_transaction_message_route πŸ”’
PUT /_matrix/federation/v1/send/{txnId}
sort_pdus πŸ”’
Reorder a room’s transaction PDUs so each event follows the in-batch events it references. An already-ordered batch is returned unchanged; references to events outside the batch are non-edges. The sort is an optimization, so a failure falls back to the arrival order.
to_device_deliverable πŸ”’
A local account we store or forward to-device events for.

Type AliasesΒ§

Deliveries πŸ”’
Recipient devices of one AllDevices to-device send paired with their inbox counts.
Pdu πŸ”’
ResolvedMap πŸ”’
RoomPdus πŸ”’
RoomsPdus πŸ”’
TxnPdus πŸ”’