Qual é a sobrecarga do tipo Option da Rust?

No Rust, referências nunca podem ser nulas, portanto, no caso em que você realmente precisa de null, como uma lista encadeada, você usaOption tipo:

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

Quanta sobrecarga está envolvida nisso em termos de alocação de memória e etapas para desreferencia em comparação com um ponteiro simples? Existe alguma "mágica" no compilador / tempo de execução para fazerOption custo-livre, ou menos dispendioso do que se um fosse implementarOption por si mesmo em uma biblioteca não-núcleo usando o mesmoenum construir, ou envolvendo o ponteiro em um vetor?

questionAnswers(2)

yourAnswerToTheQuestion