From fc34f3fcac996bca5bd2585a0f56792baaf7d3e1 Mon Sep 17 00:00:00 2001 From: mrboring Date: Sun, 6 Jul 2025 10:43:58 +0100 Subject: [PATCH] Added defaultValueMaybe --- src/FSharp.SystemCommandLine/Inputs.fs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/FSharp.SystemCommandLine/Inputs.fs b/src/FSharp.SystemCommandLine/Inputs.fs index 2e1fd28..e8c9519 100644 --- a/src/FSharp.SystemCommandLine/Inputs.fs +++ b/src/FSharp.SystemCommandLine/Inputs.fs @@ -94,6 +94,16 @@ module Input = /// An alias for `defaultValue` to set the default value of an option or argument. let def = defaultValue + /// Sets the default value of an option or argument. + let defaultValueMaybe (defaultValue: 'T option) (input: ActionInput<'T>) = + match defaultValue with + | Some defaultValue' -> + input + |> editOption (fun o -> o.DefaultValueFactory <- (fun _ -> defaultValue')) + |> editArgument (fun a -> a.DefaultValueFactory <- (fun _ -> defaultValue')) + | None -> + input + /// Sets the default value factory of an option or argument. let defaultValueFactory (defaultValueFactory: Parsing.ArgumentResult -> 'T) (input: ActionInput<'T>) = input