Ich möchte eine .unique()
-Methode für Iteratoren definieren, die es mir ermöglicht, ohne Duplikate zu iterieren.
Dies wird kompiliert. Wenn ich jedoch versuche, in der gleichen Datei zu verwenden:
%Vor%Ich erhalte den folgenden Fehler:
%Vor%Was mache ich falsch? Wie würde ich diese willkürlichen hashbaren Typen erweitern?
In Ihrem speziellen Fall liegt das daran, dass Sie Ihr Merkmal für einen Iterator von String
implementiert haben, Ihr Vektor jedoch einen Iterator für &str
bereitstellt. Hier ist eine allgemeinere Version:
Im Allgemeinen erstellen wir ein neues Merkmal Unique
, das eine Subtraktion von Iterator
ist. Das Merkmal definiert die Methode unique
, die nur dann aufgerufen werden kann, wenn das iterierte Element Folgendes sein kann:
Darüber hinaus muss der Artikel, der Iterator
implementiert, zur Kompilierungszeit eine bekannte Größe haben. Dies geschieht, damit der Iterator vom Unique
Iteratoradapter verbraucht werden kann.
Der andere wichtige Teil ist die umfassende Implementierung :
%Vor%