By calling a function in `std::fmt`, this turned out to hugely reduce the amount of code here, so I don't think that the need for separation is quite as large any more. If you still think so though, I will split.