The StrAllocating trait is mostly just an implementation detail, and it's kinda sad to see it used here for this (maybe not a pattern we want to promote). Can this take `&str` for the same level of convenience?