I stuck with Swift syntax. This code example won't compile and i can't find why. It says
Type 'TextMessageViewModelDefaultBuilder' does not conform to protocol 'ViewModelBuilderProtocol'
import Foundation
protocol MessageModelProtocol { }
protocol MessageViewModelProtocol { }
protocol TextMessageViewModelProtocol:MessageViewModelProtocol {}
protocol TextMessageModelProtocol:MessageModelProtocol {}
protocol ViewModelBuilderProtocol {
associatedtype ModelT: MessageModelProtocol
associatedtype ViewModelT: MessageViewModelProtocol
func canCreateViewModel(fromModel model: Any) -> Bool
func createViewModel(_ model: ModelT) -> ViewModelT
}
class TextMessageViewModelDefaultBuilder: ViewModelBuilderProtocol {
typealias ModelT = TextMessageModelProtocol
typealias ViewModelT = TextMessageViewModelProtocol
init() {}
func createViewModel(_ textMessage: ModelT) -> ViewModelT {
return ViewModelT()
}
func canCreateViewModel(fromModel model: Any) -> Bool {
return model is ModelT
}
}