1 type derived from MatchInfo
Microsoft.TemplateEngine.Cli (1)
TemplateResolution\ParameterMatchInfo.cs (1)
9internal class ParameterMatchInfo : MatchInfo
33 instantiations of MatchInfo
Microsoft.TemplateEngine.Cli (13)
TemplateResolution\CliFilters.cs (13)
23return new MatchInfo(MatchInfo.BuiltIn.ShortName, name, MatchKind.Mismatch); 29return new MatchInfo(MatchInfo.BuiltIn.ShortName, name, MatchKind.Exact); 32return new MatchInfo(MatchInfo.BuiltIn.ShortName, name, MatchKind.Mismatch); 48return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Partial); 55return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Exact); 66return new MatchInfo(MatchInfo.BuiltIn.ShortName, name, MatchKind.Exact); 74return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Partial); 79return new MatchInfo(MatchInfo.BuiltIn.ShortName, name, MatchKind.Partial); 82return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Mismatch); 113return new MatchInfo(MatchInfo.BuiltIn.Language, language, MatchKind.Exact); 117return new MatchInfo(MatchInfo.BuiltIn.Language, language, MatchKind.Mismatch); 125return new MatchInfo(MatchInfo.BuiltIn.Language, defaultLanguage, MatchKind.Exact); 131return new MatchInfo(MatchInfo.BuiltIn.Language, language, MatchKind.Exact);
Microsoft.TemplateEngine.Utils (20)
WellKnownSearchFilters.cs (20)
43return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Partial); 50return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Exact); 61return new MatchInfo(MatchInfo.BuiltIn.ShortName, name, MatchKind.Exact); 69return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Partial); 74return new MatchInfo(MatchInfo.BuiltIn.ShortName, name, MatchKind.Partial); 77return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Mismatch); 100return new MatchInfo(MatchInfo.BuiltIn.Type, type, MatchKind.Exact); 104return new MatchInfo(MatchInfo.BuiltIn.Type, type, MatchKind.Mismatch); 126return new MatchInfo(MatchInfo.BuiltIn.Classification, classification, MatchKind.Exact); 128return new MatchInfo(MatchInfo.BuiltIn.Classification, classification, MatchKind.Mismatch); 150return new MatchInfo(MatchInfo.BuiltIn.Language, language, MatchKind.Exact); 154return new MatchInfo(MatchInfo.BuiltIn.Language, language, MatchKind.Mismatch); 177return new MatchInfo(MatchInfo.BuiltIn.Baseline, baselineName, MatchKind.Exact); 181return new MatchInfo(MatchInfo.BuiltIn.Baseline, baselineName, MatchKind.Mismatch); 206return new MatchInfo(MatchInfo.BuiltIn.Author, author, MatchKind.Mismatch); 213return new MatchInfo(MatchInfo.BuiltIn.Author, author, MatchKind.Exact); 218return new MatchInfo(MatchInfo.BuiltIn.Author, author, MatchKind.Partial); 220return new MatchInfo(MatchInfo.BuiltIn.Author, author, MatchKind.Mismatch); 250return new MatchInfo($"{MatchInfo.BuiltIn.Constraint}.{constraintDefinition.Type}", null, MatchKind.Mismatch); 253return new MatchInfo($"{MatchInfo.BuiltIn.Constraint}.{constraintDefinition.Type}", null, MatchKind.Exact);
149 references to MatchInfo
Microsoft.TemplateEngine.Abstractions (3)
TemplateFiltering\ITemplateMatchInfo.cs (2)
19IReadOnlyList<MatchInfo> MatchDisposition { get; } 25void AddMatchDisposition(MatchInfo newDisposition);
TemplateFiltering\MatchInfo.cs (1)
14/// Creates <see cref="MatchInfo"/> instance.
Microsoft.TemplateEngine.Cli (45)
Commands\FilterOptionDefinition.cs (8)
23matchInfoName: MatchInfo.BuiltIn.Author); 29matchInfoName: MatchInfo.BuiltIn.Baseline); 35matchInfoName: MatchInfo.BuiltIn.Language); 41matchInfoName: MatchInfo.BuiltIn.Classification); 47matchInfoName: MatchInfo.BuiltIn.Type); 83Func<string?, Func<ITemplateInfo, MatchInfo?>> matchFilter, 94internal Func<string?, Func<ITemplateInfo, MatchInfo?>> TemplateMatchFilter { get; } = matchFilter; 102/// A <see cref="MatchInfo"/> name used in match dispositions.
TemplateResolution\CliFilters.cs (18)
17internal static Func<TemplateGroup, MatchInfo?> ExactShortNameTemplateGroupFilter(string name) 23return new MatchInfo(MatchInfo.BuiltIn.ShortName, name, MatchKind.Mismatch); 29return new MatchInfo(MatchInfo.BuiltIn.ShortName, name, MatchKind.Exact); 32return new MatchInfo(MatchInfo.BuiltIn.ShortName, name, MatchKind.Mismatch); 42internal static Func<TemplateGroup, MatchInfo?> NameTemplateGroupFilter(string? name) 48return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Partial); 55return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Exact); 66return new MatchInfo(MatchInfo.BuiltIn.ShortName, name, MatchKind.Exact); 74return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Partial); 79return new MatchInfo(MatchInfo.BuiltIn.ShortName, name, MatchKind.Partial); 82return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Mismatch); 86internal static Func<ITemplateInfo, IEnumerable<MatchInfo>>? EmptyTemplateParameterFilter() => (templateInfo) => Array.Empty<MatchInfo>(); 94internal static Func<TemplateGroup, MatchInfo?> LanguageGroupFilter(string? language, string? defaultLanguage) 113return new MatchInfo(MatchInfo.BuiltIn.Language, language, MatchKind.Exact); 117return new MatchInfo(MatchInfo.BuiltIn.Language, language, MatchKind.Mismatch); 125return new MatchInfo(MatchInfo.BuiltIn.Language, defaultLanguage, MatchKind.Exact); 131return new MatchInfo(MatchInfo.BuiltIn.Language, language, MatchKind.Exact);
TemplateResolution\ListTemplateResolver.cs (2)
35IEnumerable<Func<TemplateGroup, MatchInfo?>> groupFilters = new[] 40IEnumerable<Func<ITemplateInfo, MatchInfo?>> templateFilters =
TemplateResolution\TemplateGroupMatchInfo.cs (13)
22private readonly IReadOnlyList<MatchInfo> _groupDispositions; 29IEnumerable<MatchInfo> groupDispositions, 62/// Returns the list of <see cref="MatchInfo"/> for the group-based filters. 64internal IReadOnlyList<MatchInfo> GroupMatchInfos 193IEnumerable<Func<TemplateGroup, MatchInfo?>> groupFilters, 194IEnumerable<Func<ITemplateInfo, MatchInfo?>> templateInfoFilters, 195Func<ITemplateInfo, IEnumerable<MatchInfo>>? templateParametersFilter = null) 197List<MatchInfo> groupMatchDispositions = new(); 198foreach (Func<TemplateGroup, MatchInfo?>? filter in groupFilters) 200MatchInfo? info = filter(group); 234foreach (var parameterMatchInfo in parameterMatchInfos) 320MatchInfo? languageMatch = _groupDispositions.SingleOrDefault(match => match.Name == MatchInfo.BuiltIn.Language);
TemplateResolution\TemplateMatchInfoExtensions.cs (2)
30var constraintsMatches = templateMatchInfo.MatchDisposition.Where(mi => mi.Name.StartsWith(MatchInfo.BuiltIn.Constraint)); 31var otherMatches = templateMatchInfo.MatchDisposition.Where(mi => !mi.Name.StartsWith(MatchInfo.BuiltIn.Constraint));
TemplateSearch\CliSearchFiltersFactory.cs (2)
56IEnumerable<Func<TemplateGroup, MatchInfo?>> groupFilters = new[] 61IEnumerable<Func<ITemplateInfo, MatchInfo?>> templateFilters =
Microsoft.TemplateEngine.Edge (14)
Settings\TemplateMatchInfo.cs (6)
65private readonly List<Abstractions.TemplateFiltering.MatchInfo> _matchDisposition = new List<Abstractions.TemplateFiltering.MatchInfo>(); 67internal TemplateMatchInfo(ITemplateInfo info, IReadOnlyList<Abstractions.TemplateFiltering.MatchInfo> matchDispositions) 72foreach (Abstractions.TemplateFiltering.MatchInfo disposition in matchDispositions) 86public IReadOnlyList<Abstractions.TemplateFiltering.MatchInfo> MatchDisposition => _matchDisposition; 88public void AddMatchDisposition(Abstractions.TemplateFiltering.MatchInfo newDisposition)
Settings\TemplatePackageManager.cs (1)
172public async Task<IReadOnlyList<ITemplateMatchInfo>> GetTemplatesAsync(Func<ITemplateMatchInfo, bool> matchFilter, IEnumerable<Func<ITemplateInfo, MatchInfo?>> filters, CancellationToken cancellationToken)
Template\MatchInfo.cs (1)
8[Obsolete("This struct is deprecated, use " + nameof(Abstractions.TemplateFiltering.MatchInfo) + " instead")]
Template\MatchLocation.cs (1)
6[Obsolete("use" + nameof(Microsoft.TemplateEngine.Abstractions.TemplateFiltering.MatchInfo.Name) + " instead")]
TemplateListFilter.cs (5)
106public static IReadOnlyCollection<Abstractions.TemplateFiltering.ITemplateMatchInfo> GetTemplateMatchInfo(IReadOnlyList<ITemplateInfo> templateList, Func<Abstractions.TemplateFiltering.ITemplateMatchInfo, bool> matchFilter, params Func<ITemplateInfo, Abstractions.TemplateFiltering.MatchInfo?>[] filters) 112List<Abstractions.TemplateFiltering.MatchInfo> matchInformation = new List<Abstractions.TemplateFiltering.MatchInfo>(); 114foreach (Func<ITemplateInfo, Abstractions.TemplateFiltering.MatchInfo?> filter in filters) 116Abstractions.TemplateFiltering.MatchInfo? result = filter(template);
Microsoft.TemplateEngine.IDE (2)
Bootstrapper.cs (2)
16using MatchInfo = Microsoft.TemplateEngine.Abstractions.TemplateFiltering.MatchInfo; 116public Task<IReadOnlyList<ITemplateMatchInfo>> GetTemplatesAsync(IEnumerable<Func<ITemplateInfo, MatchInfo?>> filters, bool exactMatchesOnly = true, CancellationToken cancellationToken = default)
Microsoft.TemplateEngine.Utils (85)
TemplateMatchInfoExtensions.cs (40)
14/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Exact" /> or <see cref="MatchKind.Partial" /> match on <see cref="MatchInfo.BuiltIn.Name"/>. 18return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Name && (x.Kind == MatchKind.Exact || x.Kind == MatchKind.Partial)); 22/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Exact" /> match on <see cref="MatchInfo.BuiltIn.Name"/>. 26return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Name && x.Kind == MatchKind.Exact); 30/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Partial" /> match on <see cref="MatchInfo.BuiltIn.Name"/>. 34return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Name && x.Kind == MatchKind.Partial); 38/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Mismatch" /> on <see cref="MatchInfo.BuiltIn.Name"/>. 42return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Name && x.Kind == MatchKind.Mismatch); 46/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Exact" /> or <see cref="MatchKind.Partial" /> match on <see cref="MatchInfo.BuiltIn.ShortName"/>. 50return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.ShortName && (x.Kind == MatchKind.Exact || x.Kind == MatchKind.Partial)); 54/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Exact" /> match on <see cref="MatchInfo.BuiltIn.ShortName"/>. 58return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.ShortName && x.Kind == MatchKind.Exact); 62/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Partial" /> match on <see cref="MatchInfo.BuiltIn.ShortName"/>. 66return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.ShortName && x.Kind == MatchKind.Partial); 70/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Mismatch" /> on <see cref="MatchInfo.BuiltIn.ShortName"/>. 74return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.ShortName && x.Kind == MatchKind.Mismatch); 78/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Exact" /> match on <see cref="MatchInfo.BuiltIn.Type"/>. 82return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Type && x.Kind == MatchKind.Exact); 86/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Mismatch" /> on <see cref="MatchInfo.BuiltIn.Type"/>. 90return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Type && x.Kind == MatchKind.Mismatch); 94/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Exact" /> match on <see cref="MatchInfo.BuiltIn.Classification"/>. 98return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Classification && x.Kind == MatchKind.Exact); 102/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Mismatch" /> on <see cref="MatchInfo.BuiltIn.Classification"/>. 106return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Classification && x.Kind == MatchKind.Mismatch); 110/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Exact" /> match on <see cref="MatchInfo.BuiltIn.Language"/>. 114return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Language && x.Kind == MatchKind.Exact); 118/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Mismatch" /> on <see cref="MatchInfo.BuiltIn.Language"/>. 122return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Language && x.Kind == MatchKind.Mismatch); 126/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Exact" /> match on <see cref="MatchInfo.BuiltIn.Baseline"/>. 130return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Baseline && x.Kind == MatchKind.Exact); 134/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Mismatch" /> on <see cref="MatchInfo.BuiltIn.Baseline"/>. 138return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Baseline && x.Kind == MatchKind.Mismatch); 142/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Exact" /> or <see cref="MatchKind.Partial" /> match on <see cref="MatchInfo.BuiltIn.Author"/>. 146return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Author && (x.Kind == MatchKind.Exact || x.Kind == MatchKind.Partial)); // CodeQL [cs/campaign/constantine] False Positive: CodeQL wrongly detected "Author" 150/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Exact" /> match on <see cref="MatchInfo.BuiltIn.Author"/>. 154return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Author && x.Kind == MatchKind.Exact); // CodeQL [cs/campaign/constantine] False Positive: CodeQL wrongly detected "Author" 158/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Partial" /> match on <see cref="MatchInfo.BuiltIn.Author"/>. 162return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Author && x.Kind == MatchKind.Partial); // CodeQL [cs/campaign/constantine] False Positive: CodeQL wrongly detected "Author" 166/// Returns true when <paramref name="templateMatchInfo"/> has <see cref="MatchKind.Mismatch" /> on <see cref="MatchInfo.BuiltIn.Author"/>. 170return templateMatchInfo.MatchDisposition.Any(x => x.Name == MatchInfo.BuiltIn.Author && x.Kind == MatchKind.Mismatch); // CodeQL [cs/campaign/constantine] False Positive: CodeQL wrongly detected "Author"
WellKnownSearchFilters.cs (45)
29/// - if <paramref name="name"/> is null or empty, adds match disposition <see cref="MatchInfo.BuiltIn.Name"/> with <see cref="MatchKind.Partial"/>;<br/> 30/// - if <paramref name="name"/> is equal to <see cref="ITemplateMetadata.Name"/> (case insensitive), adds match disposition <see cref="MatchInfo.BuiltIn.Name"/> with <see cref="MatchKind.Exact"/>;<br/> 31/// - if <paramref name="name"/> is equal to one of the short names in <see cref="ITemplateMetadata.ShortNameList"/> (case insensitive), adds match disposition <see cref="MatchInfo.BuiltIn.ShortName"/> with <see cref="MatchKind.Exact"/>;<br/> 32/// - if <see cref="ITemplateMetadata.Name"/> contains <paramref name="name"/> (case insensitive), adds match disposition <see cref="MatchInfo.BuiltIn.Name"/> with <see cref="MatchKind.Partial"/>;<br/> 33/// - if one of the short names in <see cref="ITemplateMetadata.ShortNameList"/> contains <paramref name="name"/> (case insensitive), adds match disposition <see cref="MatchInfo.BuiltIn.ShortName"/> with <see cref="MatchKind.Partial"/>;<br/> 34/// - adds match disposition <see cref="MatchInfo.BuiltIn.Name"/> with <see cref="MatchKind.Mismatch"/> otherwise.<br/> 37public static Func<ITemplateInfo, MatchInfo?> NameFilter(string name) 43return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Partial); 50return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Exact); 61return new MatchInfo(MatchInfo.BuiltIn.ShortName, name, MatchKind.Exact); 69return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Partial); 74return new MatchInfo(MatchInfo.BuiltIn.ShortName, name, MatchKind.Partial); 77return new MatchInfo(MatchInfo.BuiltIn.Name, name, MatchKind.Mismatch); 84/// - if <paramref name="inputType"/> is equal to tag named 'type' from <see cref="ITemplateInfo.Tags"/> (case insensitive), adds match disposition <see cref="MatchInfo.BuiltIn.Type"/> with <see cref="MatchKind.Exact"/>;<br/> 85/// - adds match disposition <see cref="MatchInfo.BuiltIn.Type"/> with <see cref="MatchKind.Mismatch"/> otherwise.<br/> 88public static Func<ITemplateInfo, MatchInfo?> TypeFilter(string? inputType) 100return new MatchInfo(MatchInfo.BuiltIn.Type, type, MatchKind.Exact); 104return new MatchInfo(MatchInfo.BuiltIn.Type, type, MatchKind.Mismatch); 112/// - if <paramref name="classification"/> is equal to any entry from <see cref="ITemplateMetadata.Classifications"/> (case insensitive), adds match disposition <see cref="MatchInfo.BuiltIn.Classification"/> with <see cref="MatchKind.Exact"/>;<br/> 113/// - adds match disposition <see cref="MatchInfo.BuiltIn.Classification"/> with <see cref="MatchKind.Mismatch"/> otherwise.<br/> 116public static Func<ITemplateInfo, MatchInfo?> ClassificationFilter(string? classification) 126return new MatchInfo(MatchInfo.BuiltIn.Classification, classification, MatchKind.Exact); 128return new MatchInfo(MatchInfo.BuiltIn.Classification, classification, MatchKind.Mismatch); 135/// - if <paramref name="language"/> is equal to tag named 'language' from <see cref="ITemplateInfo.Tags"/> (case insensitive), adds match disposition <see cref="MatchInfo.BuiltIn.Language"/> with <see cref="MatchKind.Exact"/>;<br/> 136/// - adds match disposition <see cref="MatchInfo.BuiltIn.Language"/> with <see cref="MatchKind.Mismatch"/> otherwise.<br/> 139public static Func<ITemplateInfo, MatchInfo?> LanguageFilter(string? language) 150return new MatchInfo(MatchInfo.BuiltIn.Language, language, MatchKind.Exact); 154return new MatchInfo(MatchInfo.BuiltIn.Language, language, MatchKind.Mismatch); 162/// - if <paramref name="baselineName"/> is equal to key from <see cref="ITemplateMetadata.BaselineInfo"/> (case insensitive), adds match disposition <see cref="MatchInfo.BuiltIn.Baseline"/> with <see cref="MatchKind.Exact"/>;<br/> 163/// - adds match disposition <see cref="MatchInfo.BuiltIn.Baseline"/> with <see cref="MatchKind.Mismatch"/> otherwise.<br/> 166public static Func<ITemplateInfo, MatchInfo?> BaselineFilter(string? baselineName) 177return new MatchInfo(MatchInfo.BuiltIn.Baseline, baselineName, MatchKind.Exact); 181return new MatchInfo(MatchInfo.BuiltIn.Baseline, baselineName, MatchKind.Mismatch); 189/// - if <see cref="ITemplateMetadata.Author"/> is null or empty, adds match disposition <see cref="MatchInfo.BuiltIn.Author"/> with <see cref="MatchKind.Mismatch"/>;<br/> 190/// - if <paramref name="author"/> is equal to <see cref="ITemplateMetadata.Author"/> (case insensitive), adds match disposition <see cref="MatchInfo.BuiltIn.Author"/> with <see cref="MatchKind.Exact"/>;<br/> 191/// - if <see cref="ITemplateMetadata.Author"/> contains <paramref name="author"/> (case insensitive), adds match disposition <see cref="MatchInfo.BuiltIn.Author"/> with <see cref="MatchKind.Partial"/>;<br/> 192/// - <see cref="MatchInfo.BuiltIn.Author"/> with <see cref="MatchKind.Mismatch"/> otherwise.<br/> 195public static Func<ITemplateInfo, MatchInfo?> AuthorFilter(string? author) 206return new MatchInfo(MatchInfo.BuiltIn.Author, author, MatchKind.Mismatch); 213return new MatchInfo(MatchInfo.BuiltIn.Author, author, MatchKind.Exact); 218return new MatchInfo(MatchInfo.BuiltIn.Author, author, MatchKind.Partial); 220return new MatchInfo(MatchInfo.BuiltIn.Author, author, MatchKind.Mismatch); 233public static IEnumerable<Func<ITemplateInfo, MatchInfo?>> ConstraintFilters(IEnumerable<ITemplateConstraint> constraintDefinitions) 250return new MatchInfo($"{MatchInfo.BuiltIn.Constraint}.{constraintDefinition.Type}", null, MatchKind.Mismatch); 253return new MatchInfo($"{MatchInfo.BuiltIn.Constraint}.{constraintDefinition.Type}", null, MatchKind.Exact);