A sequence of bytes.
This is conceptually similar to an array of integers between
255, but represented much more efficiently.
You can convert
- a string or an array of integers to bytes with the
- bytes to a string with the
- bytes to an array of integers with the
When reading data from a file, you can decide whether to load it as a string or as raw bytes.
#bytes((123, 160, 22, 0)) \ #bytes("Hello 😃") #let data = read( "rhino.png", encoding: none, ) // Magic bytes. #array(data.slice(0, 4)) \ #str(data.slice(1, 4))
ConstructorIf a type has a constructor, you can call it like a function to create a new value of the type.
Converts a value to bytes.
- Strings are encoded in UTF-8.
- Arrays of integers between
255are converted directly. The dedicated byte representation is much more efficient than the array representation and thus typically used for large byte buffers (e.g. image data).
#bytes("Hello 😃") \ #bytes((123, 160, 22, 0))
The value that should be converted to bytes.
DefinitionsFunctions and types and can have associated definitions. These are accessed by specifying the function or type, followed by a period, and then the definition's name.
The length in bytes.
Returns the byte at the specified index. Returns the default value if the index is out of bounds or fails with an error if no default value was specified.
indexPositionalPositional parameters are specified in order, without names.
The index at which to retrieve the byte.
A default value to return if the index is out of bounds.
Extracts a subslice of the bytes. Fails with an error if the start or index is out of bounds.
startPositionalPositional parameters are specified in order, without names.
The start index (inclusive).
endnone or intPositionalPositional parameters are specified in order, without names.
The end index (exclusive). If omitted, the whole slice until the end is extracted.
The number of items to extract. This is equivalent to passing
start + count as the
end position. Mutually exclusive with