26enum class path_element_kind :
unsigned char
32JSONV_PUBLIC std::ostream& operator<<(std::ostream&,
const path_element_kind&);
52 path_element_kind
kind()
const;
55 std::size_t index()
const;
58 const std::string& key()
const;
71 storage(std::size_t idx);
72 storage(std::string&& key);
77 path_element_kind _kind;
98template <std::same_as<path_element> T>
101 return detail::path_element_to_string(elem);
106 public detail::generic_container<std::vector<path_element>>
132 path& operator+=(const
path& subpath);
Represents an exact path in some JSON structure.
path()
Creates a new, empty path.
path(storage_type elements)
Creates a path with the provided elements.
static path create(std::string_view specification)
Create a path from a string definition.
Copyright (c) 2014-2020 by Travis Gockel.
Copyright (c) 2014 by Travis Gockel.
#define JSONV_NODISCARD
Warn if the caller discards the result of this function.
#define JSONV_PUBLIC
This function or class is part of the public API for JSON Voorhees.
kind
Describes the kind of data a value holds.
JSONV_PUBLIC std::string to_string(const ast_node_type &type)
Get what operator<< writes for type as a std::string.