public static VariableFiltersBuilder <string> WithStringListFilter(this VariableFiltersBuilder <string> @this, params string[] strings)
 {
     return(@this.WithFilter(new StringListFilter(strings)));
 }
 public static VariableFiltersBuilder <T> WithInvertedFilter <T>(this VariableFiltersBuilder <T> @this, IVariableFilter <T> filter)
 {
     return(@this.WithFilter(new InvertFilter <T>(filter)));
 }
 public static VariableFiltersBuilder <string> WithStringListFilter(this VariableFiltersBuilder <string> @this, IReadOnlyList <string> strings)
 {
     return(@this.WithFilter(new StringListFilter(strings)));
 }
 public static VariableFiltersBuilder <string> WithRegexFilter(this VariableFiltersBuilder <string> @this, string pattern)
 {
     return(@this.WithFilter(new RegexFilter(new Regex(pattern))));
 }
 public static VariableFiltersBuilder <string> WithRegexFilter(this VariableFiltersBuilder <string> @this, Regex regex)
 {
     return(@this.WithFilter(new RegexFilter(regex)));
 }
 public static VariableFiltersBuilder <T> WithMinMaxFilter <T>(this VariableFiltersBuilder <T> @this, T?min, T?max, bool denyOutOfRangeValues = false)
     where T : struct, IComparable <T>, IEquatable <T>
 {
     return(@this.WithFilter(new MinMaxFilter <T>(min, max, denyOutOfRangeValues)));
 }
 /// <summary>
 /// <see cref="NumberSignFilter(bool)"/>
 /// </summary>
 /// <param name="this"></param>
 /// <param name="positive"></param>
 /// <returns></returns>
 public static VariableFiltersBuilder <T> WithNumberSignFilter <T>(this VariableFiltersBuilder <T> @this, bool positive)
     where T : IComparable <T>
 {
     return(@this.WithFilter(new NumberSignFilter <T>(positive)));
 }