|
|
| datum_impl (datum_impl const &other) noexcept |
| |
|
datum_impl & | operator= (datum_impl const &other) noexcept |
| |
|
| datum_impl (datum_impl &&other) noexcept |
| |
|
datum_impl & | operator= (datum_impl &&other) noexcept |
| |
|
| datum_impl (datum_impl::undefined) noexcept |
| |
|
| datum_impl (datum_impl::null) noexcept |
| |
|
| datum_impl (datum_impl::_break) noexcept |
| |
|
| datum_impl (datum_impl::_continue) noexcept |
| |
|
| datum_impl (double value) noexcept |
| |
|
| datum_impl (float value) noexcept |
| |
|
| datum_impl (decimal value) noexcept |
| |
|
| datum_impl (std::chrono::year_month_day const &ymd) noexcept |
| |
|
| datum_impl (unsigned long long value) noexcept |
| |
|
| datum_impl (unsigned long value) noexcept |
| |
|
| datum_impl (unsigned int value) noexcept |
| |
|
| datum_impl (unsigned short value) noexcept |
| |
|
| datum_impl (unsigned char value) noexcept |
| |
|
| datum_impl (signed long long value) noexcept |
| |
|
| datum_impl (signed long value) noexcept |
| |
|
| datum_impl (signed int value) noexcept |
| |
|
| datum_impl (signed short value) noexcept |
| |
|
| datum_impl (signed char value) noexcept |
| |
|
| datum_impl (bool value) noexcept |
| |
|
| datum_impl (char value) noexcept |
| |
|
| datum_impl (std::string_view value) noexcept |
| |
|
| datum_impl (std::string const &value) noexcept |
| |
|
| datum_impl (char const *value) noexcept |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| | datum_impl (URL const &value) noexcept |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| | datum_impl (URL &&value) noexcept |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| | datum_impl (datum_impl::vector const &value) noexcept |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| | datum_impl (datum_impl::vector &&value) noexcept |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| | datum_impl (datum_impl::map const &value) noexcept |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| | datum_impl (datum_impl::map &&value) noexcept |
| |
|
datum_impl & | operator= (datum_impl::undefined rhs) noexcept |
| |
|
datum_impl & | operator= (datum_impl::null rhs) noexcept |
| |
|
datum_impl & | operator= (datum_impl::_break rhs) noexcept |
| |
|
datum_impl & | operator= (datum_impl::_continue rhs) noexcept |
| |
|
datum_impl & | operator= (double rhs) noexcept |
| |
|
datum_impl & | operator= (float rhs) noexcept |
| |
|
datum_impl & | operator= (decimal rhs) noexcept |
| |
|
datum_impl & | operator= (std::chrono::year_month_day const &ymd) noexcept |
| |
|
datum_impl & | operator= (unsigned long long rhs) |
| |
|
datum_impl & | operator= (unsigned long rhs) noexcept |
| |
|
datum_impl & | operator= (unsigned int rhs) noexcept |
| |
|
datum_impl & | operator= (unsigned short rhs) noexcept |
| |
|
datum_impl & | operator= (unsigned char rhs) noexcept |
| |
|
datum_impl & | operator= (signed long long rhs) noexcept |
| |
|
datum_impl & | operator= (signed long rhs) noexcept |
| |
|
datum_impl & | operator= (signed int rhs) noexcept |
| |
|
datum_impl & | operator= (signed short rhs) noexcept |
| |
|
datum_impl & | operator= (signed char rhs) noexcept |
| |
|
datum_impl & | operator= (bool rhs) noexcept |
| |
|
datum_impl & | operator= (char rhs) noexcept |
| |
|
datum_impl & | operator= (std::string_view rhs) |
| |
|
datum_impl & | operator= (std::string const &rhs) |
| |
|
datum_impl & | operator= (char const *rhs) |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| datum_impl & | operator= (URL const &rhs) noexcept |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| datum_impl & | operator= (URL &&rhs) noexcept |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| datum_impl & | operator= (datum_impl::vector const &rhs) |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| datum_impl & | operator= (datum_impl::vector &&rhs) |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| datum_impl & | operator= (datum_impl::map const &rhs) |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| datum_impl & | operator= (datum_impl::map &&rhs) |
| |
|
| operator double () const |
| |
|
| operator float () const |
| |
|
| operator decimal () const |
| |
|
| operator std::chrono::year_month_day () const |
| |
|
| operator signed long long () const |
| |
|
| operator signed long () const |
| |
|
| operator signed int () const |
| |
|
| operator signed short () const |
| |
|
| operator signed char () const |
| |
|
| operator unsigned long long () const |
| |
|
| operator unsigned long () const |
| |
|
| operator unsigned int () const |
| |
|
| operator unsigned short () const |
| |
|
| operator unsigned char () const |
| |
|
| operator bool () const noexcept |
| |
|
| operator char () const |
| |
|
| operator bstring () const |
| |
|
| operator std::string () const noexcept |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| | operator URL () const |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| | operator datum_impl::vector () const |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| | operator datum_impl::map () const |
| |
| template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| datum_impl & | operator[] (datum_impl const &rhs) |
| | Index into a datum::map or datum::vector.
|
| |
| template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| datum_impl | operator[] (datum_impl const &rhs) const |
| | Index into a datum::map or datum::vector.
|
| |
| template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| bool | contains (datum_impl const &rhs) const noexcept |
| | Check if an index is contained in a datum.
|
| |
| template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| datum_impl & | append () |
| | Append and return a reference to a datum holding undefined to this datum.
|
| |
|
template<typename... Args> |
| void | emplace_back (Args &&... args) |
| |
|
template<typename Arg > |
| void | push_back (Arg &&arg) |
| |
|
void | pop_back () |
| |
|
datum_impl | year () const |
| |
|
datum_impl | quarter () const |
| |
|
datum_impl | month () const |
| |
|
datum_impl | day () const |
| |
|
datum_impl const & | front () const |
| |
|
datum_impl & | front () |
| |
|
datum_impl const & | back () const |
| |
|
datum_impl & | back () |
| |
|
std::string | repr () const noexcept |
| |
| int | type_order () const noexcept |
| |
|
datum_impl & | get_by_path (std::vector< std::string > const &key) |
| |
|
datum_impl | get_by_path (std::vector< std::string > const &key) const |
| |
|
bool | is_integer () const noexcept |
| |
|
bool | is_decimal () const noexcept |
| |
|
bool | is_ymd () const noexcept |
| |
|
bool | is_float () const noexcept |
| |
|
bool | is_string () const noexcept |
| |
|
bool | is_bytes () const noexcept |
| |
|
bool | is_bool () const noexcept |
| |
|
bool | is_null () const noexcept |
| |
|
bool | is_undefined () const noexcept |
| |
|
bool | is_break () const noexcept |
| |
|
bool | is_continue () const noexcept |
| |
|
bool | is_url () const noexcept |
| |
|
bool | is_vector () const noexcept |
| |
|
bool | is_map () const noexcept |
| |
|
bool | is_numeric () const noexcept |
| |
|
datum_type_t | type () const noexcept |
| |
|
char const * | type_name () const noexcept |
| |
|
size_t | size () const |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| map::const_iterator | map_begin () const |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| map::const_iterator | map_end () const |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| vector::const_iterator | vector_begin () const |
| |
|
template<bool P = HasLargeObjects, std::enable_if_t< P, int > = 0> |
| vector::const_iterator | vector_end () const |
| |
|
size_t | hash () const noexcept |
| |
|
datum_impl & | operator++ () |
| |
|
datum_impl & | operator-- () |
| |
|
datum_impl | operator++ (int) |
| |
|
datum_impl | operator-- (int) |
| |
|
datum_impl & | operator+= (datum_impl const &rhs) |
| |
|
datum_impl & | operator-= (datum_impl const &rhs) |
| |
|
datum_impl & | operator*= (datum_impl const &rhs) |
| |
|
datum_impl & | operator/= (datum_impl const &rhs) |
| |
|
datum_impl & | operator%= (datum_impl const &rhs) |
| |
|
datum_impl & | operator<<= (datum_impl const &rhs) |
| |
|
datum_impl & | operator>>= (datum_impl const &rhs) |
| |
|
datum_impl & | operator&= (datum_impl const &rhs) |
| |
|
datum_impl & | operator|= (datum_impl const &rhs) |
| |
|
datum_impl & | operator^= (datum_impl const &rhs) |
| |
template<bool HasLargeObjects>
class tt::datum_impl< HasLargeObjects >
A fixed size (64 bits) class for a generic value type.
A datum can hold and do calculations with the following types:
- Floating point number (double, without NaN)
- Signed integer number (52 bits)
- Boolean
- Null
- Break
- Continue
- Undefined
- String
- Vector of datum
- Unordered map of datum:datum.
- YearMonthDay.
- Bytes.
Due to the recursive nature of the datum type (through vector and map) you can serialize your own types by adding conversion constructor and operator to and from the datum on your type.
- Parameters
-
| HasLargeObjects | true when the datum will manage memory for large objects |