libdonut  2.3.2
Application framework for cross-platform game development in C++20
Classes | Public Types | Public Member Functions | Friends | List of all members
donut::json::Object Class Reference

JSON object type whose API mimics that of std::multimap<String, Value>. More...

#include <donut/json.hpp>

Public Types

using key_type = String
 
using mapped_type = Value
 
using value_type = std::pair< String, Value >
 
using size_type = typename std::vector< value_type >::size_type
 
using difference_type = typename std::vector< value_type >::difference_type
 
using reference = typename std::vector< value_type >::reference
 
using const_reference = typename std::vector< value_type >::const_reference
 
using pointer = typename std::vector< value_type >::pointer
 
using const_pointer = typename std::vector< value_type >::const_pointer
 
using iterator = typename std::vector< value_type >::iterator
 
using const_iterator = typename std::vector< value_type >::const_iterator
 
using reverse_iterator = typename std::vector< value_type >::reverse_iterator
 
using const_reverse_iterator = typename std::vector< value_type >::const_reverse_iterator
 

Public Member Functions

 Object () noexcept
 
 ~Object ()
 
template<typename InputIt >
 Object (InputIt first, InputIt last)
 
 Object (std::initializer_list< value_type > ilist)
 
 Object (const Object &other)
 
 Object (Object &&other) noexcept
 
Objectoperator= (const Object &other)
 
Objectoperator= (Object &&other) noexcept
 
Objectoperator= (std::initializer_list< value_type > ilist)
 
Valueat (std::string_view name)
 
const Valueat (std::string_view name) const
 
Valueoperator[] (const String &k)
 
Valueoperator[] (String &&k)
 
iterator begin () noexcept
 
const_iterator begin () const noexcept
 
const_iterator cbegin () const noexcept
 
iterator end () noexcept
 
const_iterator end () const noexcept
 
const_iterator cend () const noexcept
 
reverse_iterator rbegin () noexcept
 
const_reverse_iterator rbegin () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
reverse_iterator rend () noexcept
 
const_reverse_iterator rend () const noexcept
 
const_reverse_iterator crend () const noexcept
 
bool empty () const noexcept
 
size_type size () const noexcept
 
size_type max_size () const noexcept
 
void clear () noexcept
 
template<typename P >
std::pair< iterator, bool > insert (P &&value)
 
template<typename P >
iterator insert (const_iterator pos, P &&value)
 
template<typename InputIt >
void insert (InputIt first, InputIt last)
 
void insert (std::initializer_list< value_type > ilist)
 
template<typename... Args>
std::pair< iterator, bool > emplace (Args &&... args)
 
template<typename... Args>
iterator emplace_hint (const_iterator hint, Args &&... args)
 
template<typename... Args>
std::pair< iterator, bool > try_emplace (const String &k, Args &&... args)
 
template<typename... Args>
std::pair< iterator, bool > try_emplace (String &&k, Args &&... args)
 
template<typename... Args>
iterator try_emplace (const_iterator, const String &k, Args &&... args)
 
template<typename... Args>
iterator try_emplace (const_iterator, String &&k, Args &&... args)
 
iterator erase (const_iterator pos)
 
size_type erase (std::string_view name)
 
void swap (Object &other) noexcept
 
size_type count (std::string_view name) const noexcept
 
bool contains (std::string_view name) const noexcept
 
iterator find (std::string_view name) noexcept
 
const_iterator find (std::string_view name) const noexcept
 
std::pair< iterator, iteratorequal_range (std::string_view name) noexcept
 
std::pair< const_iterator, const_iteratorequal_range (std::string_view name) const noexcept
 
iterator lower_bound (std::string_view name) noexcept
 
const_iterator lower_bound (std::string_view name) const noexcept
 
iterator upper_bound (std::string_view name) noexcept
 
const_iterator upper_bound (std::string_view name) const noexcept
 
bool operator== (const Object &other) const noexcept
 
std::partial_ordering operator<=> (const Object &other) const noexcept
 

Friends

void swap (Object &a, Object &b) noexcept
 
template<typename Predicate >
size_type erase_if (Object &container, Predicate predicate)
 

Detailed Description

JSON object type whose API mimics that of std::multimap<String, Value>.

Member Typedef Documentation

◆ key_type

◆ mapped_type

◆ value_type

◆ size_type

using donut::json::Object::size_type = typename std::vector<value_type>::size_type

◆ difference_type

◆ reference

using donut::json::Object::reference = typename std::vector<value_type>::reference

◆ const_reference

◆ pointer

using donut::json::Object::pointer = typename std::vector<value_type>::pointer

◆ const_pointer

◆ iterator

using donut::json::Object::iterator = typename std::vector<value_type>::iterator

◆ const_iterator

◆ reverse_iterator

◆ const_reverse_iterator

Constructor & Destructor Documentation

◆ Object() [1/5]

donut::json::Object::Object ( )
inlinedefaultnoexcept

◆ ~Object()

donut::json::Object::~Object ( )
inlinedefault

◆ Object() [2/5]

template<typename InputIt >
donut::json::Object::Object ( InputIt  first,
InputIt  last 
)
inline

◆ Object() [3/5]

donut::json::Object::Object ( std::initializer_list< value_type ilist)
inline

◆ Object() [4/5]

donut::json::Object::Object ( const Object other)
inlinedefault

◆ Object() [5/5]

donut::json::Object::Object ( Object &&  other)
inlinedefaultnoexcept

Member Function Documentation

◆ operator=() [1/3]

Object & donut::json::Object::operator= ( const Object other)
inlinedefault

◆ operator=() [2/3]

Object & donut::json::Object::operator= ( Object &&  other)
inlinedefaultnoexcept

◆ operator=() [3/3]

Object & donut::json::Object::operator= ( std::initializer_list< value_type ilist)
inline

◆ at() [1/2]

Value & donut::json::Object::at ( std::string_view  name)
inline

◆ at() [2/2]

const Value & donut::json::Object::at ( std::string_view  name) const
inline

◆ operator[]() [1/2]

Value & donut::json::Object::operator[] ( const String k)
inline

◆ operator[]() [2/2]

Value & donut::json::Object::operator[] ( String &&  k)
inline

◆ begin() [1/2]

Object::iterator donut::json::Object::begin ( )
inlinenoexcept

◆ begin() [2/2]

Object::const_iterator donut::json::Object::begin ( ) const
inlinenoexcept

◆ cbegin()

Object::const_iterator donut::json::Object::cbegin ( ) const
inlinenoexcept

◆ end() [1/2]

Object::iterator donut::json::Object::end ( )
inlinenoexcept

◆ end() [2/2]

Object::const_iterator donut::json::Object::end ( ) const
inlinenoexcept

◆ cend()

Object::const_iterator donut::json::Object::cend ( ) const
inlinenoexcept

◆ rbegin() [1/2]

Object::reverse_iterator donut::json::Object::rbegin ( )
inlinenoexcept

◆ rbegin() [2/2]

Object::const_reverse_iterator donut::json::Object::rbegin ( ) const
inlinenoexcept

◆ crbegin()

Object::const_reverse_iterator donut::json::Object::crbegin ( ) const
inlinenoexcept

◆ rend() [1/2]

Object::reverse_iterator donut::json::Object::rend ( )
inlinenoexcept

◆ rend() [2/2]

Object::const_reverse_iterator donut::json::Object::rend ( ) const
inlinenoexcept

◆ crend()

Object::const_reverse_iterator donut::json::Object::crend ( ) const
inlinenoexcept

◆ empty()

bool donut::json::Object::empty ( ) const
inlinenoexcept

◆ size()

Object::size_type donut::json::Object::size ( ) const
inlinenoexcept

◆ max_size()

Object::size_type donut::json::Object::max_size ( ) const
inlinenoexcept

◆ clear()

void donut::json::Object::clear ( )
inlinenoexcept

◆ insert() [1/4]

template<typename P >
std::pair< Object::iterator, bool > donut::json::Object::insert ( P &&  value)
inline

◆ insert() [2/4]

template<typename P >
Object::iterator donut::json::Object::insert ( const_iterator  pos,
P &&  value 
)
inline

◆ insert() [3/4]

template<typename InputIt >
void donut::json::Object::insert ( InputIt  first,
InputIt  last 
)
inline

◆ insert() [4/4]

void donut::json::Object::insert ( std::initializer_list< value_type ilist)

◆ emplace()

template<typename... Args>
std::pair< Object::iterator, bool > donut::json::Object::emplace ( Args &&...  args)
inline

◆ emplace_hint()

template<typename... Args>
Object::iterator donut::json::Object::emplace_hint ( const_iterator  hint,
Args &&...  args 
)
inline

◆ try_emplace() [1/4]

template<typename... Args>
std::pair< Object::iterator, bool > donut::json::Object::try_emplace ( const String k,
Args &&...  args 
)
inline

◆ try_emplace() [2/4]

template<typename... Args>
std::pair< Object::iterator, bool > donut::json::Object::try_emplace ( String &&  k,
Args &&...  args 
)
inline

◆ try_emplace() [3/4]

template<typename... Args>
Object::iterator donut::json::Object::try_emplace ( const_iterator  ,
const String k,
Args &&...  args 
)
inline

◆ try_emplace() [4/4]

template<typename... Args>
Object::iterator donut::json::Object::try_emplace ( const_iterator  ,
String &&  k,
Args &&...  args 
)
inline

◆ erase() [1/2]

Object::iterator donut::json::Object::erase ( const_iterator  pos)
inline

◆ erase() [2/2]

Object::size_type donut::json::Object::erase ( std::string_view  name)
inline

◆ swap()

void donut::json::Object::swap ( Object other)
inlinenoexcept

◆ count()

Object::size_type donut::json::Object::count ( std::string_view  name) const
inlinenoexcept

◆ contains()

bool donut::json::Object::contains ( std::string_view  name) const
inlinenoexcept

◆ find() [1/2]

Object::iterator donut::json::Object::find ( std::string_view  name)
inlinenoexcept

◆ find() [2/2]

Object::const_iterator donut::json::Object::find ( std::string_view  name) const
inlinenoexcept

◆ equal_range() [1/2]

std::pair< Object::iterator, Object::iterator > donut::json::Object::equal_range ( std::string_view  name)
inlinenoexcept

◆ equal_range() [2/2]

std::pair< Object::const_iterator, Object::const_iterator > donut::json::Object::equal_range ( std::string_view  name) const
inlinenoexcept

◆ lower_bound() [1/2]

Object::iterator donut::json::Object::lower_bound ( std::string_view  name)
inlinenoexcept

◆ lower_bound() [2/2]

Object::const_iterator donut::json::Object::lower_bound ( std::string_view  name) const
inlinenoexcept

◆ upper_bound() [1/2]

Object::iterator donut::json::Object::upper_bound ( std::string_view  name)
inlinenoexcept

◆ upper_bound() [2/2]

Object::const_iterator donut::json::Object::upper_bound ( std::string_view  name) const
inlinenoexcept

◆ operator==()

bool donut::json::Object::operator== ( const Object other) const
inlinenoexcept

◆ operator<=>()

std::partial_ordering donut::json::Object::operator<=> ( const Object other) const
inlinenoexcept

Friends And Related Function Documentation

◆ swap

void swap ( Object a,
Object b 
)
friend

◆ erase_if

template<typename Predicate >
size_type erase_if ( Object container,
Predicate  predicate 
)
friend

The documentation for this class was generated from the following file: