Files
letro-ios/ElementX/Sources/Services/Timeline/RoomTimelineControllerProtocol.swift
2022-03-17 18:09:29 +02:00

31 lines
789 B
Swift

//
// RoomTimelineControllerProtocol.swift
// ElementX
//
// Created by Stefan Ceriu on 04.03.2022.
// Copyright © 2022 Element. All rights reserved.
//
import Foundation
import Combine
enum RoomTimelineControllerCallback {
case updatedTimelineItems
case updatedTimelineItem(_ itemId: String)
}
enum RoomTimelineControllerError: Error {
case generic
}
protocol RoomTimelineControllerProtocol {
var timelineItems: [RoomTimelineItemProtocol] { get }
var callbacks: PassthroughSubject<RoomTimelineControllerCallback, Never> { get }
func paginateBackwards(_ count: UInt, callback: @escaping ((Result<Void, RoomTimelineControllerError>) -> Void))
func processItemAppearance(_ itemId: String)
func processItemDisappearance(_ itemId: String)
}