Dies ist mein erster Tag mit Rust, aber ich versuche etwas Triviales zu machen, und ich stecke fest.
Was ich versuche, ist, eine Struktur zu einem Vektor hinzuzufügen und das Ergebnis zurückzugeben. Ich versuche, einen sehr einfachen REST-Dienst zu erstellen, der beim Speichern die Daten im Speicher speichert und bei einem GET alle Daten im JSON-Format zurückgibt.
Dies ist mein aktueller Code:
%Vor% Ich habe dies versucht Lösung mit einer RefCell, aber dann bekomme ich den Fehler, dass die Eigenschaft Sync nicht für Vec<reservation::Reservation>
Dies ist ein sehr gutes Beispiel dafür, wie Rust Sie vor der Ungewissheit schützt.
Wenn Sie darüber nachdenken, wäre es in Ihrem aktuellen Code möglich, dass mehrere Threads gleichzeitig versuchen, reservations
ohne irgendeine Art von Synchronisation zu mutieren. Dies ist ein Datenrennen und Rust wird sich darüber beschweren.
Eine mögliche Lösung wäre, den reservations
Vektor in ein Mutex
zu verpacken, um die Synchronisation zu erhalten. Sie benötigen auch Arc
(atomare Referenzzählung), da Rust nicht beweisen kann, dass reservations
länger leben wird als die Threads.
Mit diesen Änderungen sollte Ihr Code wie folgt aussehen:
%Vor% Sie können in der Dokumentation nach weiteren Informationen zu Mutex
und Arc
.