Wie erstelle ich in Rust ein Paket, das sowohl eine Bibliothek (lib) als auch eine ausführbare Datei (bin) enthält?
Hallo zusammen! Ich habe gerade angefangen, Rust zu lernen, und versuche, die Projektorganisation zu verstehen. Ich habe eine Aufgabe: Ich möchte ein kleines Tool für die Arbeit mit CSV-Dateien schreiben. Aber ich möchte, dass die Hauptlogik (Parsing, Filterung) in anderen Projekten als Bibliothek wiederverwendet werden kann.
Derzeit sieht mein Projekt so aus:
```
my_project/
├── Cargo.toml
├── src/
│ └── main.rs
```
In `main.rs` habe ich sowohl das Parsing als auch die Ausgabe der Ergebnisse geschrieben. Das ist unpraktisch: Wenn ich denselben Parser in einem anderen Projekt verwenden möchte, muss ich den Code kopieren.
Ich habe gelesen, dass man in Rust ein Paket erstellen kann, das sowohl `lib.rs` (Bibliothek) als auch `main.rs` (Binary) enthält. Aber ich verstehe nicht, wie man das richtig konfiguriert. In `Cargo.toml` sehe ich keine expliziten Anweisungen. Wie erfährt Cargo, dass ich zwei Zieldateien habe? Kann ich von `main.rs` aus Funktionen aus `lib.rs` aufrufen? Und wie organisiere ich die Ordnerstruktur richtig? Muss ich etwas in `Cargo.toml` angeben?
Bitte helft mir, das richtig zu machen. Beispiel