Ich portiere Python als Lernübung nach Rust und muss Eingaben entweder von einer Datei oder von einer Standardeingabe nehmen. Ich behalte einen Griff zu meiner Eingabe in einer Struktur, so dass ich dachte, ich würde nur eine Box<io::Read>
machen, aber ich lief in eine Situation, wo ich auf der Eingabe suchen muss, und seek
ist nicht Teil der Read
Eigenschaft. Ich weiß, dass Sie nicht in Pipes suchen können, also gehe ich voraus und gehe davon aus, dass diese Methode nur aufgerufen wird, wenn die Eingabe eine Datei ist, aber mein Problem ist, dass ich das in Rust nicht überprüfen und ablehnen kann.Wie kann ich Eingaben von stdin oder einer Datei nehmen, wenn ich nicht nach stdin suchen kann?
Ich weiß, dass ich eine Enum für die zwei Eingabearten verwenden könnte, aber es scheint, dass es eine elegantere Möglichkeit geben sollte, dies zu tun. Und das ist meine Frage, wie machst du das und machst keine Unordnung?
Ist es möglich, Stdin oder eine Datei in die gleiche Art von Puffer zu wickeln, so dass ich nur diesen Typ verwenden und nicht über die Art der IO kümmern?
Welche Operationen benötigen Sie, um die Eingabe zu "suchen"? Wenn Sie wirklich eine willkürliche 'Suche' brauchen, dann lesen Sie die ganze Standardeingabe in einen' Cursor> '. –
kennytm
Sie brauchen offensichtlich ** nicht ** zu suchen, wenn Sie mit dem Lesen von stdin umgehen können. – Shepmaster