11 #ifndef MMTF_OBJECT_ENCODERS_H
12 #define MMTF_OBJECT_ENCODERS_H
15 #include <msgpack.hpp>
28 struct object_with_zone<
mmtf::GroupType> {
29 void operator()(msgpack::object::with_zone& o,
mmtf::GroupType const& v)
const {
32 o.via.map.ptr =
static_cast<msgpack::object_kv*
>(o.zone.allocate_align(
sizeof(msgpack::object_kv)*8, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
33 o.via.map.ptr[0].key = msgpack::object(
"formalChargeList", o.zone);
35 o.via.map.ptr[1].key = msgpack::object(
"atomNameList", o.zone);
36 o.via.map.ptr[1].val = msgpack::object(v.
atomNameList, o.zone);
37 o.via.map.ptr[2].key = msgpack::object(
"elementList", o.zone);
38 o.via.map.ptr[2].val = msgpack::object(v.
elementList, o.zone);
39 o.via.map.ptr[3].key = msgpack::object(
"bondAtomList", o.zone);
40 o.via.map.ptr[3].val = msgpack::object(v.
bondAtomList, o.zone);
41 o.via.map.ptr[4].key = msgpack::object(
"bondOrderList", o.zone);
42 o.via.map.ptr[4].val = msgpack::object(v.
bondOrderList, o.zone);
43 o.via.map.ptr[5].key = msgpack::object(
"groupName", o.zone);
44 o.via.map.ptr[5].val = msgpack::object(v.
groupName, o.zone);
45 o.via.map.ptr[6].key = msgpack::object(
"singleLetterCode", o.zone);
46 o.via.map.ptr[6].val = msgpack::object(std::string(1,v.
singleLetterCode), o.zone);
47 o.via.map.ptr[7].key = msgpack::object(
"chemCompType", o.zone);
48 o.via.map.ptr[7].val = msgpack::object(v.
chemCompType, o.zone);