42 lines
617 B
Go
42 lines
617 B
Go
package main
|
|
|
|
import "encoding/json"
|
|
|
|
type Message struct {
|
|
ID string
|
|
TS uint64
|
|
Plain string
|
|
Source string
|
|
Channel string
|
|
Thread string
|
|
EventName string
|
|
EventID string
|
|
AssetID string
|
|
}
|
|
|
|
func (m Message) Empty() bool {
|
|
return m == (Message{})
|
|
}
|
|
|
|
func (m Message) Serialize() []byte {
|
|
b, err := json.Marshal(m)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return b
|
|
}
|
|
|
|
func MustDeserialize(b []byte) Message {
|
|
m, err := Deserialize(b)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return m
|
|
}
|
|
|
|
func Deserialize(b []byte) (Message, error) {
|
|
var m Message
|
|
err := json.Unmarshal(b, &m)
|
|
return m, err
|
|
}
|