1 // Copyright 2015-present 650 Industries. All rights reserved. 2 3 @objc 4 public protocol DevMenuDataSourceItem { 5 @objc 6 func serialize() -> [String : Any] 7 } 8 9 public typealias DevMenuDataSourceResolver = ([DevMenuDataSourceItem]) -> Void 10 11 @objc 12 public protocol DevMenuDataSourceProtocol { 13 var id: String { get } 14 15 func fetchData(resolve: @escaping DevMenuDataSourceResolver) 16 } 17 18 @objc 19 public class DevMenuListDataSource: NSObject, DevMenuDataSourceProtocol { 20 public var id: String 21 private var dataFetcher: (@escaping ([DevMenuSelectionList.Item]) -> Void) -> Void 22 23 public init(id: String, dataFetcher: @escaping (@escaping ([DevMenuSelectionList.Item]) -> Void) -> Void) { 24 self.id = id 25 self.dataFetcher = dataFetcher 26 } 27 28 public func fetchData(resolve: @escaping ([DevMenuDataSourceItem]) -> Void) { 29 dataFetcher(resolve) 30 } 31 } 32