8#include "zen/config.hpp"
9#include "zen/transformer.hpp"
10#include "zen/value.hpp"
15enum class json_token_type {
31enum class json_parse_error {
32 unrecognised_escape_sequence,
38json_parse_result parse_json(std::istream& in);
39json_parse_result parse_json(
const std::string& in);
42 std::string indentation =
"";
45std::unique_ptr<transformer> make_json_decoder(
54std::unique_ptr<transformer> make_json_encoder(
59template<
typename InputT,
typename T>
60void decode_json(InputT input, T&
value) {
61 auto decoder = make_json_decoder(input);
62 decode(decoder,
value);
65template<
typename OutputT,
typename T>
66void encode_json(OutputT output, T&
value) {
67 auto encoder = make_json_encoder(output);
68 decode(encoder,
value);
71template<
typename OutputT,
typename T>
72void encode_json_pretty(OutputT output, T&
value) {
76 auto encoder = make_json_encoder(output, opts);
77 decode(encoder,
value);
A type for computations that may fail.
Definition either.hpp:124
Encapsulation for computations that may fail.