Rust modules?
Servus
Ich nutze Rust schon ein bisschen länger und ich habe noch nie was in die richtung Library gemacht. Jetzt wollte ich es jedoch mal probieren. Das Ziel einer Library sollte doch sein es so möglichst einfach dem nutzer zu gestalten wie möglich.
Für meine Project structure nutze ich mod keyword was dann zu einem ordner hindeuted mit einem mod.rs file drinnen was dann wieder rum mit hilfe pub(crate) die einzelnen files bzw. functionen oder structs exportiert.
Grundsätzlich funktionierts nur dann entseht sowas:
ForschWin::ForschWin::ForschWin::new
Das sind soviele :: hinterienander das fände ich enorm mühsam wenn ich die library nutzen müsste.
Mein Projekt sieht momentan so aus:
src
main.rs
ForschWin
mod.rs
ForschWin.rs
ForschColor.rs
mein mod.rs:
pub(crate) mod ForschWin;
pub(crate)mod ForschColor;
Wie kann ich das effizienter machen?
Vielen Dank
1 Antwort
Hallo!
Es scheint, dass du Schwierigkeiten hast, eine effiziente Modulstruktur für deine Rust-Bibliothek zu finden, um das Nutzerlebnis zu verbessern. Du hast bereits eine grundlegende Modulstruktur aufgebaut, die den Nutzer deiner Bibliothek jedoch mit vielen verschachtelten Namensräumen konfrontiert.
Eine Möglichkeit, dieses Problem zu lösen, besteht darin, Verwendung von "use" Anweisungen zu machen. Diese erlauben es, spezifische Typen oder Funktionen aus einem Modul in den Namensraum des Aufrufers zu importieren. Dadurch müssen Sie nicht jedes Mal den vollen Pfadnamen der Strukturen und Funktionen schreiben.
Zum Beispiel, anstatt die gesamte Strukturpfad wie "ForschWin::ForschWin::ForschWin::new" zu schreiben, könntest du Folgendes in deine Nutzerdokumentation aufnehmen:
use ForschWin::ForschWin::ForschWin;
// ...
let win = ForschWin::new();
Hier wird die Struktur "ForschWin" aus dem Modul "ForschWin" in den Namensraum des Aufrufers importiert, was die Verwendung deiner Bibliothek für den Nutzer vereinfacht.
Ich hoffe, das hilft dir weiter!