11package internal
22
33import (
4- "bufio"
54 "encoding/binary"
65 "io"
76)
@@ -18,14 +17,6 @@ func readUInt(readerStream io.Reader) (uint32, error) {
1817 return res , err
1918}
2019
21- func peekByte (readerStream * bufio.Reader ) (uint8 , error ) {
22- res , err := readerStream .Peek (1 )
23- if err != nil {
24- return 0 , err
25- }
26- return res [0 ], nil
27- }
28-
2920func readString (readerStream io.Reader ) string {
3021 // FIXME: handle the potential error from readUShort
3122 lenString , _ := readUShort (readerStream )
@@ -67,23 +58,21 @@ func readMany(readerStream io.Reader, args ...interface{}) error {
6758
6859func readAny (readerStream io.Reader , arg interface {}) error {
6960
70- switch arg .(type ) {
61+ switch arg := arg .(type ) {
7162 case * int :
7263 uInt , err := readUInt (readerStream )
7364 if err != nil {
7465 return err
7566 }
76- * arg .(* int ) = int (uInt )
77- break
67+ * arg = int (uInt )
7868 case * string :
79- * arg .(* string ) = readString (readerStream )
80- break
69+ * arg = readString (readerStream )
8170 case * []byte :
8271 byteSlice , err := readByteSlice (readerStream )
8372 if err != nil {
8473 return err
8574 }
86- * arg .( * [] byte ) = byteSlice
75+ * arg = byteSlice
8776 case * map [string ]string :
8877 mapLen , err := readUInt (readerStream )
8978 if err != nil {
@@ -95,7 +84,7 @@ func readAny(readerStream io.Reader, arg interface{}) error {
9584 v := readString (readerStream )
9685 myMap [k ] = v
9786 }
98- * arg .( * map [ string ] string ) = myMap
87+ * arg = myMap
9988 default :
10089 err := binary .Read (readerStream , binary .BigEndian , arg )
10190 if err != nil {
@@ -113,31 +102,31 @@ func writeMany(writer io.Writer, args ...any) (int, error) {
113102 var written int
114103
115104 for _ , arg := range args {
116- switch arg .(type ) {
105+ switch arg := arg .(type ) {
117106 case int :
118- err := binary .Write (writer , binary .BigEndian , int32 (arg .( int ) ))
107+ err := binary .Write (writer , binary .BigEndian , int32 (arg ))
119108 if err != nil {
120109 return written , err
121110 }
122- written += binary .Size (int32 (arg .(int )))
123- break
111+ written += binary .Size (int32 (arg ))
124112 case string :
125- n , err := writeString (writer , arg .( string ) )
113+ n , err := writeString (writer , arg )
126114 if err != nil {
127115 return written , err
128116 }
129117 written += n
130- break
131118 case map [string ]string :
132- m := arg .(map [string ]string )
133- n , err := writeMany (writer , len (m ))
119+ n , err := writeMany (writer , len (arg ))
134120 if err != nil {
135121 return n , err
136122 }
137123 written += n
138- for key , value := range m {
124+ for key , value := range arg {
139125 n , err := writeString (writer , key )
140126 written += n
127+ if err != nil {
128+ return n , err
129+ }
141130 n , err = writeString (writer , value )
142131 written += n
143132 if err != nil {
0 commit comments