Lines Matching refs:value
66 static decltype(auto) get(const type &value)
68 return value.*MemPtr;
71 static decltype(auto) get(type &value)
73 return value.*MemPtr;
85 static decltype(auto) get(const type &value)
87 return value.*MemPtr;
90 static decltype(auto) get(type &value)
92 return value.*MemPtr;
106 static decltype(auto) get(const type &value)
108 return value.*MemPtr;
111 static decltype(auto) get(type &value)
113 return value.*MemPtr;
187 constexpr bool HAS_SERIALIZE_PACKED_V = HasSerializePacked<T, V, F, W>::value;
200 constexpr bool HAS_PARSE_PACKED_V = HasParsePacked<T, V, F, R>::value;
213 static uint32_t MakeZigzagValue(int32_t value)
215 return (static_cast<uint32_t>(value) << 1) ^ static_cast<uint32_t>(value >> 31); //31:uint32_t val offset
218 static uint64_t MakeZigzagValue(int64_t value)
220 return (static_cast<uint64_t>(value) << 1) ^ static_cast<uint64_t>(value >> 63); //63:uint64_t val offset
223 static int32_t ReadZigzagValue(uint32_t value)
225 return static_cast<int32_t>((value >> 1) ^ (~(value & 1) + 1));
228 static int64_t ReadZigzagValue(uint64_t value)
230 return static_cast<int64_t>((value >> 1) ^ (~(value & 1) + 1));
275 static bool ReadByte(uint8_t &value, reader &in)
277 return in.Read(&value, 1) == 1;
280 static void WriteVarint(uint32_t value, Writer &out)
286 b[i] = value & 0b0111'1111;
287 value >>= bytesOffset;
288 if (value) {
297 static void WriteVarint(uint64_t value, Writer &out)
303 b[i] = value & 0b0111'1111;
304 value >>= bytesOffset;
305 if (value) {
315 static void WriteVarint(unsigned long value, Writer &out)
317 WriteVarint(static_cast<uint64_t>(value), out);
321 static bool ReadVarint(uint32_t &value, reader &in)
325 value = 0;
331 value |= static_cast<uint32_t>(x & 0b0111'1111) << bytesOffset * c;
340 static bool ReadVarint(uint64_t &value, reader &in)
344 value = 0;
350 value |= static_cast<uint64_t>(x & 0b0111'1111) << bytesOffset * c;
359 static bool ReadVarint(unsigned long &value, reader &in)
363 value = static_cast<unsigned long>(intermediateValue);
370 static void WriteFixed(uint32_t value, Writer &out)
373 out.Write(&value, sizeof(value));
379 static void WriteFixed(uint64_t value, Writer &out)
382 out.Write(&value, sizeof(value));
388 static void WriteFixed(double value, Writer &out)
390 WriteFixed(BitCast<uint64_t>(value), out);
393 static void WriteFixed(float value, Writer &out)
395 WriteFixed(BitCast<uint32_t>(value), out);
398 static void WriteVarint(int32_t value, Writer &out)
400 WriteVarint(BitCast<uint32_t>(value), out);
403 static void WriteVarint(int64_t value, Writer &out)
405 WriteVarint(BitCast<uint64_t>(value), out);
408 static void WriteSignedVarint(int32_t value, Writer &out)
410 WriteVarint(MakeZigzagValue(value), out);
413 static void WriteSignedVarint(int64_t value, Writer &out)
415 WriteVarint(MakeZigzagValue(value), out);
418 static void WriteSignedFixed(int32_t value, Writer &out)
420 WriteFixed(static_cast<uint32_t>(value), out);
423 static void WriteSignedFixed(int64_t value, Writer &out)
425 WriteFixed(static_cast<uint64_t>(value), out);
433 static bool ReadFixed(uint32_t &value, reader &in)
436 return in.Read(&value, sizeof(value)) == sizeof(value);
442 static bool ReadFixed(uint64_t &value, reader &in)
445 return in.Read(&value, sizeof(value)) == sizeof(value);
451 static bool ReadFixed(double &value, reader &in)
455 value = BitCast<double>(intermediateValue);
461 static bool ReadFixed(float &value, reader &in)
465 value = BitCast<float>(intermediateValue);
471 static bool ReadVarint(int32_t &value, reader &in)
475 value = BitCast<int32_t>(intermediateValue);
481 static bool ReadVarint(int64_t &value, reader &in)
485 value = BitCast<int64_t>(intermediateValue);
491 static bool ReadSignedVarint(int32_t &value, reader &in)
495 value = ReadZigzagValue(intermediateValue);
501 static bool ReadSignedVarint(int64_t &value, reader &in)
505 value = ReadZigzagValue(intermediateValue);
511 static bool ReadSignedFixed(int32_t &value, reader &in)
515 value = static_cast<int64_t>(intermediateValue);
521 static bool ReadSignedFixed(int64_t &value, reader &in)
525 value = static_cast<int64_t>(intermediateValue);
532 void WriteField(const T &value,
537 OneOf::TAG, OneOf::get(value), FlagsType<OneOf::FLAGS>(), out);
541 void WriteField(const T &value,
546 Map::TAG, Map::get(value), FlagsType<Map::KEY_FLAGS>(), FlagsType<Map::VALUE_FLAGS>(), out);
550 void WriteField(const T &value, const SerialDetail::FieldImpl<Tag, MemPtrT, MemPtr, Flags> &, Writer &out)
554 Field::TAG, Field::get(value), FlagsType<Field::FLAGS>(), out);
558 void WriteMessage(const T &value, const SerialDetail::MessageImpl<Field...> &message, Writer &out)
560 message.Visit([&](const auto &field) { WriteField(value, field, out); });
588 void WriteMapKeyValue(const std::pair<const Key, Value> &value, Writer &out)
590 Serializer<Key>::Serialize(1, value.first, FlagsType<KeyFlags> {}, out, true);
591 Serializer<Value>::Serialize(2, value.second, FlagsType<ValueFlags> {}, out, true); // 2:tag value
595 void WriteMap(uint32_t tag, const T &value, Writer &out)
597 auto begin = std::begin(value);
598 auto end = std::end(value);
610 bool ReadMapKeyValue(std::pair<Key, Value> &value, reader &in)
613 Field<2, &std::pair<Key, Value>::second, ValueFlags>("value"));
614 return ReadMessage(value, pairAsMessage, in);
618 bool ReadMap(WireType wireType, T &value, reader &in)
631 value.insert(std::move(item));
652 ValueType value;
653 if (!Serializer<ValueType>::ParsePacked(value, FlagsType<Flags>(), limitedIn)) {
656 output_it = value;
663 ValueType value;
664 if (Serializer<ValueType>::Parse(wireType, value, FlagsType<Flags>(), in)) {
665 output_it = value;
674 void ReadField(T &value, uint32_t tag, WireType wireType,
682 wireType, OneOf::get(value), FlagsType<OneOf::FLAGS>(), in);
686 void ReadField(T &value, uint32_t tag, WireType wireType,
694 wireType, Map::get(value), FlagsType<Map::KEY_FLAGS>(), FlagsType<Map::VALUE_FLAGS>(), in);
698 void ReadField(T &value, uint32_t tag, WireType wireType,
705 Serializer<typename Field::MemberType>::Parse(wireType, Field::get(value), FlagsType<Field::FLAGS>(), in);
708 template<class T, class... Field> bool ReadMessage(T &value, const MessageImpl<Field...> &message, reader &in)
715 message.Visit([&](const auto &field) { ReadField(value, tag, wireType, field, in); });
723 static void Serialize(uint32_t tag, const T &value, FlagsType<>, Writer &out, bool force = false)
726 SerialDetail::WriteMessage(value, MessageType<T>(), sizeCollector);
732 SerialDetail::WriteMessage(value, MessageType<T>(), out);
735 static bool Parse(WireType wireType, T &value, FlagsType<>, reader &in)
743 return SerialDetail::ReadMessage(value, MessageType<T>(), limitedIn);
750 static void Serialize(uint32_t tag, int32_t value, FlagsType<>, Writer &out, bool force = false)
753 SerialDetail::WriteVarint(value, out);
756 static void Serialize(uint32_t tag, int32_t value, FlagsType<flags::s>, Writer &out, bool force = false)
759 SerialDetail::WriteSignedVarint(value, out);
763 uint32_t tag, int32_t value, FlagsType<flags::s | flags::f>, Writer &out, bool force = false)
766 SerialDetail::WriteSignedFixed(value, out);
769 static void SerializePacked(int32_t value, FlagsType<>, Writer &out)
771 SerialDetail::WriteVarint(value, out);
774 static void SerializePacked(int32_t value, FlagsType<flags::s>, Writer &out)
776 SerialDetail::WriteSignedVarint(value, out);
779 static void SerializePacked(int32_t value, FlagsType<flags::s | flags::f>, Writer &out)
781 SerialDetail::WriteSignedFixed(value, out);
784 static bool Parse(WireType wire_type, int32_t &value, FlagsType<>, reader &in)
788 return SerialDetail::ReadVarint(value, in);
791 static bool Parse(WireType wire_type, int32_t &value, FlagsType<flags::s>, reader &in)
795 return SerialDetail::ReadSignedVarint(value, in);
798 static bool Parse(WireType wire_type, int32_t &value, FlagsType<flags::s | flags::f>, reader &in)
802 return SerialDetail::ReadSignedFixed(value, in);
805 static bool ParsePacked(int32_t &value, FlagsType<>, reader &in)
807 return SerialDetail::ReadVarint(value, in);
810 static bool ParsePacked(int32_t &value, FlagsType<flags::s>, reader &in)
812 return SerialDetail::ReadSignedVarint(value, in);
815 static bool ParsePacked(int32_t &value, FlagsType<flags::s | flags::f>, reader &in)
817 return SerialDetail::ReadSignedFixed(value, in);
822 static void Serialize(uint32_t tag, uint32_t value, FlagsType<>, Writer &out, bool force = false)
825 SerialDetail::WriteVarint(value, out);
828 static void Serialize(uint32_t tag, uint32_t value, FlagsType<flags::f>, Writer &out, bool force = false)
831 SerialDetail::WriteFixed(value, out);
834 static void SerializePacked(uint32_t value, FlagsType<>, Writer &out)
836 SerialDetail::WriteVarint(value, out);
839 static void SerializePacked(uint32_t value, FlagsType<flags::f>, Writer &out)
841 SerialDetail::WriteFixed(value, out);
844 static bool Parse(WireType wire_type, uint32_t &value, FlagsType<>, reader &in)
848 return SerialDetail::ReadVarint(value, in);
851 static bool Parse(WireType wire_type, uint32_t &value, FlagsType<flags::f>, reader &in)
855 return SerialDetail::ReadFixed(value, in);
858 static bool ParsePacked(uint32_t &value, FlagsType<>, reader &in)
860 return SerialDetail::ReadVarint(value, in);
863 static bool ParsePacked(uint32_t &value, FlagsType<flags::f>, reader &in)
865 return SerialDetail::ReadFixed(value, in);
870 static void Serialize(uint32_t tag, int64_t value, FlagsType<>, Writer &out, bool force = false)
873 SerialDetail::WriteVarint(value, out);
876 static void Serialize(uint32_t tag, int64_t value, FlagsType<flags::s>, Writer &out, bool force = false)
879 SerialDetail::WriteSignedVarint(value, out);
883 uint32_t tag, int64_t value, FlagsType<flags::s | flags::f>, Writer &out, bool force = false)
886 SerialDetail::WriteSignedFixed(value, out);
889 static void SerializePacked(int64_t value, FlagsType<>, Writer &out)
891 SerialDetail::WriteVarint(value, out);
894 static void SerializePacked(int64_t value, FlagsType<flags::s>, Writer &out)
896 SerialDetail::WriteSignedVarint(value, out);
899 static void SerializePacked(int64_t value, FlagsType<flags::s | flags::f>, Writer &out)
901 SerialDetail::WriteSignedFixed(value, out);
904 static bool Parse(WireType wire_type, int64_t &value, FlagsType<>, reader &in)
908 return SerialDetail::ReadVarint(value, in);
911 static bool Parse(WireType wire_type, int64_t &value, FlagsType<flags::s>, reader &in)
915 return SerialDetail::ReadSignedVarint(value, in);
918 static bool Parse(WireType wire_type, int64_t &value, FlagsType<flags::s | flags::f>, reader &in)
922 return SerialDetail::ReadSignedFixed(value, in);
925 static bool ParsePacked(int64_t &value, FlagsType<>, reader &in)
927 return SerialDetail::ReadVarint(value, in);
930 static bool ParsePacked(int64_t &value, FlagsType<flags::s>, reader &in)
932 return SerialDetail::ReadSignedVarint(value, in);
935 static bool ParsePacked(int64_t &value, FlagsType<flags::s | flags::f>, reader &in)
937 return SerialDetail::ReadSignedFixed(value, in);
942 static void Serialize(uint32_t tag, uint64_t value, FlagsType<>, Writer &out, bool force = false)
945 SerialDetail::WriteVarint(value, out);
948 static void Serialize(uint32_t tag, uint64_t value, FlagsType<flags::f>, Writer &out, bool force = false)
950 if (!force && value == UINT64_C(0))
954 SerialDetail::WriteFixed(value, out);
957 static void SerializePacked(uint64_t value, FlagsType<>, Writer &out)
959 SerialDetail::WriteVarint(value, out);
962 static void SerializePacked(uint64_t value, FlagsType<flags::f>, Writer &out)
964 SerialDetail::WriteFixed(value, out);
967 static bool Parse(WireType wire_type, uint64_t &value, FlagsType<>, reader &in)
971 return SerialDetail::ReadVarint(value, in);
974 static bool Parse(WireType wire_type, uint64_t &value, FlagsType<flags::f>, reader &in)
978 return SerialDetail::ReadFixed(value, in);
981 static bool ParsePacked(uint64_t &value, FlagsType<>, reader &in)
983 return SerialDetail::ReadVarint(value, in);
986 static bool ParsePacked(uint64_t &value, FlagsType<flags::f>, reader &in)
988 return SerialDetail::ReadFixed(value, in);
993 static void Serialize(uint32_t tag, double value, FlagsType<>, Writer &out, bool force = false)
995 if (!force && std::fpclassify(value) == FP_ZERO) {
999 SerialDetail::WriteFixed(value, out);
1002 static void SerializePacked(double value, FlagsType<>, Writer &out)
1004 SerialDetail::WriteFixed(value, out);
1007 static bool Parse(WireType wire_type, double &value, FlagsType<>, reader &in)
1012 return SerialDetail::ReadFixed(value, in);
1015 static bool ParsePacked(double &value, FlagsType<>, reader &in)
1017 return SerialDetail::ReadFixed(value, in);
1022 static void Serialize(uint32_t tag, float value, FlagsType<>, Writer &out, bool force = false)
1024 if (!force && std::fpclassify(value) == FP_ZERO) {
1028 SerialDetail::WriteFixed(value, out);
1031 static void SerializePacked(float value, FlagsType<>, Writer &out)
1033 SerialDetail::WriteFixed(value, out);
1036 static bool Parse(WireType wire_type, float &value, FlagsType<>, reader &in)
1041 return SerialDetail::ReadFixed(value, in);
1044 static bool ParsePacked(float &value, FlagsType<>, reader &in)
1046 return SerialDetail::ReadFixed(value, in);
1051 static void Serialize(uint32_t tag, bool value, FlagsType<>, Writer &out, bool force = false)
1053 Serializer<uint32_t>::Serialize(tag, value ? 1 : 0, FlagsType(), out, force);
1056 static void SerializePacked(bool value, FlagsType<>, Writer &out)
1058 Serializer<uint32_t>::SerializePacked(value ? 1 : 0, FlagsType(), out);
1061 static bool Parse(WireType wire_type, bool &value, FlagsType<>, reader &in)
1065 value = static_cast<bool>(intermedaite_value);
1071 static bool ParsePacked(bool &value, FlagsType<>, reader &in)
1075 value = static_cast<bool>(intermedaite_value);
1085 static void Serialize(uint32_t tag, T value, FlagsType<>, Writer &out, bool force = false)
1087 Serializer<U>::Serialize(tag, static_cast<U>(value), FlagsType<>(), out, force);
1090 static void SerializePacked(T value, FlagsType<>, Writer &out)
1092 Serializer<U>::SerializePacked(static_cast<U>(value), FlagsType<>(), out);
1095 static bool Parse(WireType wire_type, T &value, FlagsType<>, reader &in)
1099 value = static_cast<T>(intermedaite_value);
1105 static bool ParsePacked(T &value, FlagsType<>, reader &in)
1109 value = static_cast<T>(intermedaite_value);
1117 static void Serialize(uint32_t tag, const std::string &value, FlagsType<>, Writer &out, bool force = false)
1120 SerialDetail::WriteVarint(value.size(), out);
1121 out.Write(value.data(), value.size());
1124 static bool Parse(WireType wire_type, std::string &value, FlagsType<>, reader &in)
1131 value.resize(size);
1132 if (in.Read(value.data(), size) == size) {
1142 static void Serialize(uint32_t tag, const std::vector<T> &value, FlagsType<Flags>, Writer &out)
1144 SerialDetail::WriteRepeated<Flags, T>(tag, value.begin(), value.end(), out);
1148 static bool Parse(WireType wire_type, std::vector<T> &value, FlagsType<Flags>, reader &in)
1150 return SerialDetail::ReadRepeated<Flags, T>(wire_type, std::back_inserter(value), in);
1156 static void Serialize(uint32_t tag, const std::optional<T> &value, FlagsType<Flags>, Writer &out)
1158 if (!value.has_value()) {
1161 Serializer<T>::Serialize(tag, *value, FlagsType<Flags>(), out);
1165 static bool Parse(WireType wire_type, std::optional<T> &value, FlagsType<Flags>, reader &in)
1167 return Serializer<T>::Parse(wire_type, value.emplace(), FlagsType<Flags>(), in);
1173 static void SerializeOneof(uint32_t tag, const std::variant<T...> &value, FlagsType<Flags>, Writer &out)
1175 if (value.index() != Index)
1179 tag, std::get<Index>(value), FlagsType<Flags>(), out);
1183 static bool ParseOneof(WireType wire_type, std::variant<T...> &value, FlagsType<Flags>, reader &in)
1186 wire_type, value.template emplace<Index>(), FlagsType<Flags>(), in);
1193 uint32_t tag, const std::map<Key, Value> &value, FlagsType<KeyFlags>, FlagsType<ValueFlags>, Writer &out)
1195 SerialDetail::WriteMap<KeyFlags, ValueFlags>(tag, value, out);
1200 WireType wire_type, std::map<Key, Value> &value, FlagsType<KeyFlags>, FlagsType<ValueFlags>, reader &in)
1202 return SerialDetail::ReadMap<KeyFlags, ValueFlags>(wire_type, value, in);
1246 static void Serialize(uint32_t tag, uint8_t value, FlagsType<>, Writer &out, bool force = false)
1248 Serializer<uint32_t>::Serialize(tag, value, FlagsType(), out, force);
1251 static void SerializePacked(uint8_t value, FlagsType<>, Writer &out)
1253 Serializer<uint32_t>::SerializePacked(value, FlagsType(), out);
1256 static bool Parse(WireType wire_type, uint8_t &value, FlagsType<>, reader &in)
1260 value = static_cast<uint8_t>(intermedaite_value);
1266 static bool ParsePacked(uint8_t &value, FlagsType<>, reader &in)
1270 value = static_cast<uint8_t>(intermedaite_value);
1277 static void Serialize(uint32_t tag, uint16_t value, FlagsType<>, Writer &out, bool force = false)
1279 Serializer<uint32_t>::Serialize(tag, value, FlagsType(), out, force);
1282 static void SerializePacked(uint16_t value, FlagsType<>, Writer &out)
1284 Serializer<uint32_t>::SerializePacked(value, FlagsType(), out);
1287 static bool Parse(WireType wire_type, uint16_t &value, FlagsType<>, reader &in)
1291 value = static_cast<uint16_t>(intermedaite_value);
1297 static bool ParsePacked(uint16_t &value, FlagsType<>, reader &in)
1301 value = static_cast<uint16_t>(intermedaite_value);
1309 template<class T> std::string SerializeToString(const T &value)
1313 SerialDetail::WriteMessage(value, MessageType<T>(), stringOut);
1317 template<class T> bool ParseFromString(T &value, const std::string &in)
1320 return SerialDetail::ReadMessage(value, MessageType<T>(), stringIn);