Next: bytevectors 8 convention, Up: bytevectors 8 [Index]
The functions are split in a high level library, (vicare
containers bytevectors s8)
and (vicare containers bytevectors
u8)
, and a low level one, (vicare containers bytevectors s8low)
and (vicare containers bytevectors u8low)
. The main difference
between the two layers is that the high level library makes heavy usage
of macros to implement the bytevector views, which allow accessing
subvectors using a friendly syntax.
All the functions in the low level library are bound to identifiers
starting with %
; for example: bytevector-u8-prefix?
is a
high level macro, %bytevector-u8-prefix?
is its low level
function homologous.
The library accesses the bytes of a vector in left–to–right or right–to–left order depending on the convenience of the algorithm.
Care must be taken when using functions with side effects. One reason for this is that some of the supported Scheme implementations may collapse equal datum bytevectors in the source code to the same bytevector in the program. Mutating such a bytevector in a point of the program, will make the change visible to other points in the program.