mirror of https://github.com/poanetwork/gecko.git
31 lines
833 B
Go
31 lines
833 B
Go
// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package networking
|
|
|
|
import (
|
|
"github.com/ava-labs/salticidae-go"
|
|
)
|
|
|
|
// Msg represents a set of fields that can be serialized into a byte stream
|
|
type Msg interface {
|
|
Op() salticidae.Opcode
|
|
Get(Field) interface{}
|
|
DataStream() salticidae.DataStream
|
|
}
|
|
|
|
type msg struct {
|
|
op salticidae.Opcode
|
|
ds salticidae.DataStream
|
|
fields map[Field]interface{}
|
|
}
|
|
|
|
// Field returns the value of the specified field in this message
|
|
func (msg *msg) Op() salticidae.Opcode { return msg.op }
|
|
|
|
// Field returns the value of the specified field in this message
|
|
func (msg *msg) Get(field Field) interface{} { return msg.fields[field] }
|
|
|
|
// Bytes returns this message in bytes
|
|
func (msg *msg) DataStream() salticidae.DataStream { return msg.ds }
|