Thanks for your work!
Example ======================= /// @safe pure nothrow @nogc unittest { import mir.exception; import mir.format;try throw new MirException(stringBuf() << "Hi D" << 2 << "!" << getData);catch(Exception e) assert(e.msg == "Hi D2!"); }=======================
I don't understand why you choose C++ format style instead of D-style format?