Files
SwiftGen/Sources/SwiftGenKit/Parsers/ParserOptionValues.swift
2022-07-30 20:47:39 +02:00

26 lines
604 B
Swift

//
// SwiftGenKit
// Copyright © 2022 SwiftGen
// MIT Licence
//
import Foundation
struct ParserOptionValues {
private let options: [String: Any]
private let available: ParserOptionList
init(options: [String: Any], available: ParserOptionList) throws {
try available.check(options: options)
self.options = options
self.available = available
}
subscript<T>(option: ParserOption<T>) -> T {
guard available.has(option: option) else {
fatalError("Trying to get unknown option \(option.key)")
}
return (try? option.get(from: options)) ?? option.defaultValue
}
}