1#ifndef XRPL_JSON_WRITER_H_INCLUDED
2#define XRPL_JSON_WRITER_H_INCLUDED
4#include <xrpl/basics/ToString.h>
5#include <xrpl/basics/contract.h>
6#include <xrpl/json/Output.h>
7#include <xrpl/json/json_value.h>
116 operator=(
Writer&&) noexcept;
144 template <typename Scalar>
168 template <
typename Type>
212 template <
typename Type>
237 ripple::Throw<std::logic_error>(message);
Lightweight wrapper to tag static string.
constexpr char const * c_str() const
Writer implements an O(1)-space, O(1)-granular output JSON writer.
void finish()
Finish the collection most recently started.
void output(std::string const &)
void implOutput(std::string const &)
void startRoot(CollectionType)
Start a new collection at the root level.
void output(Type t)
Output numbers or booleans.
void append(Scalar t)
Append a value to an array.
void rawAppend()
Add a comma before this next item if not the first item in an array.
void rawSet(std::string const &key)
Emit just "tag": as part of an object.
void finishAll()
Finish all objects and arrays.
void startAppend(CollectionType)
Start a new collection inside an array.
void set(std::string const &tag, Type t)
Add a key, value assignment to an object.
void startSet(CollectionType, std::string const &key)
Start a new collection inside an object.
void output(Json::StaticString const &t)
std::unique_ptr< Impl > impl_
JSON (JavaScript Object Notation).
void check(bool condition, std::string const &message)