In Rust, i riferimenti non possono mai essere nulli, quindi nel caso in cui sia effettivamente necessario nullo, come un elenco collegato, si utilizza il Optiontipo:
struct Element {
value: i32,
next: Option<Box<Element>>,
}
Quanto overhead è coinvolto in questo in termini di allocazione della memoria e passaggi per la dereferenziazione rispetto a un semplice puntatore? C'è qualche "magia" nel compilatore / runtime da rendere a Optioncosto zero o meno costoso che se si implementasse Optionda soli in una libreria non core utilizzando lo stesso enumcostrutto o avvolgendo il puntatore in un vettore?
Optionenumerazioni " simili", quindi funzionerà anche per una definizione definita dall'utenteOption.