Is there a reason why the creator of rust decided to make string concatenation work this way?
s3: String = s1 + &s2;
Like, why not simply make it work like this:
s3: String = &s1 + &s2;
// ofc this is invalid but it's a "what if"
Now all 3 strings are valid, the ownership isn't taken away from either s1 or s2. We just get a fresh String constructed from s1 and s2. And now symmetry is also restored back to the addition operator.