// Copyright © 2020 Metabolist. All rights reserved. import Combine import Mastodon public protocol CollectionService { var sections: AnyPublisher<[[CollectionItem]], Error> { get } var nextPageMaxId: AnyPublisher { get } var title: AnyPublisher { get } var titleLocalizationComponents: AnyPublisher<[String], Never> { get } var navigationService: NavigationService { get } var markerTimeline: Marker.Timeline? { get } func request(maxId: String?, minId: String?) -> AnyPublisher } extension CollectionService { public var nextPageMaxId: AnyPublisher { Empty().eraseToAnyPublisher() } public var title: AnyPublisher { Empty().eraseToAnyPublisher() } public var titleLocalizationComponents: AnyPublisher<[String], Never> { Empty().eraseToAnyPublisher() } public var markerTimeline: Marker.Timeline? { nil } }