| // Copyright 2016 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| //go:build darwin || dragonfly || freebsd || netbsd || openbsd |
| |
| package routebsd |
| |
| import "internal/byteorder" |
| |
| // This file contains duplicates of encoding/binary package. |
| // |
| // This package is supposed to be used by the net package of standard |
| // library. Therefore the package set used in the package must be the |
| // same as net package. |
| |
| var ( |
| littleEndian binaryLittleEndian |
| bigEndian binaryBigEndian |
| ) |
| |
| type binaryByteOrder interface { |
| Uint16([]byte) uint16 |
| Uint32([]byte) uint32 |
| Uint64([]byte) uint64 |
| } |
| |
| type binaryLittleEndian struct{} |
| |
| func (binaryLittleEndian) Uint16(b []byte) uint16 { |
| return byteorder.LEUint16(b) |
| } |
| |
| func (binaryLittleEndian) Uint32(b []byte) uint32 { |
| return byteorder.LEUint32(b) |
| } |
| |
| func (binaryLittleEndian) Uint64(b []byte) uint64 { |
| return byteorder.LEUint64(b) |
| } |
| |
| type binaryBigEndian struct{} |
| |
| func (binaryBigEndian) Uint16(b []byte) uint16 { |
| return byteorder.BEUint16(b) |
| } |
| |
| func (binaryBigEndian) Uint32(b []byte) uint32 { |
| return byteorder.BEUint32(b) |
| } |
| |
| func (binaryBigEndian) Uint64(b []byte) uint64 { |
| return byteorder.BEUint64(b) |
| } |