gitee.com/zhongguo168a/gocodes@v0.0.0-20230609140523-e1828349603f/datax/binaryx/binex.go (about) 1 package binaryx 2 3 import ( 4 "encoding/binary" 5 "fmt" 6 "gitee.com/zhongguo168a/gocodes/myx/errorx" 7 "io" 8 ) 9 10 func WriteBool(w io.Writer, order binary.ByteOrder, val bool) error { 11 return binary.Write(w, order, &val) 12 } 13 14 func WriteInt8(w io.Writer, order binary.ByteOrder, val int8) error { 15 return binary.Write(w, order, &val) 16 } 17 18 func WriteInt16(w io.Writer, order binary.ByteOrder, val int16) error { 19 return binary.Write(w, order, &val) 20 } 21 func WriteInt32(w io.Writer, order binary.ByteOrder, val int32) error { 22 return binary.Write(w, order, &val) 23 } 24 func WriteInt64(w io.Writer, order binary.ByteOrder, val int64) error { 25 return binary.Write(w, order, &val) 26 } 27 func WriteUint8(w io.Writer, order binary.ByteOrder, val uint8) error { 28 return binary.Write(w, order, &val) 29 } 30 func WriteUint16(w io.Writer, order binary.ByteOrder, val uint16) error { 31 return binary.Write(w, order, &val) 32 } 33 func WriteUint32(w io.Writer, order binary.ByteOrder, val uint32) error { 34 return binary.Write(w, order, &val) 35 } 36 func WriteUint64(w io.Writer, order binary.ByteOrder, val uint64) error { 37 return binary.Write(w, order, &val) 38 } 39 func WriteFloat32(w io.Writer, order binary.ByteOrder, val float32) error { 40 return binary.Write(w, order, &val) 41 } 42 func WriteFloat64(w io.Writer, order binary.ByteOrder, val float64) error { 43 return binary.Write(w, order, &val) 44 } 45 46 func WriteBytes(w io.Writer, order binary.ByteOrder, data []byte) (err error) { 47 err = binary.Write(w, order, int16(len(data))) 48 if err != nil { 49 return err 50 } 51 err = binary.Write(w, order, data) 52 if err != nil { 53 return err 54 } 55 56 return nil 57 } 58 59 func WriteBytesLength(w io.Writer, order binary.ByteOrder, data []byte) (err error) { 60 err = binary.Write(w, order, data) 61 if err != nil { 62 return err 63 } 64 65 return nil 66 } 67 68 func WriteUTF(w io.Writer, order binary.ByteOrder, data string) (err error) { 69 err = binary.Write(w, order, int16(len(data))) 70 if err != nil { 71 return 72 } 73 err = binary.Write(w, order, []byte(data)) 74 if err != nil { 75 return 76 } 77 return 78 } 79 80 func ReadBool(r io.Reader, order binary.ByteOrder) (data bool, err error) { 81 err = binary.Read(r, order, &data) 82 return 83 } 84 85 func ReadInt8(r io.Reader, order binary.ByteOrder) (data int8, err error) { 86 err = binary.Read(r, order, &data) 87 return 88 } 89 90 func ReadInt16(r io.Reader, order binary.ByteOrder) (data int16, err error) { 91 err = binary.Read(r, order, &data) 92 return 93 } 94 95 func ReadInt32(r io.Reader, order binary.ByteOrder) (data int32, err error) { 96 err = binary.Read(r, order, &data) 97 return 98 } 99 100 func ReadInt64(r io.Reader, order binary.ByteOrder) (data int64, err error) { 101 err = binary.Read(r, order, &data) 102 return 103 } 104 105 func ReadUint8(r io.Reader, order binary.ByteOrder) (data uint8, err error) { 106 err = binary.Read(r, order, &data) 107 return 108 } 109 110 func ReadUint16(r io.Reader, order binary.ByteOrder) (data uint16, err error) { 111 err = binary.Read(r, order, &data) 112 return 113 } 114 115 func ReadUint32(r io.Reader, order binary.ByteOrder) (data uint32, err error) { 116 err = binary.Read(r, order, &data) 117 return 118 } 119 120 func ReadUint64(r io.Reader, order binary.ByteOrder) (data uint64, err error) { 121 err = binary.Read(r, order, &data) 122 return 123 } 124 125 func ReadFloat32(r io.Reader, order binary.ByteOrder) (data float32, err error) { 126 err = binary.Read(r, order, &data) 127 return 128 } 129 130 func ReadFloat64(r io.Reader, order binary.ByteOrder) (data float64, err error) { 131 err = binary.Read(r, order, &data) 132 return 133 } 134 135 func ReadBytes(r io.Reader, order binary.ByteOrder) (data []byte, err error) { 136 var tlen int16 137 err = binary.Read(r, order, &tlen) 138 if err != nil { 139 err = errorx.Wrap(err, fmt.Sprintf("read length")) 140 return 141 } 142 data = make([]byte, tlen) 143 err = binary.Read(r, order, &data) 144 if err != nil { 145 err = errorx.Wrap(err, fmt.Sprintf("read body")) 146 return 147 } 148 return 149 } 150 151 func ReadBytesLength(r io.Reader, order binary.ByteOrder, length int16) (data []byte, err error) { 152 data = make([]byte, length) 153 err = binary.Read(r, order, &data) 154 if err != nil { 155 err = errorx.Wrap(err, fmt.Sprintf("read body")) 156 return 157 } 158 return 159 } 160 161 func ReadUTF(r io.Reader, order binary.ByteOrder) (data string, err error) { 162 tlen := int16(0) 163 err = binary.Read(r, order, &tlen) 164 if err != nil { 165 err = errorx.Wrap(err, fmt.Sprintf("read length")) 166 return 167 } 168 tbs := make([]byte, tlen) 169 err = binary.Read(r, order, &tbs) 170 if err != nil { 171 err = errorx.Wrap(err, fmt.Sprintf("read body")) 172 return 173 } 174 data = string(tbs) 175 return 176 }