Avoid too much back and forth throuhg FFI by lazily fetching and storing member proxy properties

This commit is contained in:
Stefan Ceriu
2023-09-20 10:29:50 +03:00
committed by Stefan Ceriu
parent 341b177e23
commit c2a1560b1d
@@ -31,45 +31,25 @@ final class RoomMemberProxy: RoomMemberProxyProtocol {
self.member = member self.member = member
} }
var userID: String { lazy var userID = member.userId()
member.userId()
}
var displayName: String? { lazy var displayName = member.displayName()
member.displayName()
}
var avatarURL: URL? { lazy var avatarURL = member.avatarUrl().flatMap(URL.init(string:))
member.avatarUrl().flatMap(URL.init(string:))
}
var membership: MembershipState { lazy var membership = member.membership()
member.membership()
}
var isNameAmbiguous: Bool { lazy var isNameAmbiguous = member.isNameAmbiguous()
member.isNameAmbiguous()
}
var powerLevel: Int { lazy var powerLevel = Int(member.powerLevel())
Int(member.powerLevel())
}
var normalizedPowerLevel: Int { lazy var normalizedPowerLevel = Int(member.normalizedPowerLevel())
Int(member.normalizedPowerLevel())
}
var isAccountOwner: Bool { lazy var isAccountOwner = member.isAccountUser()
member.isAccountUser()
}
var isIgnored: Bool { lazy var isIgnored = member.isIgnored()
member.isIgnored()
}
var canInviteUsers: Bool { lazy var canInviteUsers = member.canInvite()
member.canInvite()
}
func canSendStateEvent(type: StateEventType) -> Bool { func canSendStateEvent(type: StateEventType) -> Bool {
member.canSendState(stateEvent: type) member.canSendState(stateEvent: type)