1#if PROTOCOL_VERSION > 766
9 template<
typename T,
typename U>
19 const std::optional<typename Internal::SerializedType<T>::storage_type>&
GetLeft()
const
24 const std::optional<typename Internal::SerializedType<U>::storage_type>&
GetRight()
const
43 if (
right.has_value())
53 const bool is_left = ReadData<bool>(iter, length);
56 left = ReadData<T>(iter, length);
62 right = ReadData<U>(iter, length);
68 WriteData<bool>(
left.has_value(), container);
71 WriteData<T>(
left.value(), container);
75 WriteData<U>(
right.value(), container);
85 output[
"left"] =
left.value();
87 else if (
right.has_value())
89 output[
"right"] =
right.value();
96 std::optional<typename Internal::SerializedType<T>::storage_type>
left;
97 std::optional<typename Internal::SerializedType<U>::storage_type>
right;
std::optional< typename Internal::SerializedType< U >::storage_type > right
const std::optional< typename Internal::SerializedType< U >::storage_type > & GetRight() const
std::optional< typename Internal::SerializedType< T >::storage_type > left
auto & SetLeft(const std::optional< typename Internal::SerializedType< T >::storage_type > &left_)
virtual void WriteImpl(WriteContainer &container) const override
const std::optional< typename Internal::SerializedType< T >::storage_type > & GetLeft() const
virtual Json::Value SerializeImpl() const override
auto & SetRight(const std::optional< typename Internal::SerializedType< U >::storage_type > &right_)
virtual void ReadImpl(ReadIterator &iter, size_t &length) override
Main class, basically a JsonVariant with extra utility functions it doesn't inherit JsonVariant direc...
std::vector< unsigned char > WriteContainer
std::vector< unsigned char >::const_iterator ReadIterator