number_constraint.h 994 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include <jvalidate/constraint/constraint.h>
  3. #include <jvalidate/forward.h>
  4. namespace jvalidate::constraint {
  5. class MaximumConstraint : public SimpleConstraint<MaximumConstraint> {
  6. private:
  7. double value_;
  8. bool exclusive_;
  9. public:
  10. MaximumConstraint(double value, bool exclusive) : value_(value), exclusive_(exclusive) {}
  11. bool operator()(double arg) const { return exclusive_ ? arg < value_ : arg <= value_; }
  12. };
  13. class MinimumConstraint : public SimpleConstraint<MinimumConstraint> {
  14. private:
  15. double value_;
  16. bool exclusive_;
  17. public:
  18. MinimumConstraint(double value, bool exclusive) : value_(value), exclusive_(exclusive) {}
  19. bool operator()(double arg) const { return exclusive_ ? arg > value_ : arg >= value_; }
  20. };
  21. class MultipleOfConstraint : public SimpleConstraint<MultipleOfConstraint> {
  22. private:
  23. int64_t value_;
  24. public:
  25. MultipleOfConstraint(int64_t value) : value_(value) {}
  26. bool operator()(int64_t arg) const { return (arg % value_) == 0; }
  27. };
  28. }