public static IValueConstraint <T> ValueConstraint <T>(Func <T, T> constraintFunction) { IValueConstraint <T> output = Laminar.New <IValueConstraint <T> >(); output.MyFunc = constraintFunction; return(output); }
public static ITypeDefinitionConstructor <T> WithConstraint <T>(this ITypeDefinitionConstructor <T> typeDefinitionConstructor, Func <T, T> constraint) { IValueConstraint <T> valueConstraint = Constructor.ValueConstraint(constraint); typeDefinitionConstructor.AddConstraint(valueConstraint); return(typeDefinitionConstructor); }
/// <summary> /// Adds this constraint to the end of a chain of constraints /// </summary> /// <param name="constraint">The chain of constraints to add this to</param> public void AddToEndOfChain(IValueConstraint <T> constraint) { if (constraint is null) { return; } Func <T, T> PreviousTotal = constraint.TotalFunc; TotalFunc = (x) => MyFunc(PreviousTotal(x));; }
public bool CanProvideErrorMessageFor(IValueConstraint constraint) { return _valueConstraintErrorMessageProviderThatCanRender.CanProvideErrorMessageFor(constraint); }