1 // Copyright 2016 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4 5 //go:build darwin || dragonfly || freebsd || netbsd || openbsd
6 7 package routebsd
8 9 import "internal/byteorder"
10 11 // This file contains duplicates of encoding/binary package.
12 //
13 // This package is supposed to be used by the net package of standard
14 // library. Therefore the package set used in the package must be the
15 // same as net package.
16 17 var (
18 littleEndian binaryLittleEndian
19 bigEndian binaryBigEndian
20 )
21 22 type binaryByteOrder interface {
23 Uint16([]byte) uint16
24 Uint32([]byte) uint32
25 Uint64([]byte) uint64
26 }
27 28 type binaryLittleEndian struct{}
29 30 func (binaryLittleEndian) Uint16(b []byte) uint16 {
31 return byteorder.LEUint16(b)
32 }
33 34 func (binaryLittleEndian) Uint32(b []byte) uint32 {
35 return byteorder.LEUint32(b)
36 }
37 38 func (binaryLittleEndian) Uint64(b []byte) uint64 {
39 return byteorder.LEUint64(b)
40 }
41 42 type binaryBigEndian struct{}
43 44 func (binaryBigEndian) Uint16(b []byte) uint16 {
45 return byteorder.BEUint16(b)
46 }
47 48 func (binaryBigEndian) Uint32(b []byte) uint32 {
49 return byteorder.BEUint32(b)
50 }
51 52 func (binaryBigEndian) Uint64(b []byte) uint64 {
53 return byteorder.BEUint64(b)
54 }
55