diff --git a/csharp/Platform.Data.Doublets/Sequences/Frequencies/Counters/TotalMarkedSequenceSymbolFrequencyCounter.cs b/csharp/Platform.Data.Doublets/Sequences/Frequencies/Counters/TotalMarkedSequenceSymbolFrequencyCounter.cs new file mode 100644 index 000000000..909b6331d --- /dev/null +++ b/csharp/Platform.Data.Doublets/Sequences/Frequencies/Counters/TotalMarkedSequenceSymbolFrequencyCounter.cs @@ -0,0 +1,26 @@ +using System.Runtime.CompilerServices; +using Platform.Interfaces; + +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +namespace Platform.Data.Doublets.Sequences.Frequencies.Counters +{ + /// + /// Counts total amount of sequences in which the symbol (link) is used. + /// + public class TotalMarkedSequenceSymbolFrequencyCounter : ICounter + { + private readonly ILinks _links; + private readonly ICriterionMatcher _markedSequenceMatcher; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public TotalMarkedSequenceSymbolFrequencyCounter(ILinks links, ICriterionMatcher markedSequenceMatcher) + { + _links = links; + _markedSequenceMatcher = markedSequenceMatcher; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public TLink Count(TLink argument) => new TotalMarkedSequenceSymbolFrequencyOneOffCounter(_links, _markedSequenceMatcher, argument).Count(); + } +} \ No newline at end of file