Skip to main content

Module create

Module create 

Source

Re-exportsΒ§

use std::collections::BTreeMap; πŸ”’
use axum::extract::State; πŸ”’
use futures::FutureExt; πŸ”’
use futures::StreamExt; πŸ”’
use itertools::Itertools; πŸ”’
use ruma::CanonicalJsonObject; πŸ”’
use ruma::CanonicalJsonValue; πŸ”’
use ruma::EventEncryptionAlgorithm; πŸ”’
use ruma::Int; πŸ”’
use ruma::OwnedRoomAliasId; πŸ”’
use ruma::OwnedRoomId; πŸ”’
use ruma::OwnedUserId; πŸ”’
use ruma::RoomAliasId; πŸ”’
use ruma::RoomId; πŸ”’
use ruma::RoomVersionId; πŸ”’
use ruma::UserId; πŸ”’
use ruma::api::client::room; πŸ”’
use ruma::api::client::room::create_room; πŸ”’
use ruma::api::client::room::create_room::RoomPowerLevelsContentOverride; πŸ”’
use ruma::api::client::room::create_room::v3::CreationContent; πŸ”’
use ruma::api::client::room::create_room::v3::RoomPreset; πŸ”’
use ruma::events::StateEventType; πŸ”’
use ruma::events::TimelineEventType; πŸ”’
use ruma::events::ignored_user_list::IgnoredUserListEventContent; πŸ”’
use ruma::events::room::canonical_alias::RoomCanonicalAliasEventContent; πŸ”’
use ruma::events::room::create::PreviousRoom; πŸ”’
use ruma::events::room::create::RoomCreateEventContent; πŸ”’
use ruma::events::room::encryption::RoomEncryptionEventContent; πŸ”’
use ruma::events::room::guest_access::GuestAccess; πŸ”’
use ruma::events::room::guest_access::RoomGuestAccessEventContent; πŸ”’
use ruma::events::room::history_visibility::HistoryVisibility; πŸ”’
use ruma::events::room::history_visibility::RoomHistoryVisibilityEventContent; πŸ”’
use ruma::events::room::join_rules::JoinRule; πŸ”’
use ruma::events::room::join_rules::RoomJoinRulesEventContent; πŸ”’
use ruma::events::room::member::MembershipState; πŸ”’
use ruma::events::room::member::RoomMemberEventContent; πŸ”’
use ruma::events::room::name::RoomNameEventContent; πŸ”’
use ruma::events::room::power_levels::RoomPowerLevelsEventContent; πŸ”’
use ruma::events::room::topic::RoomTopicEventContent; πŸ”’
use ruma::int; πŸ”’
use ruma::room_version_rules::RoomIdFormatVersion; πŸ”’
use ruma::room_version_rules::RoomVersionRules; πŸ”’
use ruma::serde::JsonObject; πŸ”’
use ruma::serde::Raw; πŸ”’
use serde::Deserialize; πŸ”’
use serde::Deserialize; πŸ”’
use serde_json::Value as JsonValue; πŸ”’
use serde_json::json; πŸ”’
use serde_json::value::RawValue as RawJsonValue; πŸ”’
use serde_json::value::to_raw_value; πŸ”’
use tuwunel_core::Err; πŸ”’
use tuwunel_core::Error; πŸ”’
use tuwunel_core::Result; πŸ”’
use tuwunel_core::debug_info; πŸ”’
use tuwunel_core::debug_warn; πŸ”’
use tuwunel_core::err; πŸ”’
use tuwunel_core::info; πŸ”’
use tuwunel_core::info; πŸ”’
use tuwunel_core::utils::BoolExt; πŸ”’
use tuwunel_core::utils::IterStream; πŸ”’
use tuwunel_core::utils::ReadyExt; πŸ”’
use tuwunel_core::utils::json::serialized_len; πŸ”’
use tuwunel_core::utils::option::OptionExt; πŸ”’
use tuwunel_core::utils::result::FlatOk; πŸ”’
use tuwunel_core::warn; πŸ”’
use tuwunel_matrix::StateKey; πŸ”’
use tuwunel_matrix::pdu::Content; πŸ”’
use tuwunel_matrix::pdu::PduBuilder; πŸ”’
use tuwunel_matrix::room_version; πŸ”’
use tuwunel_service::Services; πŸ”’
use tuwunel_service::appservice::RegistrationInfo; πŸ”’
use tuwunel_service::profile::check_member_content; πŸ”’
use tuwunel_service::rooms::state::RoomMutexGuard; πŸ”’
use crate::Ruma; πŸ”’
use crate::utils::invite_check; πŸ”’

StructsΒ§

InitialEvent πŸ”’

FunctionsΒ§

apply_canonical_alias_pdu πŸ”’
apply_creator_join_pdu πŸ”’
apply_initial_state_pdus πŸ”’
apply_name_and_topic_pdus πŸ”’
apply_power_levels_pdu πŸ”’
apply_preset_state_pdus πŸ”’
build_power_levels_users πŸ”’
can_create_room_check πŸ”’
can_publish_directory_check πŸ”’
check_initial_member_content πŸ”’
copy_creator_predecessor_push_rule πŸ”’
create_create_event πŸ”’
create_create_event_legacy πŸ”’
create_room_route πŸ”’
custom_room_id_check πŸ”’
if a room is being created with a custom room ID, run our checks against it
default_power_levels_content πŸ”’
creates the power_levels_content for the PDU builder
encrypts_room πŸ”’
Whether initial_state already configures the room’s encryption.
expected_room_id_check πŸ”’
finalize_alias_and_directory πŸ”’
guest_access_pdu πŸ”’
invite_allowed πŸ”’
Gate an invitee against the sender’s own ignore list.
is_empty_content πŸ”’
merge_power_level_content_override πŸ”’
Replace each top-level power-levels key wholesale; no deep merge.
parse_initial_state πŸ”’
process_invites πŸ”’
room_alias_check πŸ”’
if a room is being created with a room alias, run our checks
take_initial πŸ”’