public struct MacosNativeFullscreenCmdArgs: CmdArgs { /*conforms*/ public var commonState: CmdArgsCommonState public init(rawArgs: StrArrSlice) { self.commonState = .init(rawArgs) } public static let parser: CmdParser = .init( kind: .macosNativeFullscreen, help: macos_native_fullscreen_help_generated, flags: [ "--fail-if-noop": trueBoolFlag(\.failIfNoop), "--window-id": windowIdSubArgParser(), ], posArgs: [ArgParser(\.toggle, parseToggleEnum)], ) public var toggle: ToggleEnum = .toggle public var failIfNoop: Bool = false } func parseMacosNativeFullscreenCmdArgs(_ args: StrArrSlice) -> ParsedCmd { parseSpecificCmdArgs(MacosNativeFullscreenCmdArgs(rawArgs: args), args) .filter("--fail-if-noop requires 'on' or 'off' argument") { $0.failIfNoop.implies($0.toggle == .on || $0.toggle == .off) } } public enum ToggleEnum: Sendable { case on, off, toggle } func parseToggleEnum(i: PosArgParserInput) -> ParsedCliArgs { switch i.arg { case "on": .succ(.on, advanceBy: 1) case "off": .succ(.off, advanceBy: 1) default: .fail("Can't parse '\(i.arg)'. Possible values: on|off", advanceBy: 1) } }