defaultLazy

inline fun <T : Any> ProcessedArgument<T, T>.defaultLazy(crossinline value: () -> T): ArgumentDelegate<T>

If the argument is not given, call value and use its return value instead of throwing an error.

This must be applied after all other transforms. If the argument is given on the command line, value will not be called.

Example:

val arg: Pair<Int, Int> by argument().int().pair().defaultLazy { expensiveOperation() }