2016-07-21 10 views
0

Ich plane die Verwendung der rust-protobuf library. Ich habe ein Bash-Skript geschrieben, das alles (einschließlich meines Codes) erstellt und die .proto-Dateien, die ich in .rs-Dateien habe, erstellt. Die Art und Weise, wie die Dokumentation sagt, dass ich fortfahren soll, ist genau das:Wie kann ich eine beliebige Menge von Protobuf-Dateien einfügen, ohne deren Namen zu kennen?

für jede der erzeugten .rs Dateien. Ich hoffe, dass meine Benutzer einfach neue .proto-Dateien in ein Verzeichnis einfügen, das Build-Skript ausführen können und mein Code dafür sorgen wird, dass alle Rust-Implementierungen der kompilierten .proto-Dateien enthalten sind.

Ich weiß, Rust unterstützt nicht wirklich Reflexion, also gibt es eine Möglichkeit, wie ich im Wesentlichen ".rs generierte Dateien in einem Verzeichnis bestimmen und in meinem Code verwenden kann" (in einer TLDR-Anweisung).

Antwort

3

Sie könnten ein Cargo build script schreiben, die Ihr Verzeichnis scannen würde und eine Rust-Datei, die wie folgt aussieht:

mod file1; 
mod file2; 
//etc 

Sie können dann schließen Sie diese Datei in Ihrer Bibliothek mit dem include! macro.

+3

Und dann können Sie auch das Bash-Skript mit dem Build-Skript ersetzen. – Shepmaster

+0

Danke! Dies ist wahrscheinlich der Weg, den ich gehen werde - habe keine Fracht-unterstützten Build-Skripte realisiert. @Shempmaster - Ich werde auch höchstwahrscheinlich das tun, da ich diesen Pfad hinunter gehen werde. –