Curious, why Debug & Display have use the same fmt method name? I think it could cause problems with ambiguity if you have both traits in scope (IIRC, something similar happened for backtrace crate recently, whe adding a Display impl broke the clients, most notably failure).
Wouldn’t it be better and more idiomatic to have debug and display methods?