init()

in Sources/ArgumentParser/Parsable Types/ParsableArguments.swift [248:287]


  init(_ type: ParsableArguments.Type, creatingHelp: Bool = false) {
    
    #if DEBUG
    do {
      try type._validate()
    } catch {
      assertionFailure("\(error)")
    }
    #endif
    
    let a: [ArgumentSet] = Mirror(reflecting: type.init())
      .children
      .compactMap { child in
        guard var codingKey = child.label else { return nil }
        
        if let parsed = child.value as? ArgumentSetProvider {
          if creatingHelp {
            guard !parsed._hiddenFromHelp else { return nil }
          }

          // Property wrappers have underscore-prefixed names
          codingKey = String(codingKey.first == "_"
                              ? codingKey.dropFirst(1)
                              : codingKey.dropFirst(0))
          let key = InputKey(rawValue: codingKey)
          return parsed.argumentSet(for: key)
        } else {
          // Save a non-wrapped property as is
          var definition = ArgumentDefinition(
            key: InputKey(rawValue: codingKey),
            kind: .default,
            parser: { _ in nil },
            default: nilOrValue(child.value),
            completion: .default)
          definition.help.updateArgumentHelp(help: .hidden)
          return ArgumentSet(definition)
        }
      }
    self.init(sets: a)
  }