Skip to content

Commit

Permalink
Add enum option help validation
Browse files Browse the repository at this point in the history
  • Loading branch information
nicklockwood committed Jun 10, 2024
1 parent 25be105 commit 74f2441
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions Sources/OptionDescriptor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,9 @@ class OptionDescriptor {
self.argumentName = argumentName
self.displayName = displayName
self.help = help
for option in help.quotedValues {
assert(T(rawValue: option) ?? altOptions[option] != nil, "Option \(option) doesn't exist")
}
self.deprecationMessage = deprecationMessage
self.type = type
toOptions = { rawValue, options in
Expand Down Expand Up @@ -296,6 +299,17 @@ class OptionDescriptor {
}
}

private extension String {
var quotedValues: [String] {
let parts = components(separatedBy: "\"")
var even = false
return parts.compactMap {
defer { even = !even }
return even ? $0.components(separatedBy: "/").first : nil
}
}
}

let Descriptors = _Descriptors()

private var _allDescriptors: [OptionDescriptor] = {
Expand Down

0 comments on commit 74f2441

Please sign in to comment.