internal static OptionResult CreateImplicit( IOption option, CommandResult parent) { var result = new OptionResult(option, option.DefaultToken()); result.IsImplicit = true; if (option.Argument.HasDefaultValue) { var value = option.Argument.GetDefaultValue(); switch (value) { case string arg: result.TryTakeToken(new Token(arg, TokenType.Argument)); break; default: result.ArgumentResult = ArgumentResult.Success(value); break; } } return(result); }
public OptionResult( IOption option, Token token = null, CommandResult parent = null) : base(option ?? throw new ArgumentNullException(nameof(option)), token ?? option?.DefaultToken(), parent) { Option = option; }