Ich möchte die Funktion dijkstra
von der pathfinding
crate verwenden :
Um es zu verwenden, muss ich das Zero
Merkmal aus dem num_traits
Kiste. Aber wie kann ich Zero
importieren? Ein naheliegender Weg ist, extern crate num_traits;
in meine Kiste einzufügen und meine Cargo.toml
entsprechend zu fixieren. Aber dabei muss ich auf eine Abhängigkeit einer Abhängigkeit achten, die nicht gut ist.
Kann ich irgendwie Zero
ohne explizite Abhängigkeit von num_traits
implementieren? Kiste, wie unten?
Angesichts der ursprünglichen Absicht, nicht exponierte Abhängigkeiten von einer Kiste (z. B. pathfinding
) in ein abhängiges Projekt zu importieren, ist dies derzeit nicht zulässig. Wenn eine Abhängigkeit nicht von der Kiste erneut exportiert wird, ist dies eher ein Implementierungsdetail als ein Teil der API. Es wäre daher katastrophal, einem Abhängigen zu erlauben, auf irgendeine "Unterabhängigkeit" zuzugreifen.
Da in diesem Fall jedoch num_traits
eindeutig in der öffentlichen API der Kiste verwendet wird, ist es auch sinnvoll, dass die Abhängigen Zugriff darauf haben. Es wird jedoch erwartet, dass Sie die Abhängigkeit in Ihrem eigenen Projekt hinzufügen, während Sie darauf achten, eine kompatible Version beizubehalten. Andernfalls könnte die Fracht doppelte Abhängigkeiten aufbauen.
Um dies zu vermeiden, würde pathfinding
vom Export seines eigenen num_traits
profitieren (siehe unten). PR # 6 wurde zu diesem Zweck erstellt und in Version 0.1.12 zusammengeführt (danke, @SamuelTardieu) .
Damit können Sie nun genau das tun, was am Ende Ihrer Frage steht:
%Vor%Tags und Links rust