Quando una stringa viene archiviata come String
anziché &str
, non riesce ad implementare il tratto ToSocketAddrs
. Il più vicino possibile è impl<'a> ToSocketAddrs for (&'a str, u16)
.Coercing String to & str
let url = "www.google.com".to_string(); //String
let url2 = "www.google.com" //&'static str
let port = 80;
// Does not work
let tcp = TcpStream::connect((url, port));
// Works
let tcp2 = TcpStream::connect((url2, port));
Come posso costringere un String
in un &str
ai fini della realizzazione del tratto ToSocketAddrs
? Dalla documentazione per ruggine 1.0 ho pensato che String si sarebbe spostato automaticamente su &str
.
Grazie al link alla RFC. Mi stavo strappando i capelli chiedendomi perché le funzioni avrebbero forzato e questo non sarebbe –
@PaulThompson Se sei soddisfatto di una delle risposte che hai ricevuto, allora dovresti accettarne una. – BurntSushi5
@PaulThompson Grazie. :-) – BurntSushi5