void ProcessArgumentsWithSingleArgumentProcessor(string[] arguments, ISingleArgumentProcessor processor)
        {
            if (!processor.CanProcess(arguments))
            {
                return;
            }

            processor.Process(arguments);
            processorsUsed.Add(processor);
        }
        async Task ProcessArgumentsWithSingleArgumentProcessorAsync(string[] arguments, ISingleArgumentProcessor processor)
        {
            if (!processor.CanProcess(arguments))
            {
                return;
            }

            logger.Verbose("Triggering argument processor {processor} with arguments {@arguments}.", processor.GetType().Name, arguments);

            await processor.ProcessAsync(arguments);

            processorsUsed.Add(processor);
        }
        void ProcessArgumentsWithSingleArgumentProcessor(string[] arguments, ISingleArgumentProcessor processor)
        {
            if (!processor.CanProcess(arguments))
            {
                return;
            }

            processor.Process(arguments);
            processorsUsed.Add(processor);
        }