Encode a buffer length followed by the bytes of the buffer
    itself.

    Parameters
    ----------
    src_buf: bytes
        Source bytes to be encoded.  Function asserts that
        0 <= len(src_buf) <= 2**16-1.
    dst_file: file
        File-like object with write method.

    Returns
    -------
    int
        Number of bytes written to `dst_file`.

def encode_bytes(src_buf, dst_file):
    """Encode a buffer length followed by the bytes of the buffer
    itself.

    Parameters
    ----------
    src_buf: bytes
        Source bytes to be encoded.  Function asserts that
        0 <= len(src_buf) <= 2**16-1.
    dst_file: file
        File-like object with write method.

    Returns
    -------
    int
        Number of bytes written to `dst_file`.
    """
    if not isinstance(src_buf, bytes):
        raise TypeError('src_buf must by bytes.')

    len_src_buf = len(src_buf)
    assert 0 <= len_src_buf <= 2**16-1
    num_written_bytes = len_src_buf + 2

    len_buf = FIELD_U16.pack(len_src_buf)
    dst_file.write(len_buf)
    dst_file.write(src_buf)

    return num_written_bytes