You cannot implement FromStr (in a reasonable manner) for such a type. That trait is for fairly simple parsing and implementations cannot out restrictions in the lifetime of the passed str. Consider either of the following
just use a custom (associated) function, not thr FromStr trait's, and have it take &'a str argument with appropriately matching lifetime
implement From<&'a str> with matching lifetime
if you want to support parsing, serde has an infrastructure to deserialize without copying the input, so if you want to use your type with serde, that would work
make it struct MyType(String); if you do need the full capabilities of the FromStr to create an owned value from an arbitrarily short-lived string. Then you can implement FromStr.
No, you can't do that, because that's not what is specified in the trait. If you want to accept an &'a str, you will have to implement your own method.