En Rust, las referencias nunca pueden ser nulas, por lo que en caso de que realmente necesite un valor nulo, como una lista vinculada, use el Optiontipo:
struct Element {
value: i32,
next: Option<Box<Element>>,
}
¿Cuánta sobrecarga implica esto en términos de asignación de memoria y pasos para desreferenciar en comparación con un puntero simple? ¿Hay algo de "magia" en el compilador / tiempo de ejecución para hacer que Optionsea gratis o menos costoso que si uno lo implementara Optionuno mismo en una biblioteca no central usando la misma enumconstrucción o envolviendo el puntero en un vector?
fuente

Optionenumeraciones " similares", por lo que también funcionará para un archivoOption.Result<i32, i32>, puedes ver que la optimización se aplica nuevamente.