# Functions
Bytes returns the bytes backing a string, it is the caller's responsibility not to mutate the bytes returned.
Fastrandn returns a uint32 in range of 0..n, like rand() % n, but faster not as precise, https://lemire.me/blog/2016/06/27/a-fast-alternative-to-the-modulo-reduction/.
String returns a string backed by a byte slice, it is the caller's responsibility not to mutate the bytes while using the string returned.
WithBytes converts a string to a byte slice with zero heap memory allocations, and calls a function to process the byte slice.
WithBytesAndArg converts a string to a byte slice with zero heap memory allocations, and calls a function to process the byte slice alongside one argument.
WithString converts a byte slice to a string with zero heap memory allocations, and calls a function to process the string.
WithStringAndArg converts a byte slice to a string with zero heap memory allocations, and calls a function to process the string with one argument.
# Type aliases
BytesAndArgFn takes an argument alongside the byte slice.
BytesFn processes a byte slice.
ImmutableBytes represents an immutable byte slice.
StringAndArgFn takes an argument alongside the byte slice.
StringFn processes a byte slice.