В Rust ссылки никогда не могут быть нулевыми, поэтому в случае, когда вам действительно нужен нуль, например связанный список, вы используете тип Option:
struct Element {
value: i32,
next: Option<Box<Element>>,
}
Сколько издержек связано с этим с точки зрения распределения памяти и шагов для разыменования по сравнению с простым указателем? Есть ли какая-то "магия" в компиляторе/времени выполнения, чтобы сделать Option без затрат или менее дорогостоящим, чем если бы один из них реализовал Option самостоятельно в неосновной библиотеке, используя ту же конструкцию enum, или обертывание указателя в вектор?