Lines Matching refs:MemPtr
35 template<class MemPtrT> struct MemPtr {
37 template<class T, class U> struct MemPtr<U T::*> {
62 template<uint32_t Tag, class MemPtrT, MemPtrT MemPtr, uint32_t Flags> struct FieldImpl {
63 using type = typename SerialDetail::MemPtr<MemPtrT>::type;
64 using MemberType = typename SerialDetail::MemPtr<MemPtrT>::MemberType;
71 return value.*MemPtr;
76 return value.*MemPtr;
80 template<uint32_t Tag, size_t Index, class MemPtrT, MemPtrT MemPtr, uint32_t Flags> struct OneofFieldImpl {
81 using type = typename SerialDetail::MemPtr<MemPtrT>::type;
82 using MemberType = typename SerialDetail::MemPtr<MemPtrT>::MemberType;
90 return value.*MemPtr;
95 return value.*MemPtr;
99 template<uint32_t Tag, class MemPtrT, MemPtrT MemPtr, uint32_t KeyFlags, uint32_t ValueFlags>
101 using type = typename SerialDetail::MemPtr<MemPtrT>::type;
102 using MemberType = typename SerialDetail::MemPtr<MemPtrT>::MemberType;
111 return value.*MemPtr;
116 return value.*MemPtr;
145 template<uint32_t Tag, auto MemPtr, uint32_t Flags = Flags::NO> constexpr auto Field(const std::string &fieldName)
147 return SerialDetail::FieldImpl<Tag, decltype(MemPtr), MemPtr, Flags> { fieldName };
150 template<uint32_t Tag, size_t Index, auto MemPtr, uint32_t Flags = Flags::NO>
153 return SerialDetail::OneofFieldImpl<Tag, Index, decltype(MemPtr), MemPtr, Flags> { fieldName };
156 template<uint32_t Tag, auto MemPtr, uint32_t KeyFlags = Flags::NO, uint32_t ValueFlags = Flags::NO>
159 return SerialDetail::MapFieldImpl<Tag, decltype(MemPtr), MemPtr, KeyFlags, ValueFlags> { fieldName };
534 template<class T, uint32_t Tag, size_t Index, class MemPtrT, MemPtrT MemPtr, uint32_t Flags>
536 const SerialDetail::OneofFieldImpl<Tag, Index, MemPtrT, MemPtr, Flags> &, Writer &out)
538 using OneOf = SerialDetail::OneofFieldImpl<Tag, Index, MemPtrT, MemPtr, Flags>;
543 template<class T, uint32_t Tag, class MemPtrT, MemPtrT MemPtr, uint32_t KeyFlags, uint32_t ValueFlags>
545 const SerialDetail::MapFieldImpl<Tag, MemPtrT, MemPtr, KeyFlags, ValueFlags> &, Writer &out)
547 using Map = SerialDetail::MapFieldImpl<Tag, MemPtrT, MemPtr, KeyFlags, ValueFlags>;
552 template<class T, uint32_t Tag, class MemPtrT, MemPtrT MemPtr, uint32_t Flags>
553 void WriteField(const T &value, const SerialDetail::FieldImpl<Tag, MemPtrT, MemPtr, Flags> &, Writer &out)
555 using Field = SerialDetail::FieldImpl<Tag, MemPtrT, MemPtr, Flags>;
676 template<class T, uint32_t Tag, size_t Index, class MemPtrT, MemPtrT MemPtr, uint32_t Flags>
678 const SerialDetail::OneofFieldImpl<Tag, Index, MemPtrT, MemPtr, Flags> &, Reader &in)
683 using OneOf = SerialDetail::OneofFieldImpl<Tag, Index, MemPtrT, MemPtr, Flags>;
688 template<class T, uint32_t Tag, class MemPtrT, MemPtrT MemPtr, uint32_t KeyFlags, uint32_t ValueFlags>
690 const SerialDetail::MapFieldImpl<Tag, MemPtrT, MemPtr, KeyFlags, ValueFlags> &, Reader &in)
695 using Map = SerialDetail::MapFieldImpl<Tag, MemPtrT, MemPtr, KeyFlags, ValueFlags>;
700 template<class T, uint32_t Tag, class MemPtrT, MemPtrT MemPtr, uint32_t Flags>
702 const SerialDetail::FieldImpl<Tag, MemPtrT, MemPtr, Flags> &, Reader &in)
707 using Field = SerialDetail::FieldImpl<Tag, MemPtrT, MemPtr, Flags>;