in hessian2/basic_codec/map_codec.cc [98:112]
bool Encoder::encode(const TypedMapObject& value) {
values_ref_.emplace(&value, values_ref_.size());
auto typed_map = value.toTypedMap();
ABSL_ASSERT(typed_map.has_value());
auto& typed_map_value = typed_map.value().get();
writer_->writeByte('M');
Object::TypeRef type_ref(typed_map_value.type_name_);
encode<Object::TypeRef>(type_ref);
for (const auto& elem : typed_map_value.field_name_and_value_) {
encode<Object>(*elem.first);
encode<Object>(*elem.second);
}
writer_->writeByte('Z');
return true;
}