public static TerminalCommandBuilder <TEntrypoint, TSettings> AddSwitch <TEntrypoint, TSettings>( this TerminalCommandBuilder <TEntrypoint, TSettings> commandBuilder, string longForm, Action <TSettings> applicator) where TSettings : new() where TEntrypoint : IEntrypoint <TSettings>, new() => commandBuilder.AddSwitch(longForm, null, applicator);
public static TerminalCommandBuilder <TEntrypoint, TSettings> AddOption <TEntrypoint, TSettings, TPropertyValue>( this TerminalCommandBuilder <TEntrypoint, TSettings> commandBuilder, string longForm, Expression <Func <TSettings, TPropertyValue> > property, Conversion <TPropertyValue> conversion) where TEntrypoint : IEntrypoint <TSettings>, new() where TSettings : new() => commandBuilder.AddOption(longForm, null, property, conversion);
public static TerminalCommandBuilder <TEntrypoint, TSettings> AddSwitch <TEntrypoint, TSettings>( this TerminalCommandBuilder <TEntrypoint, TSettings> commandBuilder, string longForm, string?shortForm, Action <TSettings> applicator) where TSettings : new() where TEntrypoint : IEntrypoint <TSettings>, new() => commandBuilder.AddSwitch(SwitchDefinition <TSettings> .Create(longForm, shortForm, applicator));
public static T InternalAddTerminalCommandWithSettings <T, TEntrypoint, TBaseSettings, TDerivedSettings>(this T item, string name, Action <TerminalCommandBuilder <TEntrypoint, TDerivedSettings> > commandBuilder) where T : INonTerminalCommandWithSettingsBuilder <T, TBaseSettings>, ICommandBuilder where TBaseSettings : new() where TEntrypoint : IEntrypoint <TDerivedSettings>, new() where TDerivedSettings : TBaseSettings, new() { var builder = new TerminalCommandBuilder <TEntrypoint, TDerivedSettings>( item.Command, name); item.Command.AddSubCommand(builder.Build(commandBuilder)); return(item); }
public static T InternalAddTerminalCommand <T, TEntrypoint>(this T item, string commandName, Action <TerminalCommandBuilder <TEntrypoint> > commandBuilder) where T : INonTerminalCommandWithoutSettingsBuilder <T>, ICommandBuilder where TEntrypoint : IEntrypoint, new() { ValidateCommandName(commandName); if (commandBuilder is null) { throw new ArgumentNullException(nameof(commandBuilder)); } var builder = new TerminalCommandBuilder <TEntrypoint>(item.Command, commandName); item.Command.AddSubCommand(builder.Build(commandBuilder)); return(item); }
public static TerminalCommandBuilder <TEntrypoint, TSettings> AddSettingDefault <TEntrypoint, TSettings>( this TerminalCommandBuilder <TEntrypoint, TSettings> commandBuilder, Action <TSettings> applicator) where TEntrypoint : IEntrypoint <TSettings>, new() where TSettings : new() => commandBuilder.AddSettingDefault(SettingDefaultDefinition <TSettings> .Create(applicator));