package models import ( "encoding/json" "time" ) type Message struct { Uri string Author Author Protocol string Content string Attachments []Attachment ReplyTo *Message Replies []Message Mentions []Author Created time.Time Aux *interface{} } type Author struct { Id string Name string ProfileData interface{} Messages []Message ProfileUri string ProfilePic string } type Attachment struct { Src string Data []uint8 Desc string } type SocketData interface { ToDatagram() []byte } func (self Message) ToDatagram() []byte { data, err := json.Marshal(self) if err != nil { panic(err.Error()) } return data }