From: Axel Wagner Date: Sat, 15 Jul 2017 17:43:22 +0000 (-0600) Subject: encoding/binary: add examples for varint functions X-Git-Tag: go1.9rc2~1^2~15 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0173631d53df98b17d282b3d71e8f515388915cc;p=gostls13.git encoding/binary: add examples for varint functions Change-Id: I191f6e46b452fadde9f641140445d843b0c7d534 Reviewed-on: https://go-review.googlesource.com/48604 Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/encoding/binary/example_test.go b/src/encoding/binary/example_test.go index 2b52a47d12..a8b8dba650 100644 --- a/src/encoding/binary/example_test.go +++ b/src/encoding/binary/example_test.go @@ -68,3 +68,94 @@ func ExampleByteOrder_get() { // Output: // 0x03e8 0x07d0 } + +func ExamplePutUvarint() { + buf := make([]byte, binary.MaxVarintLen64) + + for _, x := range []uint64{1, 2, 127, 128, 255, 256} { + n := binary.PutUvarint(buf, x) + fmt.Printf("%x\n", buf[:n]) + } + // Output: + // 01 + // 02 + // 7f + // 8001 + // ff01 + // 8002 +} + +func ExamplePutVarint() { + buf := make([]byte, binary.MaxVarintLen64) + + for _, x := range []int64{-65, -64, -2, -1, 0, 1, 2, 63, 64} { + n := binary.PutVarint(buf, x) + fmt.Printf("%x\n", buf[:n]) + } + // Output: + // 8101 + // 7f + // 03 + // 01 + // 00 + // 02 + // 04 + // 7e + // 8001 +} + +func ExampleUvarint() { + inputs := [][]byte{ + []byte{0x01}, + []byte{0x02}, + []byte{0x7f}, + []byte{0x80, 0x01}, + []byte{0xff, 0x01}, + []byte{0x80, 0x02}, + } + for _, b := range inputs { + x, n := binary.Uvarint(b) + if n != len(b) { + fmt.Println("Uvarint did not consume all of in") + } + fmt.Println(x) + } + // Output: + // 1 + // 2 + // 127 + // 128 + // 255 + // 256 +} + +func ExampleVarint() { + inputs := [][]byte{ + []byte{0x81, 0x01}, + []byte{0x7f}, + []byte{0x03}, + []byte{0x01}, + []byte{0x00}, + []byte{0x02}, + []byte{0x04}, + []byte{0x7e}, + []byte{0x80, 0x01}, + } + for _, b := range inputs { + x, n := binary.Varint(b) + if n != len(b) { + fmt.Println("Varint did not consume all of in") + } + fmt.Println(x) + } + // Output: + // -65 + // -64 + // -2 + // -1 + // 0 + // 1 + // 2 + // 63 + // 64 +}