crow/serialize.crow (source)

Functions for converting values to/from byte arrays.

For JSON serialization, see the crow/json module.

serialize[t] spec

A type is serializable if it can convert to and from a byte array.

Implementations should ensure that a.to-bytes.from-bytes == a.

to-bytes nat8 array(a nat8 array)

Identity function to ensure that byte lists are trivially serializable.

from-bytes nat8 array(a nat8 array)

from-bytes string(a nat8 array)

to-bytes nat8 array(a nat64)

Convert a number to a nat8[] simply by taking its component bytes in big-endian order.
This strips leading 0 bytes.

to-8-bytes nat8 array(a nat64)

Unlike a to-bytes, this always returns an 8-byte array, including any leading 0 bytes.

from-bytes nat64(a nat8 array)

This works for the result of either to-bytes or to-8-bytes.

to-bytes nat8 array(a nat32)

to-4-bytes nat8 array(a nat32)

from-bytes nat32(a nat8 array)

to-bytes nat8 array(a int64)

to-8-bytes nat8 array(a int64)

from-bytes int64(a nat8 array)