string_constraint.h 949 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #pragma once
  2. #include <string>
  3. #include <jvalidate/constraint/constraint.h>
  4. #include <jvalidate/detail/string.h>
  5. #include <jvalidate/forward.h>
  6. namespace jvalidate::constraint {
  7. class MinLengthConstraint : public SimpleConstraint<MinLengthConstraint> {
  8. public:
  9. int64_t value;
  10. public:
  11. MinLengthConstraint(int64_t value) : value(value) {}
  12. };
  13. class MaxLengthConstraint : public SimpleConstraint<MaxLengthConstraint> {
  14. public:
  15. int64_t value;
  16. public:
  17. MaxLengthConstraint(int64_t value) : value(value) {}
  18. };
  19. class PatternConstraint : public SimpleConstraint<PatternConstraint> {
  20. public:
  21. std::string regex;
  22. public:
  23. PatternConstraint(std::string const & regex) : regex(regex) {}
  24. };
  25. class FormatConstraint : public SimpleConstraint<FormatConstraint> {
  26. public:
  27. std::string format;
  28. bool is_assertion;
  29. public:
  30. FormatConstraint(std::string const & format, bool is_assertion)
  31. : format(format), is_assertion(is_assertion) {}
  32. };
  33. }