19#ifndef CPPREALM_BRIDGE_MIXED_HPP
20#define CPPREALM_BRIDGE_MIXED_HPP
25#include <cpprealm/internal/bridge/property.hpp>
26#include <cpprealm/internal/bridge/binary.hpp>
27#include <cpprealm/internal/bridge/uuid.hpp>
28#include <cpprealm/internal/bridge/timestamp.hpp>
29#include <cpprealm/internal/bridge/obj_key.hpp>
30#include <cpprealm/internal/bridge/object_id.hpp>
31#include <cpprealm/internal/bridge/decimal128.hpp>
36 using mixed = std::variant<
43 std::chrono::time_point<std::chrono::system_clock>,
49namespace realm::internal::bridge {
50 enum class data_type {
77 explicit mixed(
const std::string&);
78 mixed(
const std::monostate&);
80 mixed(
const int64_t&);
92 mixed(
const std::optional<T>& o);
93 operator std::string()
const;
94 operator int64_t()
const;
95 operator double()
const;
96 operator bool()
const;
105 explicit operator Mixed()
const;
107 [[nodiscard]] data_type type()
const noexcept;
108 [[nodiscard]]
bool is_null()
const noexcept;
110 std::string m_owned_string;
112#ifdef CPPREALM_HAVE_GENERATED_BRIDGE_TYPES
113 storage::Mixed m_mixed[1];
115 std::shared_ptr<Mixed> m_mixed;
117 friend bool operator ==(
const mixed&,
const mixed&);
118 friend bool operator !=(
const mixed&,
const mixed&);
119 friend bool operator >(
const mixed&,
const mixed&);
120 friend bool operator <(
const mixed&,
const mixed&);
121 friend bool operator >=(
const mixed&,
const mixed&);
122 friend bool operator <=(
const mixed&,
const mixed&);
Definition: binary.hpp:30
Definition: decimal128.hpp:30
Definition: obj_key.hpp:33
Definition: obj_key.hpp:53
Definition: object_id.hpp:31
Definition: timestamp.hpp:30