diff options
author | Lars Wirzenius <liw@liw.fi> | 2015-05-16 11:44:14 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2015-05-16 11:45:06 +0300 |
commit | 37ad33ebcc21da980a1394f6f42b7b7510501bef (patch) | |
tree | 90d32f063b58d1782358623326d713d1a73c8dc0 | |
parent | e6593887a74068fbdd811b035d31d461f9aac178 (diff) | |
download | obnam-37ad33ebcc21da980a1394f6f42b7b7510501bef.tar.gz |
Encode arbitary integers in objects
-rw-r--r-- | obnamlib/obj_serialiser.py | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/obnamlib/obj_serialiser.py b/obnamlib/obj_serialiser.py index 2fce4f94..f43dc368 100644 --- a/obnamlib/obj_serialiser.py +++ b/obnamlib/obj_serialiser.py @@ -74,16 +74,14 @@ def _deserialise_none(serialised): return None -# Integers. They are 64-bit values. - -_int_fmt = '!Q' -_int_size_serialised = _serialise_length(struct.calcsize(_int_fmt)) +# Integers. They are arbitrarily large and signed. def _serialise_integer(obj): - return _INT + _int_size_serialised + struct.pack(_int_fmt, obj) + s = str(obj) + return _INT + _serialise_length(len(s)) + s def _deserialise_integer(serialised): - return struct.unpack(_int_fmt, serialised)[0] + return int(serialised) # Booleans. |