Implementieren einer "vorsichtigen" Einstellung_unter Verwendung von Peekable
Ich würde gerne @ verwendPeekable
als Basis für ein neuescautious_take_while
Operation, die sich wie @ verhätake_while
vonIteratorExt
aber ohne den ersten fehlgeschlagenen Gegenstand zu verbrauchen. (Es gibt eine Nebenfrage, ob dies eine gute Idee ist und ob es bessere Möglichkeiten gibt, dieses Ziel in Rust zu erreichen. Ich würde mich über Hinweise in diese Richtung freuen, aber meistens versuche ich zu verstehen, wo sich mein Code befindet brechen).
Die API, die ich aktivieren möchte, lautet im Grunde:
let mut chars = "abcdefg.".chars().peekable();
let abc : String = chars.by_ref().cautious_take_while(|&x| x != 'd');
let defg : String = chars.by_ref().cautious_take_while(|&x| x != '.');
// yielding (abc = "abc", defg = "defg")
Ich habe einen Sprung bei @ genomm MCVE hier erstellen, aber ich bekomme:
: 10: 5: 10:19 Fehler: Ausgeliehener Inhalt kann nicht entfernt werden: 10 Zeichen.by_ref (). Cautious_take_while (| & x | x! = '.');
Soweit ich das beurteilen kann, verfolge ich das gleiche Muster wie Rusts eigenesTakeWhile
in Bezug auf meine Funktionssignaturen, aber ich sehe ein anderes Verhalten als die Ausleihprüfung. Kann jemand darauf hinweisen, was ich falsch mache?