|
JSON Voorhees
Killer JSON for C++
|
Represents an exact path in some JSON structure. More...
#include <jsonv/path.hpp>
Inheritance diagram for jsonv::path:Public Member Functions | |
| path () | |
| Creates a new, empty path. More... | |
| path (storage_type elements) | |
| Creates a path with the provided elements. More... | |
| path (const path &) | |
| path & | operator= (const path &) |
| path (path &&) noexcept | |
| path & | operator= (path &&) noexcept |
| path | operator+ (const path &subpath) const |
| Return a new path with the given subpath appended to the back. More... | |
| path & | operator+= (const path &subpath) |
| path | operator+ (path_element elem) const |
| Return a new path with the given elem appended to the back. More... | |
| path & | operator+= (path_element elem) |
Public Member Functions inherited from jsonv::detail::generic_container< std::vector< path_element > > | |
| generic_container (storage_type data) | |
| generic_container (TInputIterator first, TInputIterator last) | |
| generic_container (const generic_container &)=default | |
| generic_container (generic_container &&) noexcept=default | |
| generic_container & | operator= (const generic_container &)=default |
| generic_container & | operator= (generic_container &&)=default |
| size_type | size () const |
| Get the number of elements. More... | |
| bool | empty () const |
| iterator | begin () |
| const_iterator | begin () const |
| const_iterator | cbegin () const |
| iterator | end () |
| const_iterator | end () const |
| const_iterator | cend () const |
| reverse_iterator | rbegin () |
| const_reverse_iterator | rbegin () const |
| const_reverse_iterator | crbegin () const |
| reverse_iterator | rend () |
| const_reverse_iterator | rend () const |
| const_reverse_iterator | crend () const |
| reference | operator[] (size_type idx) |
| const_reference | operator[] (size_type idx) const |
| reference | at (size_type idx) |
| const_reference | at (size_type idx) const |
| reference | front () |
| const_reference | front () const |
| reference | back () |
| const_reference | back () const |
| void | clear () |
| iterator | insert (const_iterator pos, const value_type &x) |
| iterator | insert (const_iterator pos, value_type &&x) |
| iterator | insert (const_iterator pos, TInputIterator first, TInputIterator last) |
| iterator | insert (const_iterator pos, std::initializer_list< value_type > ilist) |
| iterator | emplace (const_iterator pos, TArgs &&...args) |
| void | emplace_back (TArgs &&...args) |
| void | push_back (const value_type &x) |
| void | push_back (value_type &&x) |
| iterator | erase (const_iterator pos) |
| iterator | erase (const_iterator first, const_iterator last) |
| void | pop_back () |
Static Public Member Functions | |
| static path | create (string_view specification) |
Create a path from a string definition. More... | |
Additional Inherited Members | |
Public Types inherited from jsonv::detail::generic_container< std::vector< path_element > > | |
| using | storage_type = std::vector< path_element > |
| using | size_type = typename storage_type::size_type |
| using | value_type = typename storage_type::value_type |
| using | difference_type = typename storage_type::difference_type |
| using | iterator = typename storage_type::iterator |
| using | const_iterator = typename storage_type::const_iterator |
| using | reverse_iterator = typename storage_type::reverse_iterator |
| using | const_reverse_iterator = typename storage_type::const_reverse_iterator |
| using | reference = typename storage_type::reference |
| using | const_reference = typename storage_type::const_reference |
| using | pointer = typename storage_type::pointer |
| using | const_pointer = typename storage_type::const_pointer |
| using | allocator_type = typename storage_type::allocator_type |
Protected Attributes inherited from jsonv::detail::generic_container< std::vector< path_element > > | |
| storage_type | _data |
| jsonv::path::path | ( | ) |
Creates a new, empty path.
| jsonv::path::path | ( | storage_type | elements | ) |
Creates a path with the provided elements.
|
static |
Create a path from a string definition.
The syntax of this is ECMAScript's syntax for selecting elements, so path::create(".foo.bar[1]") is equivalent to path({ "foo", "bar", 1 }).
| std::invalid_argument | if the specification is not valid. |
Return a new path with the given subpath appended to the back.
| path jsonv::path::operator+ | ( | path_element | elem | ) | const |
Return a new path with the given elem appended to the back.