📝 updated documentation
This commit is contained in:
parent
710f26f95c
commit
e07e8e7912
9 changed files with 126 additions and 16 deletions
15
doc/examples/json_pointer__back.cpp
Normal file
15
doc/examples/json_pointer__back.cpp
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#include <iostream>
|
||||||
|
#include <nlohmann/json.hpp>
|
||||||
|
|
||||||
|
using json = nlohmann::json;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// different JSON Pointers
|
||||||
|
json::json_pointer ptr1("/foo");
|
||||||
|
json::json_pointer ptr2("/foo/0");
|
||||||
|
|
||||||
|
// call empty()
|
||||||
|
std::cout << "last reference token of " << ptr1 << " is " << ptr1.back() << '\n'
|
||||||
|
<< "last reference token of " << ptr2 << " is " << ptr2.back() << std::endl;
|
||||||
|
}
|
1
doc/examples/json_pointer__back.link
Normal file
1
doc/examples/json_pointer__back.link
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<a target="_blank" href="https://wandbox.org/permlink/2q7gu0ZAQoMeOaAc"><b>online</b></a>
|
2
doc/examples/json_pointer__back.output
Normal file
2
doc/examples/json_pointer__back.output
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
last reference token of "/foo" is foo
|
||||||
|
last reference token of "/foo/0" is 0
|
21
doc/examples/json_pointer__pop_back.cpp
Normal file
21
doc/examples/json_pointer__pop_back.cpp
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
#include <iostream>
|
||||||
|
#include <nlohmann/json.hpp>
|
||||||
|
|
||||||
|
using json = nlohmann::json;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// create empty JSON Pointer
|
||||||
|
json::json_pointer ptr("/foo/bar/baz");
|
||||||
|
std::cout << ptr << '\n';
|
||||||
|
|
||||||
|
// call pop_back()
|
||||||
|
ptr.pop_back();
|
||||||
|
std::cout << ptr << '\n';
|
||||||
|
|
||||||
|
ptr.pop_back();
|
||||||
|
std::cout << ptr << '\n';
|
||||||
|
|
||||||
|
ptr.pop_back();
|
||||||
|
std::cout << ptr << '\n';
|
||||||
|
}
|
1
doc/examples/json_pointer__pop_back.link
Normal file
1
doc/examples/json_pointer__pop_back.link
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<a target="_blank" href="https://wandbox.org/permlink/aFuDbxgbraVszcBX"><b>online</b></a>
|
4
doc/examples/json_pointer__pop_back.output
Normal file
4
doc/examples/json_pointer__pop_back.output
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
"/foo/bar/baz"
|
||||||
|
"/foo/bar"
|
||||||
|
"/foo"
|
||||||
|
""
|
|
@ -210,7 +210,7 @@ class json_pointer
|
||||||
@return parent of this JSON pointer; in case this JSON pointer is the root,
|
@return parent of this JSON pointer; in case this JSON pointer is the root,
|
||||||
the root itself is returned
|
the root itself is returned
|
||||||
|
|
||||||
@complexity Constant.
|
@complexity Linear in the length of the JSON pointer.
|
||||||
|
|
||||||
@liveexample{The example shows the result of `parent_pointer` for different
|
@liveexample{The example shows the result of `parent_pointer` for different
|
||||||
JSON Pointers.,json_pointer__parent_pointer}
|
JSON Pointers.,json_pointer__parent_pointer}
|
||||||
|
@ -230,19 +230,50 @@ class json_pointer
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief remove and return last reference token
|
@brief remove last reference token
|
||||||
|
|
||||||
|
@pre not `empty()`
|
||||||
|
|
||||||
|
@liveexample{The example shows the usage of `pop_back`.,json_pointer__pop_back}
|
||||||
|
|
||||||
|
@complexity Constant.
|
||||||
|
|
||||||
@throw out_of_range.405 if JSON pointer has no parent
|
@throw out_of_range.405 if JSON pointer has no parent
|
||||||
|
|
||||||
|
@since version 3.6.0
|
||||||
*/
|
*/
|
||||||
std::string pop_back()
|
void pop_back()
|
||||||
{
|
{
|
||||||
if (JSON_UNLIKELY(empty()))
|
if (JSON_UNLIKELY(empty()))
|
||||||
{
|
{
|
||||||
JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent"));
|
JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent"));
|
||||||
}
|
}
|
||||||
|
|
||||||
auto last = reference_tokens.back();
|
|
||||||
reference_tokens.pop_back();
|
reference_tokens.pop_back();
|
||||||
return last;
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@brief return last reference token
|
||||||
|
|
||||||
|
@pre not `empty()`
|
||||||
|
@return last reference token
|
||||||
|
|
||||||
|
@liveexample{The example shows the usage of `back`.,json_pointer__back}
|
||||||
|
|
||||||
|
@complexity Constant.
|
||||||
|
|
||||||
|
@throw out_of_range.405 if JSON pointer has no parent
|
||||||
|
|
||||||
|
@since version 3.6.0
|
||||||
|
*/
|
||||||
|
const std::string& back()
|
||||||
|
{
|
||||||
|
if (JSON_UNLIKELY(empty()))
|
||||||
|
{
|
||||||
|
JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent"));
|
||||||
|
}
|
||||||
|
|
||||||
|
return reference_tokens.back();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -255,7 +286,7 @@ class json_pointer
|
||||||
@liveexample{The example shows the result of `push_back` for different
|
@liveexample{The example shows the result of `push_back` for different
|
||||||
JSON Pointers.,json_pointer__push_back}
|
JSON Pointers.,json_pointer__push_back}
|
||||||
|
|
||||||
@since version 0.6.0
|
@since version 3.6.0
|
||||||
*/
|
*/
|
||||||
void push_back(const std::string& token)
|
void push_back(const std::string& token)
|
||||||
{
|
{
|
||||||
|
|
|
@ -7507,7 +7507,8 @@ class basic_json
|
||||||
}
|
}
|
||||||
|
|
||||||
// get reference to parent of JSON pointer ptr
|
// get reference to parent of JSON pointer ptr
|
||||||
const auto last_path = ptr.pop_back();
|
const auto last_path = ptr.back();
|
||||||
|
ptr.pop_back();
|
||||||
basic_json& parent = result[ptr];
|
basic_json& parent = result[ptr];
|
||||||
|
|
||||||
switch (parent.m_type)
|
switch (parent.m_type)
|
||||||
|
@ -7552,7 +7553,8 @@ class basic_json
|
||||||
const auto operation_remove = [&result](json_pointer & ptr)
|
const auto operation_remove = [&result](json_pointer & ptr)
|
||||||
{
|
{
|
||||||
// get reference to parent of JSON pointer ptr
|
// get reference to parent of JSON pointer ptr
|
||||||
const auto last_path = ptr.pop_back();
|
const auto last_path = ptr.back();
|
||||||
|
ptr.pop_back();
|
||||||
basic_json& parent = result.at(ptr);
|
basic_json& parent = result.at(ptr);
|
||||||
|
|
||||||
// remove child
|
// remove child
|
||||||
|
|
|
@ -8620,7 +8620,7 @@ class json_pointer
|
||||||
@return parent of this JSON pointer; in case this JSON pointer is the root,
|
@return parent of this JSON pointer; in case this JSON pointer is the root,
|
||||||
the root itself is returned
|
the root itself is returned
|
||||||
|
|
||||||
@complexity Constant.
|
@complexity Linear in the length of the JSON pointer.
|
||||||
|
|
||||||
@liveexample{The example shows the result of `parent_pointer` for different
|
@liveexample{The example shows the result of `parent_pointer` for different
|
||||||
JSON Pointers.,json_pointer__parent_pointer}
|
JSON Pointers.,json_pointer__parent_pointer}
|
||||||
|
@ -8640,19 +8640,50 @@ class json_pointer
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief remove and return last reference token
|
@brief remove last reference token
|
||||||
|
|
||||||
|
@pre not `empty()`
|
||||||
|
|
||||||
|
@liveexample{The example shows the usage of `pop_back`.,json_pointer__pop_back}
|
||||||
|
|
||||||
|
@complexity Constant.
|
||||||
|
|
||||||
@throw out_of_range.405 if JSON pointer has no parent
|
@throw out_of_range.405 if JSON pointer has no parent
|
||||||
|
|
||||||
|
@since version 3.6.0
|
||||||
*/
|
*/
|
||||||
std::string pop_back()
|
void pop_back()
|
||||||
{
|
{
|
||||||
if (JSON_UNLIKELY(empty()))
|
if (JSON_UNLIKELY(empty()))
|
||||||
{
|
{
|
||||||
JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent"));
|
JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent"));
|
||||||
}
|
}
|
||||||
|
|
||||||
auto last = reference_tokens.back();
|
|
||||||
reference_tokens.pop_back();
|
reference_tokens.pop_back();
|
||||||
return last;
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@brief return last reference token
|
||||||
|
|
||||||
|
@pre not `empty()`
|
||||||
|
@return last reference token
|
||||||
|
|
||||||
|
@liveexample{The example shows the usage of `back`.,json_pointer__back}
|
||||||
|
|
||||||
|
@complexity Constant.
|
||||||
|
|
||||||
|
@throw out_of_range.405 if JSON pointer has no parent
|
||||||
|
|
||||||
|
@since version 3.6.0
|
||||||
|
*/
|
||||||
|
const std::string& back()
|
||||||
|
{
|
||||||
|
if (JSON_UNLIKELY(empty()))
|
||||||
|
{
|
||||||
|
JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent"));
|
||||||
|
}
|
||||||
|
|
||||||
|
return reference_tokens.back();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -8665,7 +8696,7 @@ class json_pointer
|
||||||
@liveexample{The example shows the result of `push_back` for different
|
@liveexample{The example shows the result of `push_back` for different
|
||||||
JSON Pointers.,json_pointer__push_back}
|
JSON Pointers.,json_pointer__push_back}
|
||||||
|
|
||||||
@since version 0.6.0
|
@since version 3.6.0
|
||||||
*/
|
*/
|
||||||
void push_back(const std::string& token)
|
void push_back(const std::string& token)
|
||||||
{
|
{
|
||||||
|
@ -20241,7 +20272,8 @@ class basic_json
|
||||||
}
|
}
|
||||||
|
|
||||||
// get reference to parent of JSON pointer ptr
|
// get reference to parent of JSON pointer ptr
|
||||||
const auto last_path = ptr.pop_back();
|
const auto last_path = ptr.back();
|
||||||
|
ptr.pop_back();
|
||||||
basic_json& parent = result[ptr];
|
basic_json& parent = result[ptr];
|
||||||
|
|
||||||
switch (parent.m_type)
|
switch (parent.m_type)
|
||||||
|
@ -20286,7 +20318,8 @@ class basic_json
|
||||||
const auto operation_remove = [&result](json_pointer & ptr)
|
const auto operation_remove = [&result](json_pointer & ptr)
|
||||||
{
|
{
|
||||||
// get reference to parent of JSON pointer ptr
|
// get reference to parent of JSON pointer ptr
|
||||||
const auto last_path = ptr.pop_back();
|
const auto last_path = ptr.back();
|
||||||
|
ptr.pop_back();
|
||||||
basic_json& parent = result.at(ptr);
|
basic_json& parent = result.at(ptr);
|
||||||
|
|
||||||
// remove child
|
// remove child
|
||||||
|
|
Loading…
Reference in a new issue