Source code for communication.serializer_plugins.int
"""
(De)serialization logic for int.
"""
from typing import Any
from tno.mpc.communication.serialization import Serialization
[docs]
def int_serialize(obj: int, **_kwargs: Any) -> bytes:
r"""
Function for serializing Python ints
:param obj: int object to serialize
:param \**_kwargs: optional extra keyword arguments
:return: serialized object
"""
return obj.to_bytes((obj.bit_length() + 8) // 8, "little", signed=True)
[docs]
def int_deserialize(obj: bytes, **_kwargs: Any) -> int:
r"""
Function for deserializing Python ints
:param obj: object to deserialize
:param \**_kwargs: optional extra keyword arguments
:return: deserialized int object
"""
return int.from_bytes(obj, "little", signed=True)
[docs]
def register() -> None:
"""
Register int serializer and deserializer.
"""
Serialization.register(int_serialize, int_deserialize, "int")