|
libdonut 2.3.6
Application framework for cross-platform game development in C++20
|
#include <donut/Variant.hpp>#include <donut/reflection.hpp>#include <donut/unicode.hpp>#include <algorithm>#include <array>#include <charconv>#include <cmath>#include <compare>#include <cstddef>#include <cstdint>#include <cstdlib>#include <cstring>#include <fmt/format.h>#include <initializer_list>#include <istream>#include <iterator>#include <limits>#include <numeric>#include <optional>#include <ostream>#include <span>#include <sstream>#include <stdexcept>#include <string>#include <string_view>#include <system_error>#include <tuple>#include <type_traits>#include <utility>#include <vector>Go to the source code of this file.
Classes | |
| struct | donut::json::SourceLocation |
| Line and column numbers of a location in a JSON source string. More... | |
| struct | donut::json::Error |
| Exception type for errors originating from the JSON API. More... | |
| struct | donut::json::SerializationOptions |
| Options for JSON serialization. More... | |
| struct | donut::json::DeserializationOptions |
| Options for JSON deserialization. More... | |
| class | donut::json::Object |
| JSON object type whose API mimics that of std::multimap<String, Value>. More... | |
| class | donut::json::Array |
| JSON array type whose API mimics that of std::vector<Value>. More... | |
| class | donut::json::Value |
| JSON value type. More... | |
| struct | donut::json::Token |
| Token data scanned from JSON. More... | |
| class | donut::json::Lexer< It > |
| Lexical analyzer for scanning and tokenizing input in the JSON5 format. More... | |
| class | donut::json::Parser< It > |
| Syntactic analyzer for parsing input in the JSON5 format obtained from a json::Lexer. More... | |
| class | donut::json::Parser< It >::ValueVisitor |
| Polymorphic interface for visitation-based parsing of JSON values. More... | |
| struct | donut::json::Parser< It >::ConcreteValueVisitor< Visitor > |
| Implementation of ValueVisitor for freestanding classes that implement all or parts of its interface without directly inheriting from it. More... | |
| class | donut::json::Parser< It >::PropertyVisitor |
| Polymorphic interface for visitation-based parsing of JSON object properties. More... | |
| struct | donut::json::Parser< It >::ConcretePropertyVisitor< Visitor > |
| Implementation of PropertyVisitor for freestanding classes that implement all or parts of its interface without directly inheriting from it. More... | |
| struct | donut::json::Parser< It >::SkipValueVisitor |
| Implementation of ValueVisitor that skips over the parsed value and discards the result. More... | |
| struct | donut::json::Parser< It >::SkipPropertyVisitor |
| Implementation of PropertyVisitor that skips over the parsed property and discards the result. More... | |
| struct | donut::json::Writer |
| Stateful wrapper object of an output stream for JSON serialization. More... | |
| struct | donut::json::Reader |
| Stateful wrapper object of an input stream for JSON deserialization. More... | |
| struct | donut::json::Serializer< T > |
| Base template to specialize in order to implement JSON serialization for a specific type. More... | |
| struct | donut::json::Deserializer< T > |
| Base template to specialize in order to implement JSON deserialization for a specific type. More... | |
Namespaces | |
| namespace | donut |
| namespace | donut::json |
Typedefs | |
| using | donut::json::Null = Monostate |
| JSON null type. | |
| using | donut::json::Boolean = bool |
| JSON boolean type. | |
| using | donut::json::String = std::string |
| JSON string type. | |
| using | donut::json::Number = double |
| JSON number type. | |
| using | donut::json::StringParser = Parser< const char8_t * > |
| Parser for reading contiguous UTF-8-encoded JSON strings. | |
| using | donut::json::StreamParser = Parser< std::istreambuf_iterator< char > > |
| Parser for reading UTF-8-encoded JSON input stream buffers. | |
Functions | |
| constexpr bool | donut::json::isWhitespaceCharacter (char32_t codePoint) noexcept |
| Check if a Unicode code point is considered to be whitespace in JSON5. | |
| constexpr bool | donut::json::isPunctuationCharacter (char32_t codePoint) noexcept |
| Check if a Unicode code point is considered to be punctuation in JSON5. | |
| constexpr bool | donut::json::isLineTerminatorCharacter (char32_t codePoint) noexcept |
| Check if a Unicode code point marks the beginning of a line terminator sequence in JSON5. | |
| template<typename T > | |
| void | donut::json::serialize (std::ostream &stream, const T &value, const SerializationOptions &options={}) |
| Serialize a value of any JSON-serializable type to an output stream. | |
| template<typename T > | |
| void | donut::json::deserialize (std::istream &stream, T &value, const DeserializationOptions &options={}) |
| Deserialize a value of any JSON-serializable type from an input stream. | |
| std::ostream & | donut::json::operator<< (std::ostream &stream, const Value &value) |
| Write a JSON value to an output stream using the default serialization options. | |
| std::istream & | donut::json::operator>> (std::istream &stream, Value &value) |
| Read a JSON value from an input stream using the default deserialization options. | |
| template<typename Callback > | |
| auto | donut::json::onNull (Callback callback) |
| Build a Parser::ValueVisitor that handles Null values with a given callback function. | |
| template<typename Callback > | |
| auto | donut::json::onBoolean (Callback callback) |
| Build a Parser::ValueVisitor that handles Boolean values with a given callback function. | |
| template<typename Callback > | |
| auto | donut::json::onString (Callback callback) |
| Build a Parser::ValueVisitor that handles String values with a given callback function. | |
| template<typename Callback > | |
| auto | donut::json::onNumber (Callback callback) |
| Build a Parser::ValueVisitor that handles Number values with a given callback function. | |
| template<typename Callback > | |
| auto | donut::json::onObject (Callback callback) |
| Build a Parser::ValueVisitor that handles objects with a given callback function. | |
| template<typename Callback > | |
| auto | donut::json::onArray (Callback callback) |
| Build a Parser::ValueVisitor that handles arrays with a given callback function. | |
| template<typename Callback > | |
| auto | donut::json::onProperty (Callback callback) |
| Build a Parser::PropertyVisitor that handles object properties with a given callback function. | |
| void | donut::json::swap (Object &a, Object &b) noexcept |
| template<typename Predicate > | |
| Object::size_type | donut::json::erase_if (Object &container, Predicate predicate) |
| void | donut::json::swap (Array &a, Array &b) noexcept |
| template<typename U > | |
| Array::size_type | donut::json::erase (Array &container, const U &value) |
| template<typename Predicate > | |
| Array::size_type | donut::json::erase_if (Array &container, Predicate predicate) |