1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import Foundation
- public protocol Resource {
-
-
- var cacheKey: String { get }
-
-
- var downloadURL: URL { get }
- }
- extension Resource {
-
-
-
- public func convertToSource(overrideCacheKey: String? = nil) -> Source {
- return downloadURL.isFileURL ?
- .provider(LocalFileImageDataProvider(fileURL: downloadURL, cacheKey: overrideCacheKey ?? cacheKey)) :
- .network(ImageResource(downloadURL: downloadURL, cacheKey: overrideCacheKey ?? cacheKey))
- }
- }
- public struct ImageResource: Resource {
-
-
-
-
-
-
-
- public init(downloadURL: URL, cacheKey: String? = nil) {
- self.downloadURL = downloadURL
- self.cacheKey = cacheKey ?? downloadURL.absoluteString
- }
-
-
-
- public let cacheKey: String
-
- public let downloadURL: URL
- }
- extension URL: Resource {
- public var cacheKey: String { return absoluteString }
- public var downloadURL: URL { return self }
- }
|