The fact that this is one byte over two cache lines is causing me almost physical pain. If there’s a need for a zero terminator on the strings, then sure, but if not, a [127]u8 meets the stated goal, and the whole struct will Tetris into the rest of the program much better.
Could also pass a stack allocated buffer into the function, and have the function return a slice []u8 which would represent the part of the buffer actually used.