This repository has been archived on 2024-06-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
2024-01-08 16:23:24 +01:00

30 lines
811 B
C#

using Process.Abstract;
using Process.Interface;
using System.Diagnostics;
namespace Ocr.Cli.Processor;
public class StopwatchProcessor<TInput, TOutput> : Processor<TInput, TOutput>
{
private readonly IProcessor<TInput, TOutput> _processor;
/// <summary>
/// Execution time of the last processing action
/// </summary>
public TimeSpan? Elapsed { get; private set; }
public StopwatchProcessor(IProcessor<TInput, TOutput> processor) => _processor = processor;
public override IEnumerable<TOutput> Process(IEnumerable<TInput> inputs)
{
var stopWatch = Stopwatch.StartNew();
var results = _processor.Process(inputs);
stopWatch.Stop();
Elapsed = stopWatch.Elapsed;
return results;
}
/// <inheritdoc />
public override string? ToString() => _processor.ToString();
}