#ifndef UTIL_JSON_JSON_HELPERS_H_
#define UTIL_JSON_JSON_HELPERS_H_
#include <chrono>
#include <cmath>
#include <functional>
#include <string>
#include <utility>
#include <vector>
#include "json/value.h"
#include "platform/base/error.h"
#include "util/chrono_helpers.h"
#include "util/json/json_serialization.h"
#include "util/simple_fraction.h"
namespace openscreen::json {
inline bool TryParseBool(const Json::Value& value, bool* out) { … }
inline bool TryParseDouble(const Json::Value& value,
double* out,
bool allow_negative = false) { … }
inline bool TryParseInt(const Json::Value& value, int* out) { … }
inline bool TryParseUint(const Json::Value& value, uint32_t* out) { … }
inline bool TryParseString(const Json::Value& value, std::string* out) { … }
inline bool TryParseSimpleFraction(const Json::Value& value,
SimpleFraction* out) { … }
inline bool TryParseMilliseconds(const Json::Value& value, milliseconds* out) { … }
Parser;
template <typename T>
bool TryParseArray(const Json::Value& value,
Parser<T> parser,
std::vector<T>* out) { … }
inline bool TryParseIntArray(const Json::Value& value, std::vector<int>* out) { … }
inline bool TryParseUintArray(const Json::Value& value,
std::vector<uint32_t>* out) { … }
inline bool TryParseStringArray(const Json::Value& value,
std::vector<std::string>* out) { … }
template <typename T>
Json::Value PrimitiveVectorToJson(const std::vector<T>& vec) { … }
}
#endif