object_constraint.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #pragma once
  2. #include <map>
  3. #include <string>
  4. #include <unordered_set>
  5. #include <utility>
  6. #include <vector>
  7. #include <jvalidate/forward.h>
  8. namespace jvalidate::constraint {
  9. struct AdditionalPropertiesConstraint {
  10. schema::Node const * subschema;
  11. std::unordered_set<std::string> properties;
  12. std::vector<std::string> patterns;
  13. };
  14. struct DependenciesConstraint {
  15. std::map<std::string, schema::Node const *> subschemas;
  16. std::map<std::string, std::unordered_set<std::string>> required;
  17. };
  18. struct MaxPropertiesConstraint {
  19. int64_t value;
  20. };
  21. struct MinPropertiesConstraint {
  22. int64_t value;
  23. };
  24. struct PatternPropertiesConstraint {
  25. std::vector<std::pair<std::string, schema::Node const *>> properties;
  26. };
  27. struct PropertiesConstraint {
  28. std::map<std::string, schema::Node const *> properties;
  29. };
  30. struct PropertyNamesConstraint {
  31. schema::Node const * key_schema;
  32. };
  33. struct RequiredConstraint {
  34. std::unordered_set<std::string> properties;
  35. };
  36. struct UnevaluatedPropertiesConstraint {
  37. schema::Node const * subschema;
  38. };
  39. }