Avatar ·

Wie erstelle ich in Cargo ein Paket, das sowohl eine Bibliothek als auch eine ausführbare Datei enthält?

Hallo zusammen! Ich habe gerade angefangen, Rust zu lernen, und versuche, mein Projekt zu organisieren. Ich habe einige Logik, die ich wiederverwenden möchte: zum Beispiel Funktionen für die Arbeit mit Zahlen (Fakultät, Fibonacci-Zahlen). Ich möchte, dass diese Funktionen als Bibliothek verfügbar sind (damit sie in anderen Projekten über `use` eingebunden werden können), aber gleichzeitig eine ausführbare Datei (Binary) haben, die läuft und die Arbeit dieser Funktionen über die Konsole demonstriert. Ich habe ein Projekt mit `cargo new my_project` erstellt, und es hat nur `src/main.rs` erstellt. Ich habe gelesen, dass man `src/lib.rs` hinzufügen kann, aber wie konfiguriere ich `Cargo.toml` richtig? Muss ich etwas wie `[lib]` oder `[[bin]]` schreiben? Und wie starte ich dann genau das Binary, wenn ich es verwenden möchte, und die Bibliothek in anderen Crates einbinden? Hier ist ein Beispiel für das, was ich versuche zu tun: ```rust // src/lib.rs pub fn factorial(n: u64) -> u64 { (1..=n).product() } ``` ```rust // src/main.rs mod lib; // ist das so möglich? fn main() {