Lines Matching refs:value
69 static decltype(auto) get(const type &value)
71 return value.*MemPtr;
74 static decltype(auto) get(type &value)
76 return value.*MemPtr;
88 static decltype(auto) get(const type &value)
90 return value.*MemPtr;
93 static decltype(auto) get(type &value)
95 return value.*MemPtr;
109 static decltype(auto) get(const type &value)
111 return value.*MemPtr;
114 static decltype(auto) get(type &value)
116 return value.*MemPtr;
190 constexpr bool HAS_SERIALIZE_PACKED_V = HasSerializePacked<T, V, F, W>::value;
203 constexpr bool HAS_PARSE_PACKED_V = HasParsePacked<T, V, F, R>::value;
216 static uint32_t MakeZigzagValue(int32_t value)
218 return (static_cast<uint32_t>(value) << 1) ^ static_cast<uint32_t>(value >> 31); //31:uint32_t val offset
221 static uint64_t MakeZigzagValue(int64_t value)
223 return (static_cast<uint64_t>(value) << 1) ^ static_cast<uint64_t>(value >> 63); // 63:uint32_t val offset
226 static int32_t ReadZigzagValue(uint32_t value)
228 return static_cast<int32_t>((value >> 1) ^ (~(value & 1) + 1));
231 static int64_t ReadZigzagValue(uint64_t value)
233 return static_cast<int64_t>((value >> 1) ^ (~(value & 1) + 1));
278 static bool ReadByte(uint8_t &value, Reader &in)
280 return in.Read(&value, 1) == 1;
283 static void WriteVarint(uint32_t value, Writer &out)
289 b[i] = value & 0b0111'1111;
290 value >>= bytesOffset;
291 if (value) {
300 static void WriteVarint(uint64_t value, Writer &out)
306 b[i] = value & 0b0111'1111;
307 value >>= bytesOffset;
308 if (value) {
318 static void WriteVarint(unsigned long value, Writer &out)
320 WriteVarint(static_cast<uint64_t>(value), out);
324 static bool ReadVarint(uint32_t &value, Reader &in)
326 value = 0;
334 value |= static_cast<uint32_t>(x & 0b0111'1111) << bytesOffset * c;
343 static bool ReadVarint(uint64_t &value, Reader &in)
345 value = 0;
353 value |= static_cast<uint64_t>(x & 0b0111'1111) << bytesOffset * c;
362 static bool ReadVarint(unsigned long &value, Reader &in)
366 value = static_cast<unsigned long>(intermediateValue);
373 static void WriteFixed(uint32_t value, Writer &out)
376 out.Write(&value, sizeof(value));
382 static void WriteFixed(uint64_t value, Writer &out)
385 out.Write(&value, sizeof(value));
391 static void WriteFixed(double value, Writer &out)
393 WriteFixed(BitCast<uint64_t>(value), out);
396 static void WriteFixed(float value, Writer &out)
398 WriteFixed(BitCast<uint32_t>(value), out);
401 static void WriteVarint(int32_t value, Writer &out)
403 WriteVarint(BitCast<uint32_t>(value), out);
406 static void WriteVarint(int64_t value, Writer &out)
408 WriteVarint(BitCast<uint64_t>(value), out);
411 static void WriteSignedVarint(int32_t value, Writer &out)
413 WriteVarint(MakeZigzagValue(value), out);
416 static void WriteSignedVarint(int64_t value, Writer &out)
418 WriteVarint(MakeZigzagValue(value), out);
421 static void WriteSignedFixed(int32_t value, Writer &out)
423 WriteFixed(static_cast<uint32_t>(value), out);
426 static void WriteSignedFixed(int64_t value, Writer &out)
428 WriteFixed(static_cast<uint64_t>(value), out);
436 static bool ReadFixed(uint32_t &value, Reader &in)
439 return in.Read(&value, sizeof(value)) == sizeof(value);
445 static bool ReadFixed(uint64_t &value, Reader &in)
448 return in.Read(&value, sizeof(value)) == sizeof(value);
454 static bool ReadFixed(double &value, Reader &in)
458 value = BitCast<double>(intermediateValue);
464 static bool ReadFixed(float &value, Reader &in)
468 value = BitCast<float>(intermediateValue);
474 static bool ReadVarint(int32_t &value, Reader &in)
478 value = BitCast<int32_t>(intermediateValue);
484 static bool ReadVarint(int64_t &value, Reader &in)
488 value = BitCast<int64_t>(intermediateValue);
494 static bool ReadSignedVarint(int32_t &value, Reader &in)
498 value = ReadZigzagValue(intermediateValue);
504 static bool ReadSignedVarint(int64_t &value, Reader &in)
508 value = ReadZigzagValue(intermediateValue);
514 static bool ReadSignedFixed(int32_t &value, Reader &in)
518 value = static_cast<int64_t>(intermediateValue);
524 static bool ReadSignedFixed(int64_t &value, Reader &in)
528 value = static_cast<int64_t>(intermediateValue);
535 void WriteField(const T &value,
540 OneOf::TAG, OneOf::get(value), FlagsType<OneOf::FLAGS>(), out);
544 void WriteField(const T &value,
549 Map::TAG, Map::get(value), FlagsType<Map::KEY_FLAGS>(), FlagsType<Map::VALUE_FLAGS>(), out);
553 void WriteField(const T &value, const SerialDetail::FieldImpl<Tag, MemPtrT, MemPtr, Flags> &, Writer &out)
557 Field::TAG, Field::get(value), FlagsType<Field::FLAGS>(), out);
561 void WriteMessage(const T &value, const SerialDetail::MessageImpl<Field...> &message, Writer &out)
563 message.Visit([&](const auto &field) { WriteField(value, field, out); });
591 void WriteMapKeyValue(const std::pair<const Key, Value> &value, Writer &out)
593 Serializer<Key>::Serialize(1, value.first, FlagsType<KeyFlags> {}, out, true);
594 Serializer<Value>::Serialize(2, value.second, FlagsType<ValueFlags> {}, out, true); // 2:tag value
598 void WriteMap(uint32_t tag, const T &value, Writer &out)
600 auto begin = std::begin(value);
601 auto end = std::end(value);
613 bool ReadMapKeyValue(std::pair<Key, Value> &value, Reader &in)
616 Field<2, &std::pair<Key, Value>::second, ValueFlags>("value"));
617 return ReadMessage(value, pairAsMessage, in);
621 bool ReadMap(WireType wireType, T &value, Reader &in)
634 value.insert(std::move(item));
655 ValueType value;
656 if (!Serializer<ValueType>::ParsePacked(value, FlagsType<Flags>(), limitedIn)) {
659 output_it = value;
666 ValueType value;
667 if (Serializer<ValueType>::Parse(wireType, value, FlagsType<Flags>(), in)) {
668 output_it = value;
677 void ReadField(T &value, uint32_t tag, WireType wireType,
685 wireType, OneOf::get(value), FlagsType<OneOf::FLAGS>(), in);
689 void ReadField(T &value, uint32_t tag, WireType wireType,
697 wireType, Map::get(value), FlagsType<Map::KEY_FLAGS>(), FlagsType<Map::VALUE_FLAGS>(), in);
701 void ReadField(T &value, uint32_t tag, WireType wireType,
708 Serializer<typename Field::MemberType>::Parse(wireType, Field::get(value), FlagsType<Field::FLAGS>(), in);
711 template<class T, class... Field> bool ReadMessage(T &value, const MessageImpl<Field...> &message, Reader &in)
718 message.Visit([&](const auto &field) { ReadField(value, tag, wireType, field, in); });
726 static void Serialize(uint32_t tag, const T &value, FlagsType<>, Writer &out, bool force = false)
729 SerialDetail::WriteMessage(value, MessageType<T>(), sizeCollector);
735 SerialDetail::WriteMessage(value, MessageType<T>(), out);
738 static bool Parse(WireType wireType, T &value, FlagsType<>, Reader &in)
746 return SerialDetail::ReadMessage(value, MessageType<T>(), limitedIn);
753 static void Serialize(uint32_t tag, int32_t value, FlagsType<>, Writer &out, bool force = false)
757 SerialDetail::WriteVarint(value, out);
760 static void Serialize(uint32_t tag, int32_t value, FlagsType<Flags::S>, Writer &out, bool force = false)
764 SerialDetail::WriteSignedVarint(value, out);
768 uint32_t tag, int32_t value, FlagsType<Flags::S | Flags::F>, Writer &out, bool force = false)
772 SerialDetail::WriteSignedFixed(value, out);
775 static void SerializePacked(int32_t value, FlagsType<>, Writer &out)
777 SerialDetail::WriteVarint(value, out);
780 static void SerializePacked(int32_t value, FlagsType<Flags::S>, Writer &out)
782 SerialDetail::WriteSignedVarint(value, out);
785 static void SerializePacked(int32_t value, FlagsType<Flags::S | Flags::F>, Writer &out)
787 SerialDetail::WriteSignedFixed(value, out);
790 static bool Parse(WireType wire_type, int32_t &value, FlagsType<>, Reader &in)
794 return SerialDetail::ReadVarint(value, in);
797 static bool Parse(WireType wire_type, int32_t &value, FlagsType<Flags::S>, Reader &in)
801 return SerialDetail::ReadSignedVarint(value, in);
804 static bool Parse(WireType wire_type, int32_t &value, FlagsType<Flags::S | Flags::F>, Reader &in)
808 return SerialDetail::ReadSignedFixed(value, in);
811 static bool ParsePacked(int32_t &value, FlagsType<>, Reader &in)
813 return SerialDetail::ReadVarint(value, in);
816 static bool ParsePacked(int32_t &value, FlagsType<Flags::S>, Reader &in)
818 return SerialDetail::ReadSignedVarint(value, in);
821 static bool ParsePacked(int32_t &value, FlagsType<Flags::S | Flags::F>, Reader &in)
823 return SerialDetail::ReadSignedFixed(value, in);
828 static void Serialize(uint32_t tag, uint32_t value, FlagsType<>, Writer &out, bool force = false)
832 SerialDetail::WriteVarint(value, out);
835 static void Serialize(uint32_t tag, uint32_t value, FlagsType<Flags::F>, Writer &out, bool force = false)
839 SerialDetail::WriteFixed(value, out);
842 static void SerializePacked(uint32_t value, FlagsType<>, Writer &out)
844 SerialDetail::WriteVarint(value, out);
847 static void SerializePacked(uint32_t value, FlagsType<Flags::F>, Writer &out)
849 SerialDetail::WriteFixed(value, out);
852 static bool Parse(WireType wire_type, uint32_t &value, FlagsType<>, Reader &in)
856 return SerialDetail::ReadVarint(value, in);
859 static bool Parse(WireType wire_type, uint32_t &value, FlagsType<Flags::F>, Reader &in)
863 return SerialDetail::ReadFixed(value, in);
866 static bool ParsePacked(uint32_t &value, FlagsType<>, Reader &in)
868 return SerialDetail::ReadVarint(value, in);
871 static bool ParsePacked(uint32_t &value, FlagsType<Flags::F>, Reader &in)
873 return SerialDetail::ReadFixed(value, in);
878 static void Serialize(uint32_t tag, int64_t value, FlagsType<>, Writer &out, bool force = false)
882 SerialDetail::WriteVarint(value, out);
885 static void Serialize(uint32_t tag, int64_t value, FlagsType<Flags::S>, Writer &out, bool force = false)
889 SerialDetail::WriteSignedVarint(value, out);
893 uint32_t tag, int64_t value, FlagsType<Flags::S | Flags::F>, Writer &out, bool force = false)
897 SerialDetail::WriteSignedFixed(value, out);
900 static void SerializePacked(int64_t value, FlagsType<>, Writer &out)
902 SerialDetail::WriteVarint(value, out);
905 static void SerializePacked(int64_t value, FlagsType<Flags::S>, Writer &out)
907 SerialDetail::WriteSignedVarint(value, out);
910 static void SerializePacked(int64_t value, FlagsType<Flags::S | Flags::F>, Writer &out)
912 SerialDetail::WriteSignedFixed(value, out);
915 static bool Parse(WireType wire_type, int64_t &value, FlagsType<>, Reader &in)
919 return SerialDetail::ReadVarint(value, in);
922 static bool Parse(WireType wire_type, int64_t &value, FlagsType<Flags::S>, Reader &in)
926 return SerialDetail::ReadSignedVarint(value, in);
929 static bool Parse(WireType wire_type, int64_t &value, FlagsType<Flags::S | Flags::F>, Reader &in)
933 return SerialDetail::ReadSignedFixed(value, in);
936 static bool ParsePacked(int64_t &value, FlagsType<>, Reader &in)
938 return SerialDetail::ReadVarint(value, in);
941 static bool ParsePacked(int64_t &value, FlagsType<Flags::S>, Reader &in)
943 return SerialDetail::ReadSignedVarint(value, in);
946 static bool ParsePacked(int64_t &value, FlagsType<Flags::S | Flags::F>, Reader &in)
948 return SerialDetail::ReadSignedFixed(value, in);
953 static void Serialize(uint32_t tag, uint64_t value, FlagsType<>, Writer &out, bool force = false)
957 SerialDetail::WriteVarint(value, out);
960 static void Serialize(uint32_t tag, uint64_t value, FlagsType<Flags::F>, Writer &out, bool force = false)
962 if (!force && value == UINT64_C(0))
966 SerialDetail::WriteFixed(value, out);
969 static void SerializePacked(uint64_t value, FlagsType<>, Writer &out)
971 SerialDetail::WriteVarint(value, out);
974 static void SerializePacked(uint64_t value, FlagsType<Flags::F>, Writer &out)
976 SerialDetail::WriteFixed(value, out);
979 static bool Parse(WireType wire_type, uint64_t &value, FlagsType<>, Reader &in)
983 return SerialDetail::ReadVarint(value, in);
986 static bool Parse(WireType wire_type, uint64_t &value, FlagsType<Flags::F>, Reader &in)
990 return SerialDetail::ReadFixed(value, in);
993 static bool ParsePacked(uint64_t &value, FlagsType<>, Reader &in)
995 return SerialDetail::ReadVarint(value, in);
998 static bool ParsePacked(uint64_t &value, FlagsType<Flags::F>, Reader &in)
1000 return SerialDetail::ReadFixed(value, in);
1005 static void Serialize(uint32_t tag, double value, FlagsType<>, Writer &out, bool force = false)
1007 if (!force && std::fpclassify(value) == FP_ZERO) {
1011 SerialDetail::WriteFixed(value, out);
1014 static void SerializePacked(double value, FlagsType<>, Writer &out)
1016 SerialDetail::WriteFixed(value, out);
1019 static bool Parse(WireType wire_type, double &value, FlagsType<>, Reader &in)
1024 return SerialDetail::ReadFixed(value, in);
1027 static bool ParsePacked(double &value, FlagsType<>, Reader &in)
1029 return SerialDetail::ReadFixed(value, in);
1034 static void Serialize(uint32_t tag, float value, FlagsType<>, Writer &out, bool force = false)
1036 if (!force && std::fpclassify(value) == FP_ZERO) {
1040 SerialDetail::WriteFixed(value, out);
1043 static void SerializePacked(float value, FlagsType<>, Writer &out)
1045 SerialDetail::WriteFixed(value, out);
1048 static bool Parse(WireType wire_type, float &value, FlagsType<>, Reader &in)
1053 return SerialDetail::ReadFixed(value, in);
1056 static bool ParsePacked(float &value, FlagsType<>, Reader &in)
1058 return SerialDetail::ReadFixed(value, in);
1063 static void Serialize(uint32_t tag, bool value, FlagsType<>, Writer &out, bool force = false)
1065 Serializer<uint32_t>::Serialize(tag, value ? 1 : 0, FlagsType(), out, force);
1068 static void SerializePacked(bool value, FlagsType<>, Writer &out)
1070 Serializer<uint32_t>::SerializePacked(value ? 1 : 0, FlagsType(), out);
1073 static bool Parse(WireType wire_type, bool &value, FlagsType<>, Reader &in)
1077 value = static_cast<bool>(intermedaite_value);
1083 static bool ParsePacked(bool &value, FlagsType<>, Reader &in)
1087 value = static_cast<bool>(intermedaite_value);
1097 static void Serialize(uint32_t tag, T value, FlagsType<>, Writer &out, bool force = false)
1099 Serializer<U>::Serialize(tag, static_cast<U>(value), FlagsType<>(), out, force);
1102 static void SerializePacked(T value, FlagsType<>, Writer &out)
1104 Serializer<U>::SerializePacked(static_cast<U>(value), FlagsType<>(), out);
1107 static bool Parse(WireType wire_type, T &value, FlagsType<>, Reader &in)
1111 value = static_cast<T>(intermedaite_value);
1117 static bool ParsePacked(T &value, FlagsType<>, Reader &in)
1121 value = static_cast<T>(intermedaite_value);
1129 static void Serialize(uint32_t tag, const std::string &value, FlagsType<>, Writer &out, bool force = false)
1133 SerialDetail::WriteVarint(value.size(), out);
1134 out.Write(value.data(), value.size());
1137 static bool Parse(WireType wire_type, std::string &value, FlagsType<>, Reader &in)
1144 value.resize(size);
1145 if (in.Read(value.data(), size) == size) {
1155 static void Serialize(uint32_t tag, const std::vector<T> &value, FlagsType<Flags>, Writer &out)
1157 SerialDetail::WriteRepeated<Flags, T>(tag, value.begin(), value.end(), out);
1161 static bool Parse(WireType wire_type, std::vector<T> &value, FlagsType<Flags>, Reader &in)
1163 return SerialDetail::ReadRepeated<Flags, T>(wire_type, std::back_inserter(value), in);
1169 static void Serialize(uint32_t tag, const std::optional<T> &value, FlagsType<Flags>, Writer &out)
1171 if (!value.has_value()) {
1174 Serializer<T>::Serialize(tag, *value, FlagsType<Flags>(), out);
1178 static bool Parse(WireType wire_type, std::optional<T> &value, FlagsType<Flags>, Reader &in)
1180 return Serializer<T>::Parse(wire_type, value.emplace(), FlagsType<Flags>(), in);
1186 static void SerializeOneof(uint32_t tag, const std::variant<T...> &value, FlagsType<Flags>, Writer &out)
1188 if (value.index() != Index)
1192 tag, std::get<Index>(value), FlagsType<Flags>(), out);
1196 static bool ParseOneof(WireType wire_type, std::variant<T...> &value, FlagsType<Flags>, Reader &in)
1199 wire_type, value.template emplace<Index>(), FlagsType<Flags>(), in);
1206 uint32_t tag, const std::map<Key, Value> &value, FlagsType<KeyFlags>, FlagsType<ValueFlags>, Writer &out)
1208 SerialDetail::WriteMap<KeyFlags, ValueFlags>(tag, value, out);
1213 WireType wire_type, std::map<Key, Value> &value, FlagsType<KeyFlags>, FlagsType<ValueFlags>, Reader &in)
1215 return SerialDetail::ReadMap<KeyFlags, ValueFlags>(wire_type, value, in);
1256 static void Serialize(uint32_t tag, uint8_t value, FlagsType<>, Writer &out, bool force = false)
1258 Serializer<uint32_t>::Serialize(tag, value, FlagsType(), out, force);
1261 static void SerializePacked(uint8_t value, FlagsType<>, Writer &out)
1263 Serializer<uint32_t>::SerializePacked(value, FlagsType(), out);
1266 static bool Parse(WireType wire_type, uint8_t &value, FlagsType<>, Reader &in)
1270 value = static_cast<uint8_t>(intermedaite_value);
1276 static bool ParsePacked(uint8_t &value, FlagsType<>, Reader &in)
1280 value = static_cast<uint8_t>(intermedaite_value);
1287 static void Serialize(uint32_t tag, uint16_t value, FlagsType<>, Writer &out, bool force = false)
1289 Serializer<uint32_t>::Serialize(tag, value, FlagsType(), out, force);
1292 static void SerializePacked(uint16_t value, FlagsType<>, Writer &out)
1294 Serializer<uint32_t>::SerializePacked(value, FlagsType(), out);
1297 static bool Parse(WireType wire_type, uint16_t &value, FlagsType<>, Reader &in)
1301 value = static_cast<uint16_t>(intermedaite_value);
1307 static bool ParsePacked(uint16_t &value, FlagsType<>, Reader &in)
1311 value = static_cast<uint16_t>(intermedaite_value);
1319 template<class T> std::string SerializeToString(const T &value)
1323 SerialDetail::WriteMessage(value, MessageType<T>(), stringOut);
1327 template<class T> bool ParseFromString(T &value, const std::string &in)
1330 return SerialDetail::ReadMessage(value, MessageType<T>(), stringIn);