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);
        }
예제 #5
0
        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));