general_constraint.h 808 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include <memory>
  3. #include <set>
  4. #include <vector>
  5. #include <jvalidate/forward.h>
  6. #include <jvalidate/status.h>
  7. namespace jvalidate::constraint {
  8. struct AllOfConstraint {
  9. std::vector<SubConstraint> children;
  10. };
  11. struct AnyOfConstraint {
  12. std::vector<SubConstraint> children;
  13. };
  14. struct ConstConstraint {
  15. std::unique_ptr<adapter::Const const> value;
  16. };
  17. struct EnumConstraint {
  18. std::vector<std::unique_ptr<adapter::Const const>> enumeration;
  19. };
  20. struct OneOfConstraint {
  21. std::vector<schema::Node const *> children;
  22. };
  23. struct ConditionalConstraint {
  24. schema::Node const * if_constraint;
  25. schema::Node const * then_constraint;
  26. schema::Node const * else_constraint;
  27. };
  28. struct NotConstraint {
  29. SubConstraint child;
  30. };
  31. struct TypeConstraint {
  32. std::set<adapter::Type> types;
  33. };
  34. }