Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> It has nothing to do with the generic `add` function; it can stay generic as it is just fine. Even a function specialized for adding String and &str could not go back in time and change how much capacity the String was created with.

The only reason we're converting a parameter to a String outside the function is because it has that awkward signature.

I was suggesting a specialization for adding &str and &str that requires minimal code at the call site and handles the capacity issue inside the function.

But that means we're no longer just applying + to types that have Add, we've given up all that convenience because it's not compatible with performance. This wouldn't have to be a tradeoff if Add worked differently; having to make this decision is a flaw with Rust. And you could still make it explicit that allocation is happening.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: