23 lines
442 B
Go
23 lines
442 B
Go
package rpc
|
|
|
|
import (
|
|
"encoding/json"
|
|
)
|
|
|
|
// UnmarshalJSON deserializes JSON into a RPC message
|
|
func (m *Msg) UnmarshalJSON(data []byte) error {
|
|
return m.unmarshalGeneric(data, json.Unmarshal)
|
|
}
|
|
|
|
// MarshalJSON serializes a RPC message into JSON
|
|
func (m *Msg) MarshalJSON() ([]byte, error) {
|
|
msg := &msgMeta{msgAlias: (*msgAlias)(m)}
|
|
|
|
msg.MarshalPrepare()
|
|
d, err := json.Marshal(msg)
|
|
if err == nil {
|
|
m.rawBytes = d
|
|
}
|
|
return d, err
|
|
}
|