|
| Dictionary (const std::shared_ptr< json > &root, json_pointer pointer) |
| Wraps an Dictionary class around an existing JSON node.
|
|
| Dictionary (Base &parent, const std::string_view &key) |
| Creates a new Dictionary class as a child of a JSON node.
|
|
size_t | size () const |
| Get the size of the array.
|
|
bool | empty () const |
| Check if the array is empty.
|
|
void | clear () |
| Clear all elements.
|
|
T | operator[] (const std::string &key) const |
| const operator[]
|
|
auto | operator[] (const std::string &key) |
| non-const operator[]
|
|
template<typename U = T> |
std::enable_if_t<!std::is_base_of_v< Base, U >, void > | emplace (const std::string &key, const U &value) |
| Add a new value to the dictonary. (Available only for primitive types)
|
|
template<typename U = T, typename... Args, std::enable_if_t< std::is_base_of_v< Base, U >, int > = 0> |
U | append (const std::string &key, Args &&... args) |
| Create a new element using the input key. (Available only for Base types)
|
|
void | erase (const std::string &key) |
| Remove an element at a given key.
|
|
auto | find (const std::string &key) |
| Finds an element by key and returns an iterator.
|
|
auto | find (const std::string &key) const |
| Finds an element by key and returns a const iterator.
|
|
auto | begin () |
| Returns an iterator to the beginning of the dictionary.
|
|
auto | end () |
| Returns an iterator to the end of the dictionary.
|
|
auto | begin () const |
| Returns a const iterator to the beginning of the dictionary.
|
|
auto | end () const |
| Returns a const iterator to the end of the dictionary.
|
|
| Object (const std::shared_ptr< json > &root, json_pointer pointer) |
| Wraps an Object class around an existing JSON object node.
|
|
| Object (Base &parent, const std::string_view &key) |
| Creates a new Object class as a child of a JSON node.
|
|
| Base (const Base &src) |
| Copy constructor.
|
|
| Base (Base &&src) noexcept |
| Move constructor.
|
|
Base & | operator= (const Base &src) |
| Copy assignment operator.
|
|
Base & | operator= (Base &&src) |
| Move assignment operator.
|
|
std::string | dump (int indents=-1) |
| Dumps the branch to a string. Useful in debugging.
|
|
template<typename T > |
T | parent () const |
| Returns the parent object for this node.
|
|
template<typename T > |
std::optional< T > | getEnclosingElement () const |
| Returns the enclosing array element for this instance.
|
|
json_pointer | pointer () const |
| Returns the json_pointer for this node.
|
|
|
json & | ref () const |
| Convert this node for retrieval.
|
|
json & | ref () |
| Access the JSON node for modification.
|
|
const std::shared_ptr< json > & | root () const |
| Returns the root.
|
|
| Base (const std::shared_ptr< json > &root, json_pointer pointer) |
| Wrap a Base instance around a specific JSON reference using a json_pointer.
|
|
| Base (json &&jsonRef, Base &parent, const std::string_view &key) |
| Construct a Base reference as a child inside a parent node.
|
|
template<typename T > |
T | getChild (const std::string_view &key) const |
| Retrieves and validates a required child node.
|
|
template<typename T > |
T | setChild (const std::string_view &key, const T &value) |
| Sets a child node.
|
|
template<typename T > |
std::optional< T > | getOptionalChild (const std::string_view &key) const |
| Retrieves an optional child node.
|
|
template<typename T>
class mnx::Dictionary< T >
Represents an MNX dictionary, where each key is a user-defined string.