aboutsummaryrefslogtreecommitdiff
path: root/serialize.go
diff options
context:
space:
mode:
authorFumitoshi Ukai <fumitoshi.ukai@gmail.com>2015-06-19 10:08:17 +0900
committerFumitoshi Ukai <fumitoshi.ukai@gmail.com>2015-06-19 10:09:38 +0900
commit145598a5c00bb3cdec425160884de9b4070eb98b (patch)
treeffba3384eb8e6cf2dfd5d8f3496f3e6a55f352bb /serialize.go
parent57088ceb79dbbc000d187fa67400a9390e113b05 (diff)
downloadkati-145598a5c00bb3cdec425160884de9b4070eb98b.tar.gz
reduce string -> []byte conversion in Write and w.Write([]byte{x})
use io.WriteString(w, str) instead of w.Write([]byte(str)) use writeByte(w, b) instead of w.Write([]byte{b})
Diffstat (limited to 'serialize.go')
-rw-r--r--serialize.go33
1 files changed, 16 insertions, 17 deletions
diff --git a/serialize.go b/serialize.go
index fbcbed0..8ed60d2 100644
--- a/serialize.go
+++ b/serialize.go
@@ -46,36 +46,35 @@ const (
ValueTypeTmpval = 't'
)
-func dumpData(w io.Writer, data []byte) {
- for len(data) != 0 {
- written, err := w.Write(data)
- if err == io.EOF {
- return
- }
- if err != nil {
- panic(err)
- }
- data = data[written:]
- }
-}
-
func dumpInt(w io.Writer, i int) {
v := int32(i)
- binary.Write(w, binary.LittleEndian, &v)
+ err := binary.Write(w, binary.LittleEndian, &v)
+ if err != nil {
+ panic(err)
+ }
}
func dumpString(w io.Writer, s string) {
dumpInt(w, len(s))
- dumpData(w, []byte(s))
+ _, err := io.WriteString(w, s)
+ if err != nil {
+ panic(err)
+ }
}
func dumpBytes(w io.Writer, b []byte) {
dumpInt(w, len(b))
- dumpData(w, b)
+ _, err := w.Write(b)
+ if err != nil {
+ panic(err)
+ }
}
func dumpByte(w io.Writer, b byte) {
- w.Write([]byte{b})
+ err := writeByte(w, b)
+ if err != nil {
+ panic(err)
+ }
}
type SerializableVar struct {