diff --git a/bindings/matrix-sdk-ffi/src/event.rs b/bindings/matrix-sdk-ffi/src/event.rs index 4903eb22b..73435f2c8 100644 --- a/bindings/matrix-sdk-ffi/src/event.rs +++ b/bindings/matrix-sdk-ffi/src/event.rs @@ -216,3 +216,101 @@ where event.as_original().context("Failed to get original content")?.content.clone(); Ok(original_content) } + +#[derive(Clone, uniffi::Enum)] +pub enum StateEventType { + CallMember, + PolicyRuleRoom, + PolicyRuleServer, + PolicyRuleUser, + RoomAliases, + RoomAvatar, + RoomCanonicalAlias, + RoomCreate, + RoomEncryption, + RoomGuestAccess, + RoomHistoryVisibility, + RoomJoinRules, + RoomMemberEvent, + RoomName, + RoomPinnedEvents, + RoomPowerLevels, + RoomServerAcl, + RoomThirdPartyInvite, + RoomTombstone, + RoomTopic, + SpaceChild, + SpaceParent, +} + +impl From for ruma::events::StateEventType { + fn from(val: StateEventType) -> Self { + match val { + StateEventType::CallMember => Self::CallMember, + StateEventType::PolicyRuleRoom => Self::PolicyRuleRoom, + StateEventType::PolicyRuleServer => Self::PolicyRuleServer, + StateEventType::PolicyRuleUser => Self::PolicyRuleUser, + StateEventType::RoomAliases => Self::RoomAliases, + StateEventType::RoomAvatar => Self::RoomAvatar, + StateEventType::RoomCanonicalAlias => Self::RoomCanonicalAlias, + StateEventType::RoomCreate => Self::RoomCreate, + StateEventType::RoomEncryption => Self::RoomEncryption, + StateEventType::RoomGuestAccess => Self::RoomGuestAccess, + StateEventType::RoomHistoryVisibility => Self::RoomHistoryVisibility, + StateEventType::RoomJoinRules => Self::RoomJoinRules, + StateEventType::RoomMemberEvent => Self::RoomMember, + StateEventType::RoomName => Self::RoomName, + StateEventType::RoomPinnedEvents => Self::RoomPinnedEvents, + StateEventType::RoomPowerLevels => Self::RoomPowerLevels, + StateEventType::RoomServerAcl => Self::RoomServerAcl, + StateEventType::RoomThirdPartyInvite => Self::RoomThirdPartyInvite, + StateEventType::RoomTombstone => Self::RoomTombstone, + StateEventType::RoomTopic => Self::RoomTopic, + StateEventType::SpaceChild => Self::SpaceChild, + StateEventType::SpaceParent => Self::SpaceParent, + } + } +} + +#[derive(Clone, uniffi::Enum)] +pub enum MessageLikeEventType { + CallAnswer, + CallCandidates, + CallHangup, + CallInvite, + KeyVerificationAccept, + KeyVerificationCancel, + KeyVerificationDone, + KeyVerificationKey, + KeyVerificationMac, + KeyVerificationReady, + KeyVerificationStart, + ReactionSent, + RoomEncrypted, + RoomMessage, + RoomRedaction, + Sticker, +} + +impl From for ruma::events::MessageLikeEventType { + fn from(val: MessageLikeEventType) -> Self { + match val { + MessageLikeEventType::CallAnswer => Self::CallAnswer, + MessageLikeEventType::CallInvite => Self::CallInvite, + MessageLikeEventType::CallHangup => Self::CallHangup, + MessageLikeEventType::CallCandidates => Self::CallCandidates, + MessageLikeEventType::KeyVerificationReady => Self::KeyVerificationReady, + MessageLikeEventType::KeyVerificationStart => Self::KeyVerificationStart, + MessageLikeEventType::KeyVerificationCancel => Self::KeyVerificationCancel, + MessageLikeEventType::KeyVerificationAccept => Self::KeyVerificationAccept, + MessageLikeEventType::KeyVerificationKey => Self::KeyVerificationKey, + MessageLikeEventType::KeyVerificationMac => Self::KeyVerificationMac, + MessageLikeEventType::KeyVerificationDone => Self::KeyVerificationDone, + MessageLikeEventType::ReactionSent => Self::Reaction, + MessageLikeEventType::RoomEncrypted => Self::RoomEncrypted, + MessageLikeEventType::RoomMessage => Self::RoomMessage, + MessageLikeEventType::RoomRedaction => Self::RoomRedaction, + MessageLikeEventType::Sticker => Self::Sticker, + } + } +} diff --git a/bindings/matrix-sdk-ffi/src/room.rs b/bindings/matrix-sdk-ffi/src/room.rs index 865f78039..360d480bf 100644 --- a/bindings/matrix-sdk-ffi/src/room.rs +++ b/bindings/matrix-sdk-ffi/src/room.rs @@ -17,8 +17,9 @@ use super::RUNTIME; use crate::{ chunk_iterator::ChunkIterator, error::{ClientError, MediaInfoError, RoomError}, + event::{MessageLikeEventType, StateEventType}, room_info::RoomInfo, - room_member::{MessageLikeEventType, RoomMember, StateEventType}, + room_member::RoomMember, ruma::ImageInfo, timeline::{EventTimelineItem, Timeline}, utils::u64_to_uint, diff --git a/bindings/matrix-sdk-ffi/src/room_member.rs b/bindings/matrix-sdk-ffi/src/room_member.rs index 4fb3e2777..1b84a5b7e 100644 --- a/bindings/matrix-sdk-ffi/src/room_member.rs +++ b/bindings/matrix-sdk-ffi/src/room_member.rs @@ -1,7 +1,10 @@ use matrix_sdk::room::{RoomMember as SdkRoomMember, RoomMemberRole}; use super::RUNTIME; -use crate::ClientError; +use crate::{ + event::{MessageLikeEventType, StateEventType}, + ClientError, +}; #[derive(Clone, uniffi::Enum)] pub enum MembershipState { @@ -145,101 +148,3 @@ impl RoomMember { RoomMember { inner: room_member } } } - -#[derive(Clone, uniffi::Enum)] -pub enum StateEventType { - CallMember, - PolicyRuleRoom, - PolicyRuleServer, - PolicyRuleUser, - RoomAliases, - RoomAvatar, - RoomCanonicalAlias, - RoomCreate, - RoomEncryption, - RoomGuestAccess, - RoomHistoryVisibility, - RoomJoinRules, - RoomMemberEvent, - RoomName, - RoomPinnedEvents, - RoomPowerLevels, - RoomServerAcl, - RoomThirdPartyInvite, - RoomTombstone, - RoomTopic, - SpaceChild, - SpaceParent, -} - -impl From for ruma::events::StateEventType { - fn from(val: StateEventType) -> Self { - match val { - StateEventType::CallMember => Self::CallMember, - StateEventType::PolicyRuleRoom => Self::PolicyRuleRoom, - StateEventType::PolicyRuleServer => Self::PolicyRuleServer, - StateEventType::PolicyRuleUser => Self::PolicyRuleUser, - StateEventType::RoomAliases => Self::RoomAliases, - StateEventType::RoomAvatar => Self::RoomAvatar, - StateEventType::RoomCanonicalAlias => Self::RoomCanonicalAlias, - StateEventType::RoomCreate => Self::RoomCreate, - StateEventType::RoomEncryption => Self::RoomEncryption, - StateEventType::RoomGuestAccess => Self::RoomGuestAccess, - StateEventType::RoomHistoryVisibility => Self::RoomHistoryVisibility, - StateEventType::RoomJoinRules => Self::RoomJoinRules, - StateEventType::RoomMemberEvent => Self::RoomMember, - StateEventType::RoomName => Self::RoomName, - StateEventType::RoomPinnedEvents => Self::RoomPinnedEvents, - StateEventType::RoomPowerLevels => Self::RoomPowerLevels, - StateEventType::RoomServerAcl => Self::RoomServerAcl, - StateEventType::RoomThirdPartyInvite => Self::RoomThirdPartyInvite, - StateEventType::RoomTombstone => Self::RoomTombstone, - StateEventType::RoomTopic => Self::RoomTopic, - StateEventType::SpaceChild => Self::SpaceChild, - StateEventType::SpaceParent => Self::SpaceParent, - } - } -} - -#[derive(Clone, uniffi::Enum)] -pub enum MessageLikeEventType { - CallAnswer, - CallCandidates, - CallHangup, - CallInvite, - KeyVerificationAccept, - KeyVerificationCancel, - KeyVerificationDone, - KeyVerificationKey, - KeyVerificationMac, - KeyVerificationReady, - KeyVerificationStart, - ReactionSent, - RoomEncrypted, - RoomMessage, - RoomRedaction, - Sticker, -} - -impl From for ruma::events::MessageLikeEventType { - fn from(val: MessageLikeEventType) -> Self { - match val { - MessageLikeEventType::CallAnswer => Self::CallAnswer, - MessageLikeEventType::CallInvite => Self::CallInvite, - MessageLikeEventType::CallHangup => Self::CallHangup, - MessageLikeEventType::CallCandidates => Self::CallCandidates, - MessageLikeEventType::KeyVerificationReady => Self::KeyVerificationReady, - MessageLikeEventType::KeyVerificationStart => Self::KeyVerificationStart, - MessageLikeEventType::KeyVerificationCancel => Self::KeyVerificationCancel, - MessageLikeEventType::KeyVerificationAccept => Self::KeyVerificationAccept, - MessageLikeEventType::KeyVerificationKey => Self::KeyVerificationKey, - MessageLikeEventType::KeyVerificationMac => Self::KeyVerificationMac, - MessageLikeEventType::KeyVerificationDone => Self::KeyVerificationDone, - MessageLikeEventType::ReactionSent => Self::Reaction, - MessageLikeEventType::RoomEncrypted => Self::RoomEncrypted, - MessageLikeEventType::RoomMessage => Self::RoomMessage, - MessageLikeEventType::RoomRedaction => Self::RoomRedaction, - MessageLikeEventType::Sticker => Self::Sticker, - } - } -}