async def load_message(obj, msg_type, msg=None, field_archiver=None):
msg = msg_type() if msg is None else msg<EOL>fields = msg_type.f_specs() if msg_type else msg.__class__.f_specs()<EOL>for field in fields:<EOL><INDENT>await load_message_field(obj, msg, field, field_archiver=field_archiver)<EOL><DEDENT>return msg<EOL>
Loads message if the given type from the object.
Supports reading directly to existing message.

:param obj:
:param msg_type:
:param msg:
:param field_archiver:
:return: