Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
buffer.py31 linesDownload Raw Back to aioquic
1from ._buffer import Buffer, BufferReadError, BufferWriteError  # noqa
2
3UINT_VAR_MAX = 0x3FFFFFFFFFFFFFFF
4UINT_VAR_MAX_SIZE = 8
5
6
7def encode_uint_var(value: int) -> bytes:
8    """
9    Encode a variable-length unsigned integer.
10    """
11    buf = Buffer(capacity=UINT_VAR_MAX_SIZE)
12    buf.push_uint_var(value)
13    return buf.data
14
15
16def size_uint_var(value: int) -> int:
17    """
18    Return the number of bytes required to encode the given value
19    as a QUIC variable-length unsigned integer.
20    """
21    if value <= 0x3F:
22        return 1
23    elif value <= 0x3FFF:
24        return 2
25    elif value <= 0x3FFFFFFF:
26        return 4
27    elif value <= 0x3FFFFFFFFFFFFFFF:
28        return 8
29    else:
30        raise ValueError("Integer is too big for a variable-length integer")
31 
codekingpro/portable-devtools · Team Ai