Generische Funktion zum Akzeptieren & Str oder Verschieben von String ohne Kopieren

8

Ich möchte eine generische Funktion schreiben, die jede Art von String akzeptiert ( &str / String ), um den Aufrufer zu vereinfachen.

Die Funktion benötigt intern String , also möchte ich auch unnötige Neuzuweisung vermeiden, wenn der Aufrufer die Funktion mit String aufruft.

%Vor%

Zum Akzeptieren von Referenzen weiß ich, dass ich foo<S: AsRef<str>>(s: S) verwenden kann, aber was ist mit dem anderen Weg?

Ich denke, generisches Argument basierend auf ToOwned könnte funktionieren (funktioniert für &str , und ich gehe davon aus, dass es keine Operation auf String ist), aber ich kann die genaue Syntax nicht herausfinden.

    
Kornel 06.08.2017, 19:30
quelle

1 Antwort

10

Ich denke, was Sie wollen, kann mit dem Into Merkmal erreicht werden , so:

%Vor%     
Florian Weimer 06.08.2017, 19:38
quelle