tuwunel_core/matrix/
room_version.rs1use ruma::{RoomVersionId, events::room::create::RoomCreateEventContent};
2pub use ruma::{RoomVersionId as RoomVersion, room_version_rules::RoomVersionRules};
3
4use crate::{Result, err, matrix::Event};
5
6pub fn rules(room_version_id: &RoomVersionId) -> Result<RoomVersionRules> {
7 room_version_id.rules().ok_or_else(|| {
8 err!(Request(UnsupportedRoomVersion(
9 "Unknown or unsupported room version {room_version_id:?}.",
10 )))
11 })
12}
13
14pub fn from_create_event<Pdu: Event>(create_event: &Pdu) -> Result<RoomVersionId> {
15 let content: RoomCreateEventContent = create_event.get_content()?;
16 Ok(from_create_content(&content).clone())
17}
18
19#[inline]
20#[must_use]
21pub fn from_create_content(content: &RoomCreateEventContent) -> &RoomVersionId {
22 &content.room_version
23}