1#ifndef SOURCEMETA_CORE_JSONPOINTER_H_
2#define SOURCEMETA_CORE_JSONPOINTER_H_
4#ifndef SOURCEMETA_CORE_JSONPOINTER_EXPORT
5#include <sourcemeta/core/jsonpointer_export.h>
8#include <sourcemeta/core/json.h>
9#include <sourcemeta/core/uri.h>
12#include <sourcemeta/core/jsonpointer_error.h>
13#include <sourcemeta/core/jsonpointer_pointer.h>
14#include <sourcemeta/core/jsonpointer_position.h>
15#include <sourcemeta/core/jsonpointer_walker.h>
35namespace sourcemeta::core {
75SOURCEMETA_CORE_JSONPOINTER_EXPORT
108SOURCEMETA_CORE_JSONPOINTER_EXPORT
139SOURCEMETA_CORE_JSONPOINTER_EXPORT
159SOURCEMETA_CORE_JSONPOINTER_EXPORT
180SOURCEMETA_CORE_JSONPOINTER_EXPORT
204SOURCEMETA_CORE_JSONPOINTER_EXPORT
227SOURCEMETA_CORE_JSONPOINTER_EXPORT
251SOURCEMETA_CORE_JSONPOINTER_EXPORT
273SOURCEMETA_CORE_JSONPOINTER_EXPORT
299SOURCEMETA_CORE_JSONPOINTER_EXPORT
324SOURCEMETA_CORE_JSONPOINTER_EXPORT
349SOURCEMETA_CORE_JSONPOINTER_EXPORT
375SOURCEMETA_CORE_JSONPOINTER_EXPORT
392SOURCEMETA_CORE_JSONPOINTER_EXPORT
406SOURCEMETA_CORE_JSONPOINTER_EXPORT
408 const std::basic_string_view<JSON::Char, JSON::CharTraits> input)
427SOURCEMETA_CORE_JSONPOINTER_EXPORT
445SOURCEMETA_CORE_JSONPOINTER_EXPORT
460SOURCEMETA_CORE_JSONPOINTER_EXPORT
480SOURCEMETA_CORE_JSONPOINTER_EXPORT
500SOURCEMETA_CORE_JSONPOINTER_EXPORT
518SOURCEMETA_CORE_JSONPOINTER_EXPORT
520 std::basic_ostream<JSON::Char, JSON::CharTraits> &stream)
539SOURCEMETA_CORE_JSONPOINTER_EXPORT
541 std::basic_ostream<JSON::Char, JSON::CharTraits> &stream)
557SOURCEMETA_CORE_JSONPOINTER_EXPORT
560 std::allocator<JSON::Char>>;
577SOURCEMETA_CORE_JSONPOINTER_EXPORT
580 std::allocator<JSON::Char>>;
598SOURCEMETA_CORE_JSONPOINTER_EXPORT
618SOURCEMETA_CORE_JSONPOINTER_EXPORT
623SOURCEMETA_CORE_JSONPOINTER_EXPORT
629SOURCEMETA_CORE_JSONPOINTER_EXPORT
635SOURCEMETA_CORE_JSONPOINTER_EXPORT
SOURCEMETA_CORE_DIFF_EXPORT auto stringify(const Diff &document, std::ostream &stream, const Diff::Format format, const Diff::FormatOptions &options={}) -> void
char Char
The character type used by the JSON document.
Definition json_value.h:42
std::char_traits< Char > CharTraits
The character traits used by the JSON document.
Definition json_value.h:44
GenericToken< JSON::String, PropertyHashJSON< JSON::String > > Token
Definition jsonpointer_pointer.h:28
SOURCEMETA_CORE_JSONPOINTER_EXPORT auto try_get(const JSON &document, const Pointer &pointer) -> const JSON *
const Pointer empty_pointer
Definition jsonpointer.h:50
SOURCEMETA_CORE_JSONPOINTER_EXPORT auto set(JSON &document, const Pointer &pointer, const JSON &value) -> void
SOURCEMETA_CORE_JSONPOINTER_EXPORT auto to_uri(const Pointer &pointer) -> URI
GenericPointerWalker< WeakPointer > PointerWalker
Definition jsonpointer.h:667
SOURCEMETA_CORE_JSONPOINTER_EXPORT auto remove(JSON &document, const Pointer &pointer) -> bool
SOURCEMETA_CORE_JSONPOINTER_EXPORT auto is_relative_pointer(std::string_view input) noexcept -> bool
GenericPointer< JSON::String, PropertyHashJSON< JSON::String > > Pointer
Definition jsonpointer.h:39
SOURCEMETA_CORE_JSONPOINTER_EXPORT auto fragment_to_pointer(const URI &uri) -> std::optional< Pointer >
SOURCEMETA_CORE_JSONPOINTER_EXPORT auto to_pointer(const JSON &document) -> Pointer
const WeakPointer empty_weak_pointer
Definition jsonpointer.h:54
SOURCEMETA_CORE_JSONPOINTER_EXPORT auto to_weak_pointer(const Pointer &pointer) -> WeakPointer
SOURCEMETA_CORE_JSONPOINTER_EXPORT auto get(const JSON &document, const Pointer &pointer) -> const JSON &
SOURCEMETA_CORE_JSONPOINTER_EXPORT auto to_string(const Pointer &pointer) -> std::basic_string< JSON::Char, JSON::CharTraits, std::allocator< JSON::Char > >
GenericPointer< std::reference_wrapper< const std::string >, PropertyHashJSON< JSON::String > > WeakPointer
Definition jsonpointer.h:44
SOURCEMETA_CORE_JSONPOINTER_EXPORT auto is_pointer(std::string_view input) noexcept -> bool