< Summary

Information
Class: TeleFlow.Telegram.TelegramGeneratedFilterDescriptor
Assembly: TeleFlow.Framework
File(s): /_/src/TeleFlow.Framework/Generated/TelegramGeneratedFilterDescriptor.cs
Line coverage
82%
Covered lines: 14
Uncovered lines: 3
Coverable lines: 17
Total lines: 81
Line coverage: 82.3%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
.ctor(...)100%11100%
.ctor(...)100%11100%
.ctor(...)100%210%
.ctor(...)100%11100%
CopyValues(...)100%44100%

File(s)

/_/src/TeleFlow.Framework/Generated/TelegramGeneratedFilterDescriptor.cs

#LineLine coverage
 1using System.ComponentModel;
 2
 3namespace TeleFlow.Telegram;
 4
 5/// <summary>
 6/// Infrastructure filter metadata emitted by TeleFlow source generators.
 7/// This API is not intended to be used by application code.
 8/// </summary>
 9[EditorBrowsable(EditorBrowsableState.Never)]
 10public sealed class TelegramGeneratedFilterDescriptor
 11{
 12    public TelegramGeneratedFilterDescriptor(
 13        TelegramGeneratedFilterKind kind,
 14        IReadOnlyList<string>? stringValues = null,
 15        IReadOnlyList<long>? longValues = null)
 16    {
 17        Kind = kind;
 67518        StringValues = CopyValues(stringValues);
 67519        LongValues = CopyValues(longValues);
 67520    }
 21
 22    public TelegramGeneratedFilterDescriptor(Type customFilterType)
 23    {
 6424        ArgumentNullException.ThrowIfNull(customFilterType);
 25
 26        Kind = TelegramGeneratedFilterKind.Custom;
 27        CustomFilterType = customFilterType;
 28        StringValues = [];
 29        LongValues = [];
 6430    }
 31
 32    public TelegramGeneratedFilterDescriptor(
 33        Type customFilterType,
 34        Type customFilterContextType)
 3235        : this(customFilterType)
 36    {
 3237        ArgumentNullException.ThrowIfNull(customFilterContextType);
 38
 39        CustomFilterContextType = customFilterContextType;
 3240    }
 41
 42    public TelegramGeneratedFilterDescriptor(
 43        Type customFilterType,
 44        Attribute customFilterAttribute)
 045        : this(customFilterType)
 46    {
 047        ArgumentNullException.ThrowIfNull(customFilterAttribute);
 48
 49        CustomFilterAttribute = customFilterAttribute;
 050    }
 51
 52    public TelegramGeneratedFilterDescriptor(
 53        Type customFilterType,
 54        Type customFilterContextType,
 55        Attribute customFilterAttribute)
 3256        : this(customFilterType, customFilterContextType)
 57    {
 3258        ArgumentNullException.ThrowIfNull(customFilterAttribute);
 59
 60        CustomFilterAttribute = customFilterAttribute;
 3261    }
 62
 63    public TelegramGeneratedFilterKind Kind { get; }
 64
 65    public Type? CustomFilterType { get; }
 66
 67    public Type? CustomFilterContextType { get; }
 68
 69    public Attribute? CustomFilterAttribute { get; }
 70
 71    public IReadOnlyList<string> StringValues { get; }
 72
 73    public IReadOnlyList<long> LongValues { get; }
 74
 75    private static TValue[] CopyValues<TValue>(IReadOnlyList<TValue>? values)
 76    {
 135077        return values is null || values.Count == 0
 135078            ? []
 135079            : values.ToArray();
 80    }
 81}