¿Cuál es la sobrecarga del tipo de opción de Rust?

En Rust, las referencias nunca pueden ser nulas, por lo que en caso de que realmente necesite nulas, como una lista enlazada, use laOption tipo:

struct Element {
    value: i32,
    next: Option<Box<Element>>,
}

¿Cuánta sobrecarga está involucrada en esto en términos de asignación de memoria y pasos para eliminar la referencia en comparación con un simple puntero? ¿Hay alguna "magia" en el compilador / tiempo de ejecución para hacerOption Gratis o menos costoso que si se implementaraOption por uno mismo en una biblioteca no núcleo utilizando el mismoenum construir, o envolviendo el puntero en un vector?

Respuestas a la pregunta(2)

Su respuesta a la pregunta