| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #pragma once
- #include <iostream>
- #include <set>
- #include <unordered_set>
- #include <jvalidate/enum.h>
- #include <jvalidate/status.h>
- namespace jvalidate::adapter {
- inline std::ostream & operator<<(std::ostream & os, Type type) {
- switch (type) {
- case Type::Null:
- return os << "null";
- case Type::Boolean:
- return os << "boolean";
- case Type::Integer:
- return os << "integer";
- case Type::Number:
- return os << "number";
- case Type::String:
- return os << "string";
- case Type::Array:
- return os << "array";
- case Type::Object:
- return os << "object";
- }
- }
- }
- namespace jvalidate::schema {
- inline std::ostream & operator<<(std::ostream & os, Version version) {
- switch (version) {
- case Version::Draft03:
- return os << "draft3";
- case Version::Draft04:
- return os << "draft4";
- case Version::Draft06:
- return os << "draft6";
- case Version::Draft07:
- return os << "draft7";
- case Version::Draft2019_09:
- return os << "draft2019-09";
- case Version::Draft2020_12:
- return os << "draft2020-12";
- }
- }
- }
- namespace jvalidate {
- inline std::ostream & operator<<(std::ostream & os, Status st) {
- if (st == Status::Accept) {
- return os << "Accept";
- }
- if (st == Status::Reject) {
- return os << "Reject";
- }
- return os << "Noop";
- }
- template <typename T>
- inline std::ostream & operator<<(std::ostream & os, std::set<T> const & data) {
- if (data.size() == 1) {
- return os << *data.begin();
- }
- os << '[';
- std::string div = " ";
- for (auto const & elem : data) {
- os << std::exchange(div, ", ") << elem;
- }
- return os << ' ' << ']';
- }
- template <typename T>
- inline std::ostream & operator<<(std::ostream & os, std::unordered_set<T> const & data) {
- if (data.size() == 1) {
- return os << *data.begin();
- }
- os << '[';
- std::string div = " ";
- for (auto const & elem : data) {
- os << std::exchange(div, ", ") << elem;
- }
- return os << ' ' << ']';
- }
- }
|