- reserve the complete required length at the beginning to reduce reallocations - use u8 instead of char so that we can re-use the allocation for the string
- reserve the complete required length at the beginning to reduce reallocations - use u8 instead of char so that we can re-use the allocation for the string