Sto osservando il linguaggio di programmazione Rust e sto provando a convertire il mio pensiero C++ in Rust. Strutture dati comuni come liste e alberi e sono state precedentemente implementate con puntatori in C++ e non sono sicuro di come implementare gli equivalenti esatti in Rust. Le strutture dati a cui sono interessato sono gli algoritmi intrusivi, simili a quelli che si trovano nelle librerie intrusive di Boost, e questi sono utili nella programmazione embedded/di sistema.Equivalenti algoritmi intrusivi in Rust
L'esempio di elenco collegato in Rust (Dlist) è praticamente semplice, ma utilizza un tipo di contenitore in cui il tipo effettivo si trova all'interno del contenitore. L'algoritmo intrusivo che sto cercando è un po 'il contrario: si ha un tipo principale in cui il nodo della lista è inserito o ereditato.
Inoltre, la famosa lista collegata in Linux è anche un altro esempio in cui i dati dell'elenco sono nei membri delle strutture. Questa è come la variante del membro Boost degli algoritmi intrusivi. Ciò consente di utilizzare il tuo tipo in più elenchi/alberi molte volte. Come funzionerebbe con Rust?
Quindi non sono sicuro di come convertire questi tipi di motivi di progettazione in Rust a cui sono abituato in C/C++. Chiunque abbia avuto successo a capirlo?
Non ho molta esperienza con questi tipi di strutture dati, ma puoi spiegare alcuni dei benefici che speri di ottenere usando? Se le strutture standard di ruggine non si adattano ai tuoi casi d'uso, forse qualcos'altro lo farà. – Shepmaster
Si consiglia di consultare https://github.com/pcwalton/multilist, che implementa una infrastruttura intrusiva. – awelkie