enum.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #pragma once
  2. #include <cstdint>
  3. #include <jvalidate/forward.h>
  4. namespace jvalidate::adapter {
  5. enum class Type : int8_t {
  6. Null,
  7. Boolean,
  8. Integer,
  9. Number,
  10. String,
  11. Array,
  12. Object,
  13. };
  14. }
  15. namespace jvalidate::schema {
  16. enum class Version : int8_t { // NOLINT(readability-enum-initial-value)
  17. // Keywords: type, properties, patternProperties, additionalProperties, items, additionalItems
  18. // required, dependencies, minimum, maximum, exclusiveMinimum, exclusiveMaximum,
  19. // minItems, maxItems, uniqueItems, pattern, minLength, maxLength, enum, default,
  20. // title, description, format, divisibleBy, disallow, extends, id, $ref, $schema
  21. Draft03,
  22. // New: allOf, anyOf, oneOf, not, minProperties, maxProperties, definitions
  23. // Changed: required, dependencies
  24. // Renamed: divisibleBy -> multipleOf
  25. // Removed: type(schema), extends, disallow
  26. // Formats: date-time, email, hostname, ipv4, ipv6, uri
  27. // https://json-schema.org/draft-04/schema
  28. Draft04,
  29. Draft05 = Draft04, // draft-05 simply clarifies the terms of draft-04
  30. // New: "boolean as schema", propertyNames, contains, const
  31. // Changed: $ref, exclusiveMinimum, exclusiveMaximum, type, required, dependencies, examples
  32. // Renamed: id -> $id
  33. // Formats: uri-template, uri-reference, json-pointer
  34. // https://json-schema.org/draft-06/schema
  35. Draft06,
  36. // New: $comment, if, then, else, readOnly, writeOnly, contentMediaType, contentEncoding
  37. // Formats: iri, iri-reference, uri-template*, idn-email, idn-hostname, json-pointer*,
  38. // relative-json-pointer, regex, date, time
  39. // https://json-schema.org/draft-07/schema
  40. Draft07,
  41. // New: $anchor, $recursiveAnchor, $recursiveRef, unevaluatedItems, unevaluatedProperties,
  42. // maxContains, minContains
  43. // Changed: $id, $ref, format
  44. // Renamed: definitions -> $defs
  45. // Split: dependencies -> (dependentSchemas, dependentRequired)
  46. // Formats: duration, hostname*, idn-hostname*, uuid
  47. // https://json-schema.org/draft/2019-09/schema
  48. Draft2019_09,
  49. // Renamed: (items(array), additionalItems) -> (prefixItems, items),
  50. // $recursiveRef -> $dynamicRef, $recursiveAnchor -> $dynamicAnchor
  51. // Split: format -> (format-annotation, format-assertion)
  52. // https://json-schema.org/draft/2020-12/schema
  53. Draft2020_12,
  54. Earliest = Draft03,
  55. Latest = Draft2020_12,
  56. };
  57. enum class Wraps : int8_t { Array, Object, Schema };
  58. }