new server
This commit is contained in:
49
models/writer.go
Normal file
49
models/writer.go
Normal file
@@ -0,0 +1,49 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"math"
|
||||
)
|
||||
|
||||
type Writer struct {
|
||||
buf []byte
|
||||
}
|
||||
|
||||
func (w *Writer) Bytes() []byte {
|
||||
return w.buf
|
||||
}
|
||||
|
||||
func (w *Writer) WriteU8(v uint8) {
|
||||
w.buf = append(w.buf, v)
|
||||
}
|
||||
|
||||
func (w *Writer) WriteU16(v uint16) {
|
||||
tmp := make([]byte, 2)
|
||||
binary.LittleEndian.PutUint16(tmp, v)
|
||||
w.buf = append(w.buf, tmp...)
|
||||
}
|
||||
|
||||
func (w *Writer) WriteU32(v uint32) {
|
||||
tmp := make([]byte, 4)
|
||||
binary.LittleEndian.PutUint32(tmp, v)
|
||||
w.buf = append(w.buf, tmp...)
|
||||
}
|
||||
|
||||
func (w *Writer) WriteF32(v float32) {
|
||||
tmp := make([]byte, 4)
|
||||
binary.LittleEndian.PutUint32(tmp, math.Float32bits(v))
|
||||
w.buf = append(w.buf, tmp...)
|
||||
}
|
||||
|
||||
func (w *Writer) WriteBool(v bool) {
|
||||
if v {
|
||||
w.WriteU8(1)
|
||||
} else {
|
||||
w.WriteU8(0)
|
||||
}
|
||||
}
|
||||
|
||||
func (w *Writer) WriteString(s string) {
|
||||
w.WriteU16(uint16(len(s)))
|
||||
w.buf = append(w.buf, []byte(s)...)
|
||||
}
|
||||
Reference in New Issue
Block a user