|
1 | 1 | package binary
|
2 | 2 |
|
3 | 3 | import (
|
| 4 | + stdlib "encoding/binary" |
4 | 5 | "fmt"
|
| 6 | + "io" |
5 | 7 |
|
6 | 8 | "github.com/encodingx/binary/internal/validation"
|
7 | 9 | )
|
@@ -85,3 +87,62 @@ func Unmarshal(bytes []byte, iface interface{}) (e error) {
|
85 | 87 |
|
86 | 88 | return
|
87 | 89 | }
|
| 90 | + |
| 91 | +// Standard library features |
| 92 | + |
| 93 | +const ( |
| 94 | + MaxVarintLen16 = stdlib.MaxVarintLen16 |
| 95 | + MaxVarintLen32 = stdlib.MaxVarintLen32 |
| 96 | + MaxVarintLen64 = stdlib.MaxVarintLen64 |
| 97 | +) |
| 98 | + |
| 99 | +var ( |
| 100 | + BigEndian = stdlib.BigEndian |
| 101 | + LittleEndian = stdlib.LittleEndian |
| 102 | +) |
| 103 | + |
| 104 | +type ByteOrder interface { |
| 105 | + Uint16([]byte) uint16 |
| 106 | + Uint32([]byte) uint32 |
| 107 | + Uint64([]byte) uint64 |
| 108 | + PutUint16([]byte, uint16) |
| 109 | + PutUint32([]byte, uint32) |
| 110 | + PutUint64([]byte, uint64) |
| 111 | + String() string |
| 112 | +} |
| 113 | + |
| 114 | +func PutUvarint(buf []byte, x uint64) int { |
| 115 | + return stdlib.PutUvarint(buf, x) |
| 116 | +} |
| 117 | + |
| 118 | +func PutVarint(buf []byte, x int64) int { |
| 119 | + return stdlib.PutVarint(buf, x) |
| 120 | +} |
| 121 | + |
| 122 | +func Read(r io.Reader, order ByteOrder, data interface{}) error { |
| 123 | + return stdlib.Read(r, order, data) |
| 124 | +} |
| 125 | + |
| 126 | +func ReadUvarint(r io.ByteReader) (uint64, error) { |
| 127 | + return stdlib.ReadUvarint(r) |
| 128 | +} |
| 129 | + |
| 130 | +func ReadVarint(r io.ByteReader) (int64, error) { |
| 131 | + return stdlib.ReadVarint(r) |
| 132 | +} |
| 133 | + |
| 134 | +func Size(v interface{}) int { |
| 135 | + return stdlib.Size(v) |
| 136 | +} |
| 137 | + |
| 138 | +func Uvarint(buf []byte) (uint64, int) { |
| 139 | + return stdlib.Uvarint(buf) |
| 140 | +} |
| 141 | + |
| 142 | +func Varint(buf []byte) (int64, int) { |
| 143 | + return stdlib.Varint(buf) |
| 144 | +} |
| 145 | + |
| 146 | +func Write(w io.Writer, order ByteOrder, data interface{}) error { |
| 147 | + return stdlib.Write(w, order, data) |
| 148 | +} |
0 commit comments