Ich arbeite an einem grundlegenden Shell-Interpreter, um mich mit Rust vertraut zu machen. Bei der Arbeit an der Tabelle zum Speichern suspendierter Jobs in der Shell bin ich bei der folgenden Compiler-Fehlermeldung hängen geblieben:
%Vor% Es ist mir unklar, was hier als privat angesehen wird. Wie Sie unten sehen können, sind beide Strukturen mit pub
in meiner Moduldatei markiert. Also, was ist die geheime Soße?
Wie die Fehlermeldung andeutet, ist das Problem JobsList
hat ein privates Feld, das heißt, auf den Wert Vec<Job>
kann nicht außerhalb des Moduls zugegriffen werden, das struct
definiert. Dies bedeutet, dass Sie keine Mustererkennung für einen JobsList
-Wert erstellen können, um ihn zu extrahieren, und dass Sie ihn nicht direkt erstellen können.
Es gibt zwei Fixes:
pub struct JobsList(pub Vec<Job>);
stellt einen öffentlichen Konstruktor bereit
%Vor% wird wie JobsList::new(vec![])
aufgerufen.
Tags und Links rust private tuple-struct