parameter - kotlin generics example
Función genérica aceptando & str o moviendo String sin copiar (1)
Creo que lo que estás buscando se puede lograr con el rasgo Into , así:
fn foo<S: Into<String>>(s: S) -> String {
return s.into();
}
fn main () {
foo("borrowed");
foo(format!("owned"));
}
Quiero escribir una función genérica que acepte cualquier tipo de cadena ( &str / String ) para la conveniencia de la persona que llama.
La función internamente necesita una String , por lo que también me gustaría evitar la reasignación innecesaria si la persona que llama llama a la función con String .
foo("borrowed");
foo(format!("owned"));
Para aceptar referencias sé que puedo usar foo<S: AsRef<str>>(s: S) , pero ¿qué pasa con la otra?
Creo que el argumento genérico basado en ToOwned podría funcionar (funciona para &str , y ToOwned que es una ToOwned no ToOwned en String ), pero no puedo descifrar la sintaxis exacta.