Convert between a signed integer value and its zigzag encoding,
used for the protobuf sint32
and sint64
types. This is a
low-level predicate; normally, you should use template_message/2 and
the appropriate template term.
SWI-Prolog allows integer values greater than 64 bits, so
a range check is done.
This predicate delays until either Original
or Encoded
is
sufficiently instantiated.
There is also a non-delayed int64_zigzag/2
- Arguments:
-
Original | - an integer in the original form |
Encoded | - the zigzag encoding of Original |
- Errors
- - Type,Domain if
Original
or Encoded
are of the wrong
type or out of range. - - instantiation error if both
Original
and Encoded
are uninstantiated.
- See also
- - https://developers.google.com/protocol-buffers/docs/encoding#types