package network import ( "encoding/binary" "io" ) type DataWriter struct { w io.Writer } func NewDataWriter(w io.Writer) *DataWriter { return &DataWriter{w: w} } func (reader *DataWriter) Byte(b byte) error { err := binary.Write(reader.w, binary.BigEndian, b) if err != nil { return err } return nil } func (reader *DataWriter) Bytes(bs []byte) error { err := binary.Write(reader.w, binary.BigEndian, bs) if err != nil { return err } return nil } func (reader *DataWriter) Uint8(u uint8) error { err := binary.Write(reader.w, binary.BigEndian, u) if err != nil { return err } return nil } func (reader *DataWriter) Uint16(u uint16) error { err := binary.Write(reader.w, binary.BigEndian, u) if err != nil { return err } return nil } func (reader *DataWriter) Uint32(u uint32) error { err := binary.Write(reader.w, binary.BigEndian, u) if err != nil { return err } return nil } func (reader *DataWriter) Uint64(u uint64) error { err := binary.Write(reader.w, binary.BigEndian, u) if err != nil { return err } return nil } func (reader *DataWriter) String(s string) error { err := binary.Write(reader.w, binary.BigEndian, []byte(s)) if err != nil { return err } return nil }