unioil-loyalty-rn-app/ios/Pods/lottie-ios/Sources/Private/Model/Assets/Asset.swift

44 lines
936 B
Swift

//
// Asset.swift
// lottie-swift
//
// Created by Brandon Withrow on 1/9/19.
//
import Foundation
public class Asset: Codable, DictionaryInitializable {
// MARK: Lifecycle
required public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: Asset.CodingKeys.self)
if let id = try? container.decode(String.self, forKey: .id) {
self.id = id
} else {
id = String(try container.decode(Int.self, forKey: .id))
}
}
required init(dictionary: [String: Any]) throws {
if let id = dictionary[CodingKeys.id.rawValue] as? String {
self.id = id
} else if let id = dictionary[CodingKeys.id.rawValue] as? Int {
self.id = String(id)
} else {
throw InitializableError.invalidInput
}
}
// MARK: Public
/// The ID of the asset
public let id: String
// MARK: Private
private enum CodingKeys: String, CodingKey {
case id
}
}