import struct | |
def raise_(ex): | |
raise ex | |
def to_bytes(value, size=1, endian='>'): | |
return { | |
1: lambda: struct.pack(endian + 'B', value), | |
2: lambda: struct.pack(endian + 'H', value), | |
4: lambda: struct.pack(endian + 'I', value) | |
}.get(size, lambda: raise_(RuntimeError("invalid size")))() | |
def from_bytes(value, size=1, endian='>'): | |
return { | |
1: lambda: struct.unpack(endian + 'B', value)[0], | |
2: lambda: struct.unpack(endian + 'H', value)[0], | |
4: lambda: struct.unpack(endian + 'I', value)[0] | |
}.get(size, lambda: raise_(RuntimeError("invalid size")))() | |