@@ -8547,6 +8547,11 @@ public protocol RoomPreviewProtocol : AnyObject {
8547
8547
*/
8548
8548
func leave() async throws
8549
8549
8550
+ /**
8551
+ * Get the membership details for the current user.
8552
+ */
8553
+ func ownMembershipDetails() async -> RoomMembershipDetails?
8554
+
8550
8555
}
8551
8556
8552
8557
/**
@@ -8648,6 +8653,27 @@ open func leave()async throws {
8648
8653
)
8649
8654
}
8650
8655
8656
+ /**
8657
+ * Get the membership details for the current user.
8658
+ */
8659
+ open func ownMembershipDetails()async -> RoomMembershipDetails? {
8660
+ return
8661
+ try! await uniffiRustCallAsync(
8662
+ rustFutureFunc: {
8663
+ uniffi_matrix_sdk_ffi_fn_method_roompreview_own_membership_details(
8664
+ self.uniffiClonePointer()
8665
+
8666
+ )
8667
+ },
8668
+ pollFunc: ffi_matrix_sdk_ffi_rust_future_poll_rust_buffer,
8669
+ completeFunc: ffi_matrix_sdk_ffi_rust_future_complete_rust_buffer,
8670
+ freeFunc: ffi_matrix_sdk_ffi_rust_future_free_rust_buffer,
8671
+ liftFunc: FfiConverterOptionTypeRoomMembershipDetails.lift,
8672
+ errorHandler: nil
8673
+
8674
+ )
8675
+ }
8676
+
8651
8677
8652
8678
}
8653
8679
@@ -12755,6 +12781,7 @@ public struct EventTimelineItem {
12755
12781
public var timestamp: Timestamp
12756
12782
public var reactions: [Reaction]
12757
12783
public var localSendState: EventSendState?
12784
+ public var localCreatedAt: UInt64?
12758
12785
public var readReceipts: [String: Receipt]
12759
12786
public var origin: EventItemOrigin?
12760
12787
public var canBeRepliedTo: Bool
@@ -12765,7 +12792,7 @@ public struct EventTimelineItem {
12765
12792
public init(
12766
12793
/**
12767
12794
* Indicates that an event is remote.
12768
- */isRemote: Bool, eventOrTransactionId: EventOrTransactionId, sender: String, senderProfile: ProfileDetails, isOwn: Bool, isEditable: Bool, content: TimelineItemContent, timestamp: Timestamp, reactions: [Reaction], localSendState: EventSendState?, readReceipts: [String: Receipt], origin: EventItemOrigin?, canBeRepliedTo: Bool, lazyProvider: LazyTimelineItemProvider) {
12795
+ */isRemote: Bool, eventOrTransactionId: EventOrTransactionId, sender: String, senderProfile: ProfileDetails, isOwn: Bool, isEditable: Bool, content: TimelineItemContent, timestamp: Timestamp, reactions: [Reaction], localSendState: EventSendState?, localCreatedAt: UInt64?, readReceipts: [String: Receipt], origin: EventItemOrigin?, canBeRepliedTo: Bool, lazyProvider: LazyTimelineItemProvider) {
12769
12796
self.isRemote = isRemote
12770
12797
self.eventOrTransactionId = eventOrTransactionId
12771
12798
self.sender = sender
@@ -12776,6 +12803,7 @@ public struct EventTimelineItem {
12776
12803
self.timestamp = timestamp
12777
12804
self.reactions = reactions
12778
12805
self.localSendState = localSendState
12806
+ self.localCreatedAt = localCreatedAt
12779
12807
self.readReceipts = readReceipts
12780
12808
self.origin = origin
12781
12809
self.canBeRepliedTo = canBeRepliedTo
@@ -12799,6 +12827,7 @@ public struct FfiConverterTypeEventTimelineItem: FfiConverterRustBuffer {
12799
12827
timestamp: FfiConverterTypeTimestamp.read(from: &buf),
12800
12828
reactions: FfiConverterSequenceTypeReaction.read(from: &buf),
12801
12829
localSendState: FfiConverterOptionTypeEventSendState.read(from: &buf),
12830
+ localCreatedAt: FfiConverterOptionUInt64.read(from: &buf),
12802
12831
readReceipts: FfiConverterDictionaryStringTypeReceipt.read(from: &buf),
12803
12832
origin: FfiConverterOptionTypeEventItemOrigin.read(from: &buf),
12804
12833
canBeRepliedTo: FfiConverterBool.read(from: &buf),
@@ -12817,6 +12846,7 @@ public struct FfiConverterTypeEventTimelineItem: FfiConverterRustBuffer {
12817
12846
FfiConverterTypeTimestamp.write(value.timestamp, into: &buf)
12818
12847
FfiConverterSequenceTypeReaction.write(value.reactions, into: &buf)
12819
12848
FfiConverterOptionTypeEventSendState.write(value.localSendState, into: &buf)
12849
+ FfiConverterOptionUInt64.write(value.localCreatedAt, into: &buf)
12820
12850
FfiConverterDictionaryStringTypeReceipt.write(value.readReceipts, into: &buf)
12821
12851
FfiConverterOptionTypeEventItemOrigin.write(value.origin, into: &buf)
12822
12852
FfiConverterBool.write(value.canBeRepliedTo, into: &buf)
@@ -15578,10 +15608,11 @@ public struct RoomMember {
15578
15608
public var normalizedPowerLevel: Int64
15579
15609
public var isIgnored: Bool
15580
15610
public var suggestedRoleForPowerLevel: RoomMemberRole
15611
+ public var membershipChangeReason: String?
15581
15612
15582
15613
// Default memberwise initializers are never public by default, so we
15583
15614
// declare one manually.
15584
- public init(userId: String, displayName: String?, avatarUrl: String?, membership: MembershipState, isNameAmbiguous: Bool, powerLevel: Int64, normalizedPowerLevel: Int64, isIgnored: Bool, suggestedRoleForPowerLevel: RoomMemberRole) {
15615
+ public init(userId: String, displayName: String?, avatarUrl: String?, membership: MembershipState, isNameAmbiguous: Bool, powerLevel: Int64, normalizedPowerLevel: Int64, isIgnored: Bool, suggestedRoleForPowerLevel: RoomMemberRole, membershipChangeReason: String? ) {
15585
15616
self.userId = userId
15586
15617
self.displayName = displayName
15587
15618
self.avatarUrl = avatarUrl
@@ -15591,6 +15622,7 @@ public struct RoomMember {
15591
15622
self.normalizedPowerLevel = normalizedPowerLevel
15592
15623
self.isIgnored = isIgnored
15593
15624
self.suggestedRoleForPowerLevel = suggestedRoleForPowerLevel
15625
+ self.membershipChangeReason = membershipChangeReason
15594
15626
}
15595
15627
}
15596
15628
@@ -15625,6 +15657,9 @@ extension RoomMember: Equatable, Hashable {
15625
15657
if lhs.suggestedRoleForPowerLevel != rhs.suggestedRoleForPowerLevel {
15626
15658
return false
15627
15659
}
15660
+ if lhs.membershipChangeReason != rhs.membershipChangeReason {
15661
+ return false
15662
+ }
15628
15663
return true
15629
15664
}
15630
15665
@@ -15638,6 +15673,7 @@ extension RoomMember: Equatable, Hashable {
15638
15673
hasher.combine(normalizedPowerLevel)
15639
15674
hasher.combine(isIgnored)
15640
15675
hasher.combine(suggestedRoleForPowerLevel)
15676
+ hasher.combine(membershipChangeReason)
15641
15677
}
15642
15678
}
15643
15679
@@ -15654,7 +15690,8 @@ public struct FfiConverterTypeRoomMember: FfiConverterRustBuffer {
15654
15690
powerLevel: FfiConverterInt64.read(from: &buf),
15655
15691
normalizedPowerLevel: FfiConverterInt64.read(from: &buf),
15656
15692
isIgnored: FfiConverterBool.read(from: &buf),
15657
- suggestedRoleForPowerLevel: FfiConverterTypeRoomMemberRole.read(from: &buf)
15693
+ suggestedRoleForPowerLevel: FfiConverterTypeRoomMemberRole.read(from: &buf),
15694
+ membershipChangeReason: FfiConverterOptionString.read(from: &buf)
15658
15695
)
15659
15696
}
15660
15697
@@ -15668,6 +15705,7 @@ public struct FfiConverterTypeRoomMember: FfiConverterRustBuffer {
15668
15705
FfiConverterInt64.write(value.normalizedPowerLevel, into: &buf)
15669
15706
FfiConverterBool.write(value.isIgnored, into: &buf)
15670
15707
FfiConverterTypeRoomMemberRole.write(value.suggestedRoleForPowerLevel, into: &buf)
15708
+ FfiConverterOptionString.write(value.membershipChangeReason, into: &buf)
15671
15709
}
15672
15710
}
15673
15711
@@ -15681,6 +15719,67 @@ public func FfiConverterTypeRoomMember_lower(_ value: RoomMember) -> RustBuffer
15681
15719
}
15682
15720
15683
15721
15722
+ /**
15723
+ * Contains the current user's room member info and the optional room member
15724
+ * info of the sender of the `m.room.member` event that this info represents.
15725
+ */
15726
+ public struct RoomMembershipDetails {
15727
+ public var ownRoomMember: RoomMember
15728
+ public var senderRoomMember: RoomMember?
15729
+
15730
+ // Default memberwise initializers are never public by default, so we
15731
+ // declare one manually.
15732
+ public init(ownRoomMember: RoomMember, senderRoomMember: RoomMember?) {
15733
+ self.ownRoomMember = ownRoomMember
15734
+ self.senderRoomMember = senderRoomMember
15735
+ }
15736
+ }
15737
+
15738
+
15739
+
15740
+ extension RoomMembershipDetails: Equatable, Hashable {
15741
+ public static func ==(lhs: RoomMembershipDetails, rhs: RoomMembershipDetails) -> Bool {
15742
+ if lhs.ownRoomMember != rhs.ownRoomMember {
15743
+ return false
15744
+ }
15745
+ if lhs.senderRoomMember != rhs.senderRoomMember {
15746
+ return false
15747
+ }
15748
+ return true
15749
+ }
15750
+
15751
+ public func hash(into hasher: inout Hasher) {
15752
+ hasher.combine(ownRoomMember)
15753
+ hasher.combine(senderRoomMember)
15754
+ }
15755
+ }
15756
+
15757
+
15758
+ public struct FfiConverterTypeRoomMembershipDetails: FfiConverterRustBuffer {
15759
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> RoomMembershipDetails {
15760
+ return
15761
+ try RoomMembershipDetails(
15762
+ ownRoomMember: FfiConverterTypeRoomMember.read(from: &buf),
15763
+ senderRoomMember: FfiConverterOptionTypeRoomMember.read(from: &buf)
15764
+ )
15765
+ }
15766
+
15767
+ public static func write(_ value: RoomMembershipDetails, into buf: inout [UInt8]) {
15768
+ FfiConverterTypeRoomMember.write(value.ownRoomMember, into: &buf)
15769
+ FfiConverterOptionTypeRoomMember.write(value.senderRoomMember, into: &buf)
15770
+ }
15771
+ }
15772
+
15773
+
15774
+ public func FfiConverterTypeRoomMembershipDetails_lift(_ buf: RustBuffer) throws -> RoomMembershipDetails {
15775
+ return try FfiConverterTypeRoomMembershipDetails.lift(buf)
15776
+ }
15777
+
15778
+ public func FfiConverterTypeRoomMembershipDetails_lower(_ value: RoomMembershipDetails) -> RustBuffer {
15779
+ return FfiConverterTypeRoomMembershipDetails.lower(value)
15780
+ }
15781
+
15782
+
15684
15783
/**
15685
15784
* `RoomNotificationSettings` represents the current settings for a `Room`
15686
15785
*/
@@ -28618,6 +28717,27 @@ fileprivate struct FfiConverterOptionTypeRoomMember: FfiConverterRustBuffer {
28618
28717
}
28619
28718
}
28620
28719
28720
+ fileprivate struct FfiConverterOptionTypeRoomMembershipDetails: FfiConverterRustBuffer {
28721
+ typealias SwiftType = RoomMembershipDetails?
28722
+
28723
+ public static func write(_ value: SwiftType, into buf: inout [UInt8]) {
28724
+ guard let value = value else {
28725
+ writeInt(&buf, Int8(0))
28726
+ return
28727
+ }
28728
+ writeInt(&buf, Int8(1))
28729
+ FfiConverterTypeRoomMembershipDetails.write(value, into: &buf)
28730
+ }
28731
+
28732
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType {
28733
+ switch try readInt(&buf) as Int8 {
28734
+ case 0: return nil
28735
+ case 1: return try FfiConverterTypeRoomMembershipDetails.read(from: &buf)
28736
+ default: throw UniffiInternalError.unexpectedOptionalTag
28737
+ }
28738
+ }
28739
+ }
28740
+
28621
28741
fileprivate struct FfiConverterOptionTypeSetData: FfiConverterRustBuffer {
28622
28742
typealias SwiftType = SetData?
28623
28743
@@ -31272,6 +31392,9 @@ private var initializationResult: InitializationResult = {
31272
31392
if (uniffi_matrix_sdk_ffi_checksum_method_roompreview_leave() != 5096) {
31273
31393
return InitializationResult.apiChecksumMismatch
31274
31394
}
31395
+ if (uniffi_matrix_sdk_ffi_checksum_method_roompreview_own_membership_details() != 1443) {
31396
+ return InitializationResult.apiChecksumMismatch
31397
+ }
31275
31398
if (uniffi_matrix_sdk_ffi_checksum_method_sendattachmentjoinhandle_cancel() != 62384) {
31276
31399
return InitializationResult.apiChecksumMismatch
31277
31400
}
0 commit comments