public static NullableDataSourceStandardStandardStandard <OptionalCollectionStateValidator <TValue>, ItemCountValidator <TValue>, UniqueValidator <TValue>, CustomValidator <TValue[]>, TValue[]> Assert <TValue>(this NullableDataSourceStandardStandard <OptionalCollectionStateValidator <TValue>, ItemCountValidator <TValue>, UniqueValidator <TValue>, TValue[]> source, string description, Func <TValue[], bool> validator) => source.Add(new CustomValidator <TValue[]>(description, validator));
public static NullableDataSourceStandardStandardInverted <OptionalCollectionStateValidator <TValue>, UniqueValidator <TValue>, ItemCountValidator <TValue>, TValueValidator, TValue[]> Not <TValueValidator, TValue>(this NullableDataSourceStandardStandard <OptionalCollectionStateValidator <TValue>, UniqueValidator <TValue>, ItemCountValidator <TValue>, TValue[]> source, Func <NullableDataSourceStandardStandard <OptionalCollectionStateValidator <TValue>, UniqueValidator <TValue>, ItemCountValidator <TValue>, TValue[]>, NullableDataSourceStandardStandardStandard <OptionalCollectionStateValidator <TValue>, UniqueValidator <TValue>, ItemCountValidator <TValue>, TValueValidator, TValue[]> > validatorFactory) where TValueValidator : IValueValidator <TValue[]> => validatorFactory.Invoke(source).InvertThree();