array_constraint.h 692 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include <optional>
  3. #include <vector>
  4. #include <jvalidate/adapter.h>
  5. #include <jvalidate/forward.h>
  6. namespace jvalidate::constraint {
  7. struct AdditionalItemsConstraint {
  8. schema::Node const * subschema;
  9. size_t applies_after_nth;
  10. };
  11. struct ContainsConstraint {
  12. schema::Node const * subschema;
  13. std::optional<size_t> minimum = std::nullopt;
  14. std::optional<size_t> maximum = std::nullopt;
  15. };
  16. struct MaxItemsConstraint {
  17. int64_t value;
  18. };
  19. struct MinItemsConstraint {
  20. int64_t value;
  21. };
  22. struct TupleConstraint {
  23. std::vector<schema::Node const *> items;
  24. };
  25. struct UnevaluatedItemsConstraint {
  26. schema::Node const * subschema;
  27. };
  28. struct UniqueItemsConstraint {};
  29. }