21 lines
520 B
Python
21 lines
520 B
Python
import struct
|
|
from typing import Union, Generator, Any, SupportsBytes, List, Tuple
|
|
from dataclasses import dataclass
|
|
|
|
|
|
def _varint(value: int) -> bytes:
|
|
# From https://github.com/protocolbuffers/protobuf/blob/master/python/google/protobuf/internal/encoder.py#L372
|
|
b: List[int] = []
|
|
|
|
if value < 0:
|
|
value += 1 << 64
|
|
|
|
bits = value & 0x7F
|
|
value >>= 7
|
|
while value:
|
|
b.append(0x80 | bits)
|
|
bits = value & 0x7F
|
|
value >>= 7
|
|
print(value)
|
|
return bytes(b + [bits])
|