github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/encoding/binary/varint.go (about) 1 // 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 5 package binary 6 7 import ( 8 "github.com/shogo82148/std/io" 9 ) 10 11 // MaxVarintLenNは、Nビット整数の可変長エンコードの最大長です。 12 const ( 13 MaxVarintLen16 = 3 14 MaxVarintLen32 = 5 15 MaxVarintLen64 = 10 16 ) 17 18 // AppendUvarintは、[PutUvarint] によって生成されたxのvarintエンコード形式をbufに追加し、拡張されたバッファを返します。 19 func AppendUvarint(buf []byte, x uint64) []byte 20 21 // PutUvarintは、uint64をbufにエンコードし、書き込まれたバイト数を返します。 22 // バッファが小さすぎる場合、PutUvarintはパニックを引き起こします。 23 func PutUvarint(buf []byte, x uint64) int 24 25 // Uvarintは、bufからuint64をデコードし、その値と読み取られたバイト数(> 0)を返します。 26 // エラーが発生した場合、値は0で、バイト数nは<= 0です。 27 // 28 // n == 0: バッファが小さすぎます 29 // n < 0: 64ビットより大きい値(オーバーフロー)で、-nは読み取られたバイト数です 30 func Uvarint(buf []byte) (uint64, int) 31 32 // AppendVarintは、[PutVarint] によって生成されたxのvarintエンコード形式をbufに追加し、拡張されたバッファを返します。 33 func AppendVarint(buf []byte, x int64) []byte 34 35 // PutVarintは、int64をbufにエンコードし、書き込まれたバイト数を返します。 36 // バッファが小さすぎる場合、PutVarintはパニックを引き起こします。 37 func PutVarint(buf []byte, x int64) int 38 39 // Varintは、bufからint64をデコードし、その値と読み取られたバイト数(> 0)を返します。 40 // エラーが発生した場合、値は0で、バイト数nは<= 0です。 41 // 42 // n == 0: バッファが小さすぎます 43 // n < 0: 64ビットより大きい値(オーバーフロー)で、-nは読み取られたバイト数です 44 func Varint(buf []byte) (int64, int) 45 46 // ReadUvarintは、rから符号なし整数を読み取り、uint64として返します。 47 // エラーが [io.EOF] であるのは、バイトが読み込まれなかった場合のみです。 48 // 一部のバイトが読み込まれた後に [io.EOF] が発生した場合、 49 // ReadUvarintは [io.ErrUnexpectedEOF] を返します。 50 func ReadUvarint(r io.ByteReader) (uint64, error) 51 52 // ReadVarintは、rから符号付き整数を読み取り、int64として返します。 53 // エラーが [io.EOF] であるのは、バイトが読み込まれなかった場合のみです。 54 // 一部のバイトが読み込まれた後に [io.EOF] が発生した場合、 55 // ReadVarintは [io.ErrUnexpectedEOF] を返します。 56 func ReadVarint(r io.ByteReader) (int64, error)