You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: rx_msg.go
    path of file: ./repos/api-server/pkg/easywework
    
    the code of the file until where you have to start completion: package workwx

import (
	"encoding/xml"
	"fmt"
	"strings"
	"time"
)

// RxMessage 一条接收到的消息
type RxMessage struct {
	// ToUserID 企业微信corpID
	ToUserID string
	// FromUserID 发送者的 UserID
	FromUserID string
	// SendTime 消息发送时间
	SendTime time.Time
	// MsgType 消息类型
	MsgType Mes
    
func (m *RxMessage) String() string {
	var sb strings.Builder

	_, _ = fmt.Fprintf(
		&sb,
		"RxMessage { FromUserID: %#v, SendTime: %d, MsgType: %#v, MsgID: %d, AgentID: %d, Event: %#v, ChangeType: %#v, ",
		m.FromUserID,
		m.SendTime.UnixNano(),
		m.MsgType,
		m.MsgID,
		m.AgentID,
		m.Event,
		m.ChangeType,
	)

	m.extras.formatInto(&sb)

	sb.WriteString(" }")

	return sb.String()
}