But I can't seem to find an equivalent function for parsing a String.
Presumably, I wouldn't be able to parse arbitrary, user supplied strings with &strs.
Is there something I'm missing?
&str can point to part or all of any string in memory, whether it's in static memory (like a string literal) or in heap memory owned by a String, or wherever.
You can parse a Url from a String by passing a reference to it:
let s = String::from("foo");
let u = Url::parse(&s);
This works because a String is a type of pointer to a str slice. You can read more about this in the book chapters on string slices and deref coercions.