using System; using System.Linq.Expressions; using ErsatzTV.Core; using LanguageExt; using static LanguageExt.Prelude; namespace ErsatzTV { public static partial class Validators { public static Func>, Validation> AtLeast(this T input, int minimum) => value => Optional(value) .Map(i => i.Compile()(input)) .Where(i => i >= minimum) .ToValidation( $"[{GetMemberName(value)}] must be greater or equal to {minimum}"); } }