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)