blob: 067cf553beb967463f1545f983bfc7fd4824080c [file] [log] [blame]
Andrew Gerrand7bffdc72011-12-20 13:16:36 +11001// Copyright 2011 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
5package binary_test
6
7import (
8 "bytes"
9 "encoding/binary"
10 "fmt"
11 "math"
12)
13
Andrew Gerrand7bffdc72011-12-20 13:16:36 +110014func ExampleWrite() {
15 buf := new(bytes.Buffer)
16 var pi float64 = math.Pi
17 err := binary.Write(buf, binary.LittleEndian, pi)
18 if err != nil {
19 fmt.Println("binary.Write failed:", err)
20 }
21 fmt.Printf("% x", buf.Bytes())
Andrew Gerrand11e113d2012-02-16 11:50:28 +110022 // Output: 18 2d 44 54 fb 21 09 40
Andrew Gerrand7bffdc72011-12-20 13:16:36 +110023}
24
Andrew Gerrand7bffdc72011-12-20 13:16:36 +110025func ExampleWrite_multi() {
26 buf := new(bytes.Buffer)
27 var data = []interface{}{
Brad Fitzpatrickfa33fdb2012-02-28 10:15:23 +110028 uint16(61374),
Andrew Gerrand7bffdc72011-12-20 13:16:36 +110029 int8(-54),
30 uint8(254),
Andrew Gerrand7bffdc72011-12-20 13:16:36 +110031 }
32 for _, v := range data {
33 err := binary.Write(buf, binary.LittleEndian, v)
34 if err != nil {
35 fmt.Println("binary.Write failed:", err)
36 }
37 }
38 fmt.Printf("%x", buf.Bytes())
Brad Fitzpatrickfa33fdb2012-02-28 10:15:23 +110039 // Output: beefcafe
Andrew Gerrand7bffdc72011-12-20 13:16:36 +110040}
41
Andrew Gerrand7bffdc72011-12-20 13:16:36 +110042func ExampleRead() {
43 var pi float64
44 b := []byte{0x18, 0x2d, 0x44, 0x54, 0xfb, 0x21, 0x09, 0x40}
Mathieu Lonjaretd5c806d2013-08-27 06:32:24 -070045 buf := bytes.NewReader(b)
Andrew Gerrand7bffdc72011-12-20 13:16:36 +110046 err := binary.Read(buf, binary.LittleEndian, &pi)
47 if err != nil {
48 fmt.Println("binary.Read failed:", err)
49 }
50 fmt.Print(pi)
Andrew Gerrand11e113d2012-02-16 11:50:28 +110051 // Output: 3.141592653589793
Andrew Gerrand7bffdc72011-12-20 13:16:36 +110052}