Files
2022-07-30 20:47:39 +02:00

36 lines
916 B
Swift

//
// SwiftGenKit
// Copyright © 2022 SwiftGen
// MIT Licence
//
import Foundation
import Kanna
private enum XML {
fileprivate enum Attributes {
static let key = "key"
static let value = "value"
}
static let entriesPath = "entry"
}
extension CoreData {
enum UserInfo {
static func parse(from object: Kanna.XMLElement) throws -> [String: Any] {
try object.xpath(XML.entriesPath).reduce(into: [:]) { userInfo, element in
guard let key = element[XML.Attributes.key] else {
throw CoreData.ParserError.invalidFormat(reason: "Missing required 'key' attribute in user info.")
}
guard let value = element[XML.Attributes.value] else {
throw CoreData.ParserError.invalidFormat(reason: "Missing required 'value' attribute in user info.")
}
userInfo[key] = Int(value) ?? Double(value) ?? Bool(from: value) ?? value
}
}
}
}